Sketch / app.py
iamprajval's picture
Add working AI image generator with HF API
4ab954e verified
raw
history blame
1.7 kB
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()