Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import requests | |
| import random | |
| import os | |
| def process(prompt): | |
| """ | |
| Processes the user's text prompt and generates an image using Pollinations API, | |
| while enforcing universal facts and realism in the output. | |
| """ | |
| # Universal fact / negative guidance prompt | |
| universal_prompt = ( | |
| "Make it realistic, consistent with universal facts, and physically possible. " | |
| "Don't generate blurry, low quality, distorted, watermark, text, cropped, " | |
| "deformed, bad anatomy, extra limbs, missing limbs, duplicate objects, pixelated, " | |
| "ugly, disfigured, grainy, noisy, extra moons, duplicate moons, impossible physics." | |
| ) | |
| # Combine user prompt with universal guidance | |
| final_prompt = f"{prompt}. {universal_prompt}" | |
| # Generate filename | |
| filename = str(random.randint(111111111, 999999999)) + ".png" | |
| file_path = os.path.join(os.path.dirname(__file__), filename) | |
| # Build API request | |
| api_url = ( | |
| "https://image.pollinations.ai/prompt/" | |
| + final_prompt.replace(" ", "%20") | |
| + "?model=flux-realism" | |
| + "&width=2048&height=2048" | |
| + "&nologo=true" | |
| + "&seed=" + str(random.randint(0, 999999999)) | |
| ) | |
| response = requests.get(api_url) | |
| if response.status_code == 200: | |
| with open(file_path, "wb") as f: | |
| f.write(response.content) | |
| return file_path | |
| else: | |
| return f"Error: Could not retrieve image. Status code: {response.status_code}" | |
| # Define the Gradio interface | |
| title = "Pollinations Image Generator" | |
| description = "This app generates images from text using the Pollinations API." | |
| article = "Note: Universal facts and realism are enforced in the generated images." | |
| iface = gr.Interface( | |
| fn=process, | |
| inputs=gr.Textbox(lines=2, placeholder="Enter your prompt here...", label="Prompt"), | |
| outputs=gr.Image(type="filepath", label="Generated Image"), | |
| title=title, | |
| description=description, | |
| article=article | |
| ) | |
| iface.launch(server_name="0.0.0.0", server_port=7860, pwa=True) |