|
import json |
|
import gradio as gr |
|
import modules.config |
|
|
|
|
|
def load_parameter_button_click(raw_prompt_txt, is_generating): |
|
loaded_parameter_dict = json.loads(raw_prompt_txt) |
|
assert isinstance(loaded_parameter_dict, dict) |
|
|
|
results = [True, 1] |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Prompt', None) |
|
assert isinstance(h, str) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Negative Prompt', None) |
|
assert isinstance(h, str) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Styles', None) |
|
h = eval(h) |
|
assert isinstance(h, list) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Performance', None) |
|
assert isinstance(h, str) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Resolution', None) |
|
width, height = eval(h) |
|
formatted = modules.config.add_ratio(f'{width}*{height}') |
|
if formatted in modules.config.available_aspect_ratios: |
|
results.append(formatted) |
|
results.append(-1) |
|
results.append(-1) |
|
else: |
|
results.append(gr.update()) |
|
results.append(width) |
|
results.append(height) |
|
except: |
|
results.append(gr.update()) |
|
results.append(gr.update()) |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Sharpness', None) |
|
assert h is not None |
|
h = float(h) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Guidance Scale', None) |
|
assert h is not None |
|
h = float(h) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('ADM Guidance', None) |
|
p, n, e = eval(h) |
|
results.append(float(p)) |
|
results.append(float(n)) |
|
results.append(float(e)) |
|
except: |
|
results.append(gr.update()) |
|
results.append(gr.update()) |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Base Model', None) |
|
assert isinstance(h, str) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Refiner Model', None) |
|
assert isinstance(h, str) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Refiner Switch', None) |
|
assert h is not None |
|
h = float(h) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Sampler', None) |
|
assert isinstance(h, str) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Scheduler', None) |
|
assert isinstance(h, str) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
|
|
try: |
|
h = loaded_parameter_dict.get('Seed', None) |
|
assert h is not None |
|
h = int(h) |
|
results.append(False) |
|
results.append(h) |
|
except: |
|
results.append(gr.update()) |
|
results.append(gr.update()) |
|
|
|
if is_generating: |
|
results.append(gr.update()) |
|
else: |
|
results.append(gr.update(visible=True)) |
|
|
|
results.append(gr.update(visible=False)) |
|
|
|
for i in range(1, 6): |
|
try: |
|
n, w = loaded_parameter_dict.get(f'LoRA {i}').split(' : ') |
|
w = float(w) |
|
results.append(n) |
|
results.append(w) |
|
except: |
|
results.append(gr.update()) |
|
results.append(gr.update()) |
|
|
|
return results |
|
|