Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| import gradio as gr | |
| import requests | |
| from PIL import Image | |
| from io import BytesIO | |
| import os | |
| # Hugging Face Inference API for image generation | |
| HF_TOKEN = os.getenv('HF_TOKEN') | |
| API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-2" | |
| def generate_image(prompt): | |
| """Generate image from text using Hugging Face API""" | |
| if not prompt or prompt.strip() == "": | |
| return None, "Please enter a prompt!" | |
| try: | |
| headers = {"Authorization": f"Bearer {HF_TOKEN}"} if HF_TOKEN else {} | |
| payload = {"inputs": prompt} | |
| response = requests.post(API_URL, headers=headers, json=payload) | |
| if response.status_code == 200: | |
| image = Image.open(BytesIO(response.content)) | |
| return image, "β Image generated successfully!" | |
| else: | |
| return None, f"β API Error" | |
| except Exception as e: | |
| return None, f"β Error: {str(e)}" | |
| # Create interface | |
| with gr.Blocks(title="AI Image Generator") as demo: | |
| gr.Markdown("# π¨ AI Image Generator") | |
| gr.Markdown("Generate images from text descriptions") | |
| with gr.Row(): | |
| with gr.Column(): | |
| prompt = gr.Textbox( | |
| label="Enter prompt", | |
| placeholder="A beautiful sunset over mountains", | |
| lines=3 | |
| ) | |
| btn = gr.Button("Generate", variant="primary", size="lg") | |
| status = gr.Textbox(label="Status", interactive=False) | |
| with gr.Column(): | |
| output = gr.Image(label="Generated Image", type="pil") | |
| btn.click(fn=generate_image, inputs=prompt, outputs=[output, status]) | |
| if __name__ == "__main__": | |
| demo.launch() |