draw_by_gemini / app.py
diginoron's picture
Update app.py
9d5405f verified
import gradio as gr
import requests
from PIL import Image
from io import BytesIO
import os
from deep_translator import GoogleTranslator
# آدرس صحیح API مدل قابل اجرا در Hugging Face
API_URL = "https://api-inference.huggingface.co/models/runwayml/stable-diffusion-v1-5"
headers = {
"Authorization": f"Bearer {os.environ.get('HF_TOKEN')}"
}
def generate_image(prompt):
try:
# ترجمه فارسی به انگلیسی
translated_prompt = GoogleTranslator(source='auto', target='en').translate(prompt)
print(f"🈯 Prompt ترجمه‌شده: {translated_prompt}")
except Exception as e:
return f"❌ خطا در ترجمه پرامپت:\n{str(e)}"
payload = {
"inputs": translated_prompt,
"options": {"wait_for_model": True}
}
try:
# ارسال درخواست به API
response = requests.post(API_URL, headers=headers, json=payload)
content_type = response.headers.get("content-type", "")
print("🔍 Content-Type:", content_type)
if "image" in content_type:
image = Image.open(BytesIO(response.content))
return image
else:
print("🧾 پاسخ متنی:", response.text[:1000])
return f"⚠️ پاسخ دریافتی تصویر نبود یا مدل هنوز آماده نیست:\n\n{response.text[:1000]}"
except Exception as e:
return f"❌ خطا در ارتباط با API:\n{str(e)}"
# رابط کاربری Gradio
iface = gr.Interface(
fn=generate_image,
inputs=gr.Textbox(label="توضیحت را بنویس", placeholder="مثلاً: یک روباه در جنگل..."),
outputs="image",
title="🎨 تولید تصویر دیجی نورون | www.diginoron.com",
description="توضیحی بنویس تا یک تصویر خلق کنیم! از مدل Stable Diffusion نسخه 1.5 استفاده می‌شود."
)
iface.launch()