import gradio as gr | |
from pathlib import Path | |
dir_ = Path(__file__).parent | |
def predict(im): | |
return im | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
im = gr.ImageEditor( | |
type="numpy", | |
interactive=True, | |
) | |
im_preview = gr.ImageEditor( | |
interactive=True, | |
) | |
set_background = gr.Button("Set Background") | |
set_background.click( | |
lambda: { | |
"background": str(dir_ / "cheetah.jpg"), | |
"layers": None, | |
"composite": None, | |
}, | |
None, | |
im, | |
show_progress="hidden", | |
) | |
set_layers = gr.Button("Set Layers") | |
set_layers.click( | |
lambda: { | |
"background": str(dir_ / "cheetah.jpg"), | |
"layers": [str(dir_ / "layer1.png")], | |
"composite": None, | |
}, | |
None, | |
im, | |
show_progress="hidden", | |
) | |
set_composite = gr.Button("Set Composite") | |
set_composite.click( | |
lambda: { | |
"background": None, | |
"layers": None, | |
"composite": "https://nationalzoo.si.edu/sites/default/files/animals/cheetah-003.jpg", | |
}, | |
None, | |
im, | |
show_progress="hidden", | |
) | |
im.change( | |
predict, | |
outputs=im_preview, | |
inputs=im, | |
) | |
gr.Examples( | |
examples=[ | |
"https://upload.wikimedia.org/wikipedia/commons/0/09/TheCheethcat.jpg", | |
{ | |
"background": str(dir_ / "cheetah.jpg"), | |
"layers": [str(dir_ / "layer1.png")], | |
"composite": None, | |
}, | |
], | |
inputs=im, | |
) | |
if __name__ == "__main__": | |
demo.launch() | |