import gradio as gr import spaces from ominicontrol import generate_image import os USE_ZERO_GPU = os.environ.get("USE_ZERO_GPU", "0") == "1" css = """ .inputPanel { width: 320px; display: flex; align-items: center; } .outputPanel { display: flex; align-items: center; } .hint { font-size: 14px; color: #777; # border: 1px solid #ccc; padding: 4px; border-radius: 5px; # background-color: #efefef; } """ header = """ # 🎨 OminiControl Art
""" def style_transfer(image, style): return image styles = [ "Studio Ghibli", "Irasutoya Illustration", "The Simpsons", "Snoopy", ] def gradio_interface(): with gr.Blocks(css=css) as demo: gr.Markdown(header) with gr.Row(equal_height=False): with gr.Column(variant="panel", elem_classes="inputPanel"): original_image = gr.Image( type="pil", label="Condition Image", width=400, height=400, ) style = gr.Radio( styles, label="🎨 Select Style", value=styles[0], ) # Advanced settings with gr.Accordion( "⚙️ Advanced Settings", open=False ) as advanced_settings: inference_mode = gr.Radio( ["High Quality", "Fast"], value="High Quality", label="Generating Mode", ) image_ratio = gr.Radio( ["Auto", "Square(1:1)", "Portrait(2:3)", "Landscape(3:2)"], label="Image Ratio", value="Auto", ) use_random_seed = gr.Checkbox(label="Use Random Seed", value=True) seed = gr.Number( label="Seed", value=42, visible=(not use_random_seed.value), ) use_random_seed.change( lambda x: gr.update(visible=(not x)), use_random_seed, seed, show_progress="hidden", ) image_guidance = gr.Slider( label="Image Guidance", minimum=1.1, maximum=5, value=1.5, step=0.1, ) steps = gr.Slider( label="Steps", minimum=10, maximum=50, value=20, step=1, ) inference_mode.change( lambda x: gr.update(interactive=(x == "High Quality")), inference_mode, image_guidance, show_progress="hidden", ) btn = gr.Button("Generate Image") with gr.Column(elem_classes="outputPanel"): output_images = gr.Image( type="pil", width=640, height=640, label="Output Image", ) hint = gr.Markdown( """