import gradio as gr import numpy as np import spaces def on_upload(image: np.ndarray) -> dict: return {"image": image} @spaces.GPU(duration=5) def fn(state: dict, evt: gr.SelectData) -> np.ndarray: # noqa: ARG001 return state["image"] with gr.Blocks() as demo: state = gr.State() image = gr.Image() out = gr.Image() gr.Examples( examples=["cats.jpg"], inputs=image, fn=on_upload, outputs=state, run_on_click=True, cache_examples=False, ) image.upload(fn=on_upload, inputs=image, outputs=state) image.select(fn=fn, inputs=state, outputs=out) demo.launch()