Spaces:
Running on Zero
Running on Zero
Download app.py from harpertoken/FreeImage: direct link, hf CLI and curl.
- Browser
- Download file 2.19 kB
-
https://huggingface.co/spaces/harpertoken/FreeImage/resolve/main/app.py
- Command line
-
hf download hf://spaces/harpertoken/FreeImage/app.py
-
curl -L -o app.py https://huggingface.co/spaces/harpertoken/FreeImage/resolve/main/app.py
2.19 kB
| import gradio as gr | |
| import requests | |
| from PIL import Image | |
| from io import BytesIO | |
| import urllib.parse | |
| import spaces | |
| def generate_image(prompt: str, width: int = 1024, height: int = 1024, seed: int = -1): | |
| if not prompt or not prompt.strip(): | |
| return None, "Please enter a prompt." | |
| encoded_prompt = urllib.parse.quote(prompt.strip()) | |
| url = f"https://image.pollinations.ai/prompt/{encoded_prompt}" | |
| params = { | |
| "width": width, | |
| "height": height, | |
| "nologo": "true", | |
| "enhance": "true" | |
| } | |
| if seed != -1: | |
| params["seed"] = int(seed) | |
| try: | |
| response = requests.get(url, params=params, timeout=90) | |
| response.raise_for_status() | |
| image = Image.open(BytesIO(response.content)) | |
| return image, f"✅ Generated successfully\nPrompt: {prompt}" | |
| except Exception as e: | |
| return None, f"❌ Error: {str(e)}" | |
| with gr.Blocks(title="Image Generator") as demo: | |
| gr.Markdown(""" | |
| # 🎨 Image Generator | |
| Powered by **Pollinations.ai** - no API key needed. | |
| """) | |
| with gr.Row(): | |
| with gr.Column(scale=2): | |
| prompt = gr.Textbox( | |
| label="Prompt", | |
| placeholder="A cute cat wearing sunglasses, cyberpunk style...", | |
| lines=3 | |
| ) | |
| with gr.Row(): | |
| width = gr.Slider(512, 1280, value=1024, step=64, label="Width") | |
| height = gr.Slider(512, 1280, value=1024, step=64, label="Height") | |
| seed = gr.Number(value=-1, label="Seed (-1 = random)", precision=0) | |
| generate_btn = gr.Button("Generate Image", variant="primary") | |
| with gr.Column(scale=3): | |
| output_image = gr.Image(label="Generated Image", type="pil") | |
| status = gr.Textbox(label="Status", interactive=False) | |
| generate_btn.click( | |
| fn=generate_image, | |
| inputs=[prompt, width, height, seed], | |
| outputs=[output_image, status] | |
| ) | |
| prompt.submit( | |
| fn=generate_image, | |
| inputs=[prompt, width, height, seed], | |
| outputs=[output_image, status] | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch(ssr_mode=False) |