import gradio as gr from transformers import pipeline from PIL import Image # ----------------------------- # 1. Модельді жүктеу: Style Transfer (Фотосуретті сурет стиліне өзгерту) # ----------------------------- # Бұл модель GPU-сыз, CPU-да жұмыс істеуге бейімделген try: style_transfer_model = pipeline( "image-to-image", model="akhaliq/style-transfer-transformer-pytorch", # Trust_remote_code=True керек болуы мүмкін ) except Exception as e: # Егер модель жүктелмесе, қатені көрсету print(f"Стиль ауыстыру моделін жүктеу қатесі: {e}") style_transfer_model = None # ----------------------------- # 2. Анализ функциясы # ----------------------------- def apply_style_transfer(image, style_prompt): """ Берілген суретке таңдалған стильді қолданады. """ if style_transfer_model is None: return None, "Қате: Модель жүктелмеді. Space журналдарын тексеріңіз." # Егер сурет жүктелмесе if image is None: return None, "Қайта өңдеу үшін сурет жүктеңіз." try: # Модельді іске қосу result = style_transfer_model( image, prompt=style_prompt, num_inference_steps=20 # CPU үшін қадамдарды азайту ) # Нәтиже суреті styled_image = result[0]['generated_image'] # Мәтіндік нәтиже output_text = f"✨ Сіздің суретіңіз **'{style_prompt}'** стилінде сәтті қайта өңделді." return styled_image, output_text except Exception as e: return None, f"Өңдеу кезінде қате шықты: {e}" # ----------------------------- # 3. Интерфейс # ----------------------------- with gr.Blocks(title="StyleTransfer AI | Фотосуреттен Өнерге") as demo: gr.Markdown( "

🖼️ Фотосуреттен Өнерге: Әлемдегі Ғажайып Стиль

" ) gr.Markdown( "

Сурет жүктеңіз және оны қай өнер стилінде көргіңіз келетінін жазыңыз (мысалы: 'Vincent van Gogh', 'Impressionism', 'Cyberpunk').

" ) with gr.Row(): # Кіріс: Сурет және Стильдік сөз with gr.Column(): image_input = gr.Image(label="1. Өңделетін фотосурет", type="pil", sources=["upload", "webcam"]) prompt_input = gr.Textbox( label="2. Қажетті стильді жазыңыз", value="Impressionist painting of a Kazakh steppe", placeholder="Мысалы: A sketch drawing, Van Gogh style, Cyberpunk art" ) process_btn = gr.Button("🎨 Стильді қолдану", variant="primary") # Шығыс: Өңделген сурет with gr.Column(): styled_image_output = gr.Image(label="✨ Өңделген нәтиже", type="pil", interactive=False) output_text = gr.Markdown("Нәтиже осы жерде пайда болады.") # Функцияны батырмаға байланыстыру process_btn.click( fn=apply_style_transfer, inputs=[image_input, prompt_input], outputs=[styled_image_output, output_text] ) demo.launch()