Spaces:
Running
Running
| import gradio as gr | |
| import numpy as np | |
| import cv2 | |
| from PIL import Image | |
| import tempfile | |
| def apply_modification(image, modification_type): | |
| """ | |
| Apply a simple modification to demonstrate the concept | |
| This is a placeholder - you would replace with your actual processing | |
| """ | |
| img = np.array(image) | |
| if modification_type == "small": | |
| # Placeholder for small modification | |
| img = cv2.circle(img, (img.shape[1]//2, img.shape[0]//2), 30, (255, 0, 0), -1) | |
| elif modification_type == "large": | |
| # Placeholder for large modification | |
| img = cv2.circle(img, (img.shape[1]//2, img.shape[0]//2), 60, (0, 0, 255), -1) | |
| return Image.fromarray(img) | |
| with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue")) as demo: | |
| gr.Markdown(""" | |
| # Personal Image Modifier | |
| *Built with [anycoder](https://huggingface.co/spaces/akhaliq/anycoder)* | |
| """) | |
| with gr.Row(): | |
| with gr.Column(): | |
| input_image = gr.Image(label="Upload Your Image", type="pil") | |
| modification = gr.Radio( | |
| choices=["Small", "Large"], | |
| label="Modification Type", | |
| value="Small" | |
| ) | |
| submit_btn = gr.Button("Apply Modification", variant="primary") | |
| with gr.Column(): | |
| output_image = gr.Image(label="Modified Image") | |
| download_btn = gr.DownloadButton("Download Result") | |
| # Example images | |
| gr.Examples( | |
| examples=[["examples/male1.jpg", "Small"], ["examples/male2.jpg", "Large"]], | |
| inputs=[input_image, modification], | |
| outputs=output_image, | |
| fn=apply_modification, | |
| cache_examples=True | |
| ) | |
| def process_and_download(image, mod_type): | |
| modified = apply_modification(image, mod_type.lower()) | |
| temp_path = f"{tempfile.mkdtemp()}/modified.png" | |
| modified.save(temp_path) | |
| return modified, temp_path | |
| submit_btn.click( | |
| fn=process_and_download, | |
| inputs=[input_image, modification], | |
| outputs=[output_image, download_btn] | |
| ) | |
| demo.launch( | |
| title="Personal Image Modifier", | |
| footer_links=[{"label": "Built with anycoder", "url": "https://huggingface.co/spaces/akhaliq/anycoder"}] | |
| ) |