Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from PIL import Image | |
| from diffusers import DDPMPipeline # مدل سبکتر (تنها diffusers استفاده میشود) | |
| import torch | |
| import io | |
| # تنظیمات برنامه Streamlit | |
| st.set_page_config( | |
| page_title="AI Photo Enhancer (CPU)", | |
| page_icon="✨", | |
| layout="centered" | |
| ) | |
| st.title("✨ ارتقاء و ترمیم چهره (مدل سبک CPU)") | |
| st.markdown("---") | |
| # تنظیم مدل (کش کردن برای سرعت) | |
| def load_pipeline(): | |
| # مدل سبک مخصوص چهره و CPU | |
| pipe = DDPMPipeline.from_pretrained( | |
| "google/ddpm-ema-celebahq-256", | |
| ) | |
| return pipe | |
| pipe = load_pipeline() | |
| # تابع اصلی تولید چهره جدید | |
| def generate_face(): | |
| # اجرای Generation | |
| result_image = pipe( | |
| batch_size=1 | |
| ).images[0] | |
| return result_image | |
| # رابط کاربری Streamlit | |
| st.markdown("این مدل برای کار روی CPU بهینه شده است و **فقط** میتواند تصاویر جدیدی از چهره تولید کند، نه ترمیم عکس ورودی.") | |
| if st.button("تولید چهره جدید (رایگان)"): | |
| with st.spinner("در حال اجرای هوش مصنوعی و تولید تصویر... (صبر کنید)"): | |
| try: | |
| enhanced_image = generate_face() | |
| st.success("✅ عملیات با موفقیت انجام شد!") | |
| st.image(enhanced_image, caption="چهره تولید شده (خروجی CPU)", use_column_width=True) | |
| # دکمه دانلود | |
| buf = io.BytesIO() | |
| enhanced_image.save(buf, format="PNG") | |
| st.download_button( | |
| label="دانلود عکس تولید شده", | |
| data=buf.getvalue(), | |
| file_name="generated_cpu_photo.png", | |
| mime="image/png" | |
| ) | |
| except Exception as e: | |
| st.error(f"خطا در اجرای مدل: {e}") | |