Bigg / app.py
mhmodijla2's picture
Update app.py
206c578 verified
Raw
History Blame Contribute Delete
2.73 kB
import gradio as gr
import torch
from PIL import Image
print("🚀 جاري تحميل Pony Diffusion V6 XL (Uncensored)...")
try:
from diffusers import StableDiffusionXLImg2ImgPipeline
pipe = StableDiffusionXLImg2ImgPipeline.from_pretrained(
"LyliaEngine/Pony_Diffusion_V6_XL",
torch_dtype=torch.float16,
device_map="balanced",
use_safetensors=True,
variant="fp16"
)
pipe.enable_model_cpu_offload() # ضروري للـ Free Tier
print("✅ Pony Diffusion V6 XL محمل بنجاح - Uncensored")
except Exception as e:
print(f"❌ {e}")
pipe = None
def img2img_pony(input_image, prompt, strength=0.75, steps=30, seed=-1):
if pipe is None:
return None, "فشل تحميل النموذج"
if input_image is None:
return None, "ارفع صورة أولاً"
try:
generator = torch.Generator("cuda").manual_seed(seed) if seed != -1 else None
# Pony يحتاج score خاص
full_prompt = f"score_9, score_8_up, score_7_up, {prompt}"
output = pipe(
prompt=full_prompt,
image=input_image,
strength=strength,
num_inference_steps=steps,
generator=generator,
guidance_scale=5.0,
).images[0]
return output, "✅ تم التوليد بنجاح (غير مقيد)"
except Exception as e:
return None, f"خطأ: {str(e)}"
with gr.Blocks(title="Pony Diffusion Img2Img", theme=gr.themes.Soft()) as demo:
gr.Markdown("# 🖼️ Pony Diffusion V6 XL\n**Img2Img - Uncensored (غير مقيد)**")
with gr.Row():
with gr.Column():
input_image = gr.Image(label="الصورة الأصلية", type="pil", height=512)
prompt = gr.Textbox(
label="تعليمات التعديل",
lines=5,
placeholder="change background to dark fantasy forest, add glowing mushrooms, cinematic lighting..."
)
with gr.Row():
strength = gr.Slider(0.6, 0.95, value=0.75, label="Strength")
steps = gr.Slider(20, 50, value=30, label="Steps")
seed = gr.Number(-1, label="Seed (-1 = عشوائي)")
with gr.Column():
output_image = gr.Image(label="الصورة الناتجة", height=512)
status = gr.Textbox(label="الحالة", interactive=False)
btn = gr.Button("🚀 توليد (Uncensored)", variant="primary", size="large")
btn.click(img2img_pony, [input_image, prompt, strength, steps, seed], [output_image, status])
demo.launch(server_name="0.0.0.0", server_port=7860, enable_queue=True)