ReNO / app.py
fffiloni's picture
Update app.py
a575d82 verified
raw
history blame
2.54 kB
import gradio as gr
from main import main
from arguments import parse_args
import os
def generate_image(prompt, model, num_iterations, learning_rate, progress = gr.Progress(track_tqdm=True)):
# Set up arguments
args = parse_args()
args.task = "single"
args.prompt = prompt
args.model = model
args.n_iters = num_iterations
args.lr = learning_rate
args.cache_dir = "./HF_model_cache"
args.save_dir = "./outputs"
args.save_all_images = True
try:
# Run the main function
main(args)
settings = (
f"{args.model}{'_' + args.prompt if args.task == 't2i-compbench' else ''}"
f"{'_no-optim' if args.no_optim else ''}_{args.seed if args.task != 'geneval' else ''}"
f"_lr{args.lr}_gc{args.grad_clip}_iter{args.n_iters}"
f"_reg{args.reg_weight if args.enable_reg else '0'}"
f"{'_pickscore' + str(args.pickscore_weighting) if args.enable_pickscore else ''}"
f"{'_clip' + str(args.clip_weighting) if args.enable_clip else ''}"
f"{'_hps' + str(args.hps_weighting) if args.enable_hps else ''}"
f"{'_imagereward' + str(args.imagereward_weighting) if args.enable_imagereward else ''}"
f"{'_aesthetic' + str(args.aesthetic_weighting) if args.enable_aesthetic else ''}"
)
save_dir = f"{args.save_dir}/{args.task}/{settings}/{args.prompt}"
# Return the path to the generated image
image_path = f"{save_dir}/best_image.png"
if os.path.exists(image_path):
return image_path, f"Image generated successfully and saved at {image_path}"
else:
return None, "Image generation completed, but the file was not found."
except Exception as e:
return None, f"An error occurred: {str(e)}"
# Create Gradio interface
iface = gr.Interface(
fn=generate_image,
inputs=[
gr.Textbox(label="Prompt"),
gr.Dropdown(["sd-turbo", "sdxl-turbo", "pixart", "hyper-sd"], label="Model"),
gr.Slider(minimum=10, maximum=100, step=10, value=50, label="Number of Iterations"),
gr.Slider(minimum=0.1, maximum=10.0, step=0.1, value=5.0, label="Learning Rate"),
],
outputs=[
gr.Image(type="filepath", label="Generated Image"),
gr.Textbox(label="Status")
],
title="ReNO Image Generation",
description="Enter a prompt to generate an image using ReNO. Adjust the model and parameters as needed."
)
# Launch the app
iface.launch()