import gradio as gr import numpy as np import time # define core fn, which returns a generator {steps} times before returning the image def fake_diffusion(steps): for _ in range(steps): time.sleep(1) image = np.random.random((600, 600, 3)) yield image image = "https://gradio-builds.s3.amazonaws.com/diffusion_image/cute_dog.jpg" yield image with gr.Blocks() as demo: with gr.Row(): with gr.Column(): slider = gr.Slider(minimum=1, maximum=10, value=3, step=1) submit = gr.Button(value="Submit") with gr.Column(): image = gr.Image() submit.click(fake_diffusion, slider, image) # define queue - required for generators demo.queue() demo.launch()