Spaces:
Running
Running
| # ===================================================== | |
| # Apckeyl_RealESRGAN | |
| # Version 9.0 | |
| # app.py | |
| # ===================================================== | |
| import gradio as gr | |
| from image_upscaler import upscale_image | |
| from batch_processor import BatchProcessor | |
| # ----------------------------------------------------- | |
| batch_processor = BatchProcessor() | |
| # ----------------------------------------------------- | |
| def process( | |
| image, | |
| mode, | |
| quality, | |
| denoise, | |
| ): | |
| try: | |
| results = batch_processor.process_with_limit( | |
| images=[image], | |
| mode=mode, | |
| quality=quality, | |
| denoise=denoise, | |
| ) | |
| result, status = results[0] | |
| return result, status | |
| except Exception as e: | |
| import traceback | |
| traceback.print_exc() | |
| return None, f"❌ Ошибка\n\n{e}" | |
| # ----------------------------------------------------- | |
| with gr.Blocks( | |
| title="Apckeyl RealESRGAN" | |
| ) as demo: | |
| gr.Markdown( | |
| """ | |
| # 🖼️ Apckeyl RealESRGAN | |
| ### AI Upscaler | |
| """ | |
| ) | |
| with gr.Row(): | |
| with gr.Column(scale=1): | |
| image = gr.Image( | |
| type="pil", | |
| label="Изображение" | |
| ) | |
| mode = gr.Radio( | |
| choices=[ | |
| "Улучшить качество (рекомендуется)", | |
| "Увеличить ×2", | |
| "Увеличить ×4", | |
| ], | |
| value="Улучшить качество (рекомендуется)", | |
| label="Режим" | |
| ) | |
| quality = gr.Radio( | |
| choices=[ | |
| "Авто (рекомендуется)", | |
| "Максимальная детализация", | |
| "Мягкая обработка", | |
| ], | |
| value="Авто (рекомендуется)", | |
| label="Качество" | |
| ) | |
| denoise = gr.Radio( | |
| choices=[ | |
| "Авто (рекомендуется)", | |
| "Выключено", | |
| ], | |
| value="Авто (рекомендуется)", | |
| label="Шумоподавление" | |
| ) | |
| button = gr.Button( | |
| "🚀 Улучшить изображение", | |
| variant="primary" | |
| ) | |
| with gr.Column(scale=1): | |
| output = gr.Image( | |
| label="Результат" | |
| ) | |
| status = gr.Textbox( | |
| label="Статус", | |
| lines=18 | |
| ) | |
| button.click( | |
| fn=process, | |
| inputs=[ | |
| image, | |
| mode, | |
| quality, | |
| denoise, | |
| ], | |
| outputs=[ | |
| output, | |
| status, | |
| ], | |
| ) | |
| demo.launch() |