Fceless / app.py
vitordigitizing's picture
Update app.py
67f4a27 verified
Raw
History Blame Contribute Delete
1.7 kB
import spaces
import gradio as gr
from PIL import Image
import io
import os
# Importa a função melhorada do seu módulo (que já está ajustado )
from faceless_processing import build_faceless_embroidery_assets
@spaces.GPU
def process_faceless(input_image, prompt="", negative_prompt=""):
if input_image is None:
return None, None
# NÃO REDIMENSIONAMOS A IMAGEM – a função interna ( embroidery_processing.py) já lida com tamanhos variados.
# Gera lineart e cutout usando a função otimizada
try:
lineart, cutout = build_faceless_embroidery_assets(
input_image,
use_huggingface=False, # Desativa Hugging Face (pode ativar se tiver token)
prompt=prompt or None,
negative_prompt=negative_prompt or None,
)
return lineart, cutout
except Exception as e:
print(f"[ERRO] process_faceless: {e}")
# Fallback: retorna a imagem original e uma mensagem de erro
return input_image, None
# Interface Gradio
demo = gr.Interface(
fn=process_faceless,
inputs=[
gr.Image(type="pil", label="Imagem de Entrada"),
gr.Textbox(label="Prompt (Opcional)", value=""),
gr.Textbox(label="Prompt Negativo (Opcional)", value="")
],
outputs=[
gr.Image(label="Lineart Final (Transparente)"),
gr.Image(label="Recorte do Rosto (Sem Fundo)")
],
title="Faceless Embroidery Studio Generator",
description="Gera contornos e linearts minimalistas (Faceless) para bordados a partir de retratos.\n\n**Nota:** O rosto é completamente apagado e apenas a silhueta externa é desenhada."
)
if __name__ == "__main__":
demo.launch()