|
import gradio as gr |
|
from utils import extract_data, remove_id_and_ext |
|
from prodiapy import Custom |
|
import os |
|
|
|
pipe = Custom(os.getenv('PRODIA_API_KEY')) |
|
|
|
|
|
model_list = pipe.constant("/sd/models") |
|
model_names = {} |
|
|
|
for model_name in model_list: |
|
name_without_ext = remove_id_and_ext(model_name) |
|
model_names[name_without_ext] = model_name |
|
|
|
|
|
def update_btn_start(): |
|
return [ |
|
gr.update(visible=False), |
|
gr.update(visible=True) |
|
] |
|
|
|
|
|
def update_btn_end(): |
|
return [ |
|
gr.update(visible=True), |
|
gr.update(visible=False) |
|
] |
|
|
|
|
|
def switch_to_t2i(): |
|
return gr.Tabs.update(selected="t2i") |
|
|
|
|
|
def send_to_txt2img(image): |
|
try: |
|
text = image.info['parameters'] |
|
data = extract_data(text) |
|
|
|
if data['model'] in model_names: |
|
model = gr.update(value=model_names[data['model']]) |
|
else: |
|
model = gr.update() |
|
|
|
result = [ |
|
gr.update(value=data['prompt']), |
|
gr.update(value=data['negative_prompt']) if data['negative_prompt'] is not None else gr.update(), |
|
gr.update(value=int(data['steps'])) if data['steps'] is not None else gr.update(), |
|
gr.update(value=int(data['seed'])) if data['seed'] is not None else gr.update(), |
|
gr.update(value=float(data['cfg_scale'])) if data['cfg_scale'] is not None else gr.update(), |
|
gr.update(value=int(data['w'])) if data['w'] is not None else gr.update(), |
|
gr.update(value=int(data['h'])) if data['h'] is not None else gr.update(), |
|
gr.update(value=data['sampler']) if data['sampler'] is not None else gr.update(), |
|
model |
|
] |
|
return result |
|
|
|
except Exception as e: |
|
print(e) |
|
return |
|
|