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