import gradio as gr | |
def predict(im): | |
return im["composite"] | |
with gr.Blocks() as demo: | |
with gr.Group(): | |
with gr.Row(): | |
im = gr.ImageEditor( | |
type="numpy", | |
crop_size="1:1", | |
elem_id="image_editor", | |
) | |
im_preview = gr.Image() | |
with gr.Group(): | |
with gr.Row(): | |
n_upload = gr.Label( | |
0, | |
label="upload", | |
elem_id="upload", | |
) | |
n_change = gr.Label( | |
0, | |
label="change", | |
elem_id="change", | |
) | |
n_input = gr.Label( | |
0, | |
label="input", | |
elem_id="input", | |
) | |
n_apply = gr.Label( | |
0, | |
label="apply", | |
elem_id="apply", | |
) | |
clear_btn = gr.Button("Clear", elem_id="clear") | |
im.upload( | |
lambda x: int(x) + 1, outputs=n_upload, inputs=n_upload, show_progress="hidden" | |
) | |
im.change( | |
lambda x: int(x) + 1, outputs=n_change, inputs=n_change, show_progress="hidden" | |
) | |
im.input( | |
lambda x: int(x) + 1, outputs=n_input, inputs=n_input, show_progress="hidden" | |
) | |
im.apply( | |
lambda x: int(x) + 1, outputs=n_apply, inputs=n_apply, show_progress="hidden" | |
) | |
im.change(predict, outputs=im_preview, inputs=im, show_progress="hidden") | |
clear_btn.click( | |
lambda: None, | |
None, | |
im, | |
) | |
if __name__ == "__main__": | |
demo.launch() | |