import time import gradio as gr import spaces @spaces.GPU def stream(n: int): for i in range(n): msg = f"Step {i + 1}/{n}" print(msg) yield msg time.sleep(1) with gr.Blocks() as demo: out = gr.Textbox() start = gr.Button("Start") stop = gr.Button("Stop", variant="stop") event = start.click(stream, gr.Slider(value=30), out) stop.click(fn=None, cancels=event) demo.launch()