# app.py import os import gradio as gr from utils.editor import run_pipeline from PIL import Image import io DESCRIPTION = """ # šŸ‘— Fashion Editor — Stable Diffusion + ControlNet (OpenPose) Envie a foto da modelo e uma foto da peƧa (jaqueta, camiseta etc.). A ferramenta irĆ” alinhar a peƧa, extrair a pose e usar Stable Diffusion + ControlNet para gerar a composição fotorrealista. """ examples = [ # VocĆŖ pode adicionar exemplos aqui (caminhos relativos dentro do repo) após fazer upload ] def infer(model_image, garment_image, prompt_extra): if model_image is None or garment_image is None: return None, "Envie as duas imagens (modelo e peƧa)." try: result, info = run_pipeline(model_image, garment_image, prompt_extra) return result, f"OK — steps: {info.get('steps')}, guidance: {info.get('guidance_scale')}" except Exception as e: return None, f"Erro durante a geração: {str(e)}" with gr.Blocks(title="Fashion Editor (SD + ControlNet)") as demo: gr.Markdown(DESCRIPTION) with gr.Row(): with gr.Column(): model_input = gr.Image(label="Foto da Modelo", type="pil") garment_input = gr.Image(label="Foto da PeƧa (Roupa)", type="pil") prompt_extra = gr.Textbox(label="Prompt extra (opcional)", lines=2) run_button = gr.Button("Gerar Edição") status = gr.Textbox(label="Status / InformaƧƵes", interactive=False) with gr.Column(): output = gr.Image(label="Resultado (Final)") run_button.click(fn=infer, inputs=[model_input, garment_input, prompt_extra], outputs=[output, status]) if __name__ == "__main__": demo.launch()