Created
April 7, 2023 12:46
-
-
Save fovtran/3b81630a6ae5c81986dba4f59a072a83 to your computer and use it in GitHub Desktop.
parsetext.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3.11 | |
import pyperclip as pc | |
from time import sleep | |
import numpy as np | |
class NC(object): | |
def __init__(self): | |
self.idx = 0 | |
self.paste = pc.paste() | |
self.mini = list() | |
self.running = True | |
self.nullclipboard = pc.paste() | |
self.params = dict() | |
pass | |
def remove_item(self): | |
self.mini.pop(self.idx) | |
def store_prompt(self): | |
pass | |
def prompt_wait(self): | |
while(self.running): | |
self.newclipboard = pc.paste() | |
if self.nullclipboard != self.newclipboard: | |
self.prompt_parser() | |
self.params_reader() | |
# Compute differences | |
self.nullclipboard = self.newclipboard | |
self.print_params() | |
self.running=True | |
sleep(1) | |
def print_params(self): | |
print() | |
for param in self.params: | |
print(f"{param} : {self.params[param]} ") | |
def params_reader(self): | |
Prompt = np.zeros(len(self.mini)) | |
PosteriorSearchList = { | |
'Preset Style': 1, | |
'Text Prompts': 3, | |
'Initial Resolution': 1, | |
'Runtime': 1, | |
'Model': 1, | |
'Seed': 1, | |
'Overall Prompt Weight': 1, | |
'Sampling method': 1, | |
'CLIP Guidance': 1} | |
found = 0 | |
for idx, line in enumerate(self.mini): | |
# Stages | |
print(idx, self.mini[idx]) | |
searchable = line | |
if not Prompt[idx]: | |
if line in PosteriorSearchList: | |
if PosteriorSearchList[searchable] ==1: | |
self.params[line] = self.mini[idx+ 1] | |
Prompt[idx] = True | |
continue | |
else: | |
self.mini.pop(idx) | |
# idx+=1 | |
self.params[line] = [] | |
for m in range(PosteriorSearchList[searchable]): | |
reparsed = self.mini[idx+ m].replace('\"', '') | |
self.params[line].append(reparsed) | |
self.mini.pop(idx+m) | |
self.params['Weight'+str(m)] = self.mini[idx+ m].replace('Weight:','') | |
idx+=PosteriorSearchList[searchable] | |
print(line) | |
else: | |
continue | |
def prompt_parser(self): | |
self.mini = self.newclipboard.split('\n') | |
for idx, line in enumerate(self.mini): | |
self.idx = idx | |
if line=='': | |
self.remove_item() | |
if line=='Creation Settings': | |
self.remove_item() | |
for idx, line in enumerate(self.mini): | |
self.idx = idx | |
if line.startswith('Weight:'): # rework weights | |
self.mini[idx] = line.replace(' Save', '') | |
nc = NC() | |
nc.prompt_wait() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment