Download app.py from hakansivuk/DiverseSemanticImageEditing: direct link, hf CLI and curl.
- Browser
- Download file 3.29 kB
-
https://huggingface.co/spaces/hakansivuk/DiverseSemanticImageEditing/resolve/main/app.py
- Command line
-
hf download hf://spaces/hakansivuk/DiverseSemanticImageEditing/app.py
-
curl -L -o app.py https://huggingface.co/spaces/hakansivuk/DiverseSemanticImageEditing/resolve/main/app.py
3.29 kB
| import gradio as gr | |
| from utils import AppUtils | |
| from app_inference import AppInference | |
| inference = AppInference() | |
| def process_image(input_id, image, label): | |
| return inference.inference(int(input_id), AppUtils.get_examples()[int(input_id)][1], image["mask"], label) | |
| def preview(input_id, image, label): | |
| return inference.preview(int(input_id), AppUtils.get_examples()[int(input_id)][1], image["mask"], label) | |
| def update_label_dropdown(input_id): | |
| choices = AppUtils.get_labels(int(input_id)) | |
| return gr.Dropdown.update(choices=choices, value=choices[0]) | |
| with gr.Blocks() as demo: | |
| gr.Markdown( | |
| """ | |
| <h1 align="center">Diverse Semantic Image Editing with Style Codes</h1> | |
| <center> | |
| <div> <a href="https://www.cs.bilkent.edu.tr/~adundar/projects/DivSem/">Website</a></div> | |
| </center> | |
| <center> In this work, we propose a novel framework that can encode visible and partially visible objects with a novel mechanism to achieve consistency in the style encoding. | |
| Here, we show our results for different images and label editing options. </center> | |
| <center> <h2> How to Try </h2> </center> | |
| <center> 1. Select an image from the example list at the bottom. </center> | |
| <center> 2. Draw a mask on the input image. </center> | |
| <center> 3. Select a label from the dropdown on the "Choose Label" section. This label is used </center> | |
| <center> for editing masked area. If you don't want to change label of the masked area, you can choose None. </center> | |
| <center> 4. Click to Preview button to see the edited instance map. </center> | |
| <center> 5. Click to Submit button to see the inference result. </center> | |
| <center> Note: Our demo currently does not support to get inference from an uploaded image. Please use example images. </center> | |
| """) | |
| with gr.Row(): | |
| image_input = gr.Image(type="pil", shape=(256,256), label='Input', tool="sketch", value=AppUtils.get_examples()[0][1], scale=5).style(height=256) | |
| inst_map_output = gr.Image(type="pil", shape=(256,256), label='Instance Map', value=AppUtils.get_examples()[0][1].replace("images", "colored"), scale=4).style(height=256) | |
| image_output = gr.Image(type="pil", shape=(256,256), label='Output Image',scale=4).style(height=256) | |
| with gr.Row(): | |
| input_id = gr.Textbox(label="Image ID", value=AppUtils.get_examples()[0][0], interactive=False, visible=False) | |
| with gr.Column(scale=1, min_width=50): | |
| label_dropdown = gr.Dropdown(AppUtils.get_labels(0), label="Choose Label", value=AppUtils.get_labels(0)[0]) | |
| with gr.Column(scale=2, min_width=50): | |
| with gr.Row(): | |
| preview_button = gr.Button(value="Preview") | |
| with gr.Row(): | |
| submit_button = gr.Button(value="Submit") | |
| gr.Examples( | |
| examples=AppUtils.get_examples(), | |
| inputs=[input_id, image_input, inst_map_output], | |
| outputs=[image_output], | |
| fn=process_image, | |
| ) | |
| input_id.change(update_label_dropdown, inputs=input_id, outputs=label_dropdown ) | |
| submit_button.click(process_image, inputs=[input_id, image_input, label_dropdown], outputs=image_output) | |
| preview_button.click(preview, inputs=[input_id, image_input, label_dropdown], outputs=[inst_map_output]) | |
| demo.launch() |