# ===================================================== # 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()