Spaces:
Runtime error
Runtime error
Download app.py from appinitdev/CosplayApp: direct link, hf CLI and curl.
- Browser
- Download file 2.03 kB
-
https://huggingface.co/spaces/appinitdev/CosplayApp/resolve/74aaf6bb52bb01ac40651a1cbcd392e3754192c4/app.py
- Command line
-
hf download hf://spaces/appinitdev/CosplayApp@74aaf6bb52bb01ac40651a1cbcd392e3754192c4/app.py
-
curl -L -o app.py https://huggingface.co/spaces/appinitdev/CosplayApp/resolve/74aaf6bb52bb01ac40651a1cbcd392e3754192c4/app.py
2.03 kB
| import torch | |
| import spaces | |
| import gradio as gr | |
| from diffusers import FluxImg2ImgPipeline | |
| from PIL import Image | |
| # 1. Carga del modelo optimizado en memoria | |
| model_id = "black-forest-labs/FLUX.1-schnell" | |
| print("Cargando pipeline en GPU...") | |
| pipe = FluxImg2ImgPipeline.from_pretrained( | |
| model_id, | |
| torch_dtype=torch.bfloat16 | |
| ).to("cuda") | |
| # 2. Carga del LoRA de Cosplay | |
| print("Inyectando LoRA...") | |
| pipe.load_lora_weights("joyfox/Kontext-Cosplay-Lora", weight_name="kontext_cosplay_lora_20000.safetensors") | |
| # 3. Funci贸n de generaci贸n corregida | |
| def generate_cosplay(image, prompt, strength, steps): | |
| if image is None: | |
| return None | |
| # Redimensionamos para mantener estabilidad en FLUX | |
| image = image.convert("RGB").resize((1024, 1024)) | |
| # Trigger indispensable del LoRA | |
| full_prompt = f"{prompt}, r2cos" | |
| # Eliminamos la semilla fija estricta para permitir variedad por intento, | |
| # pero puedes volver a usar un generador si deseas replicabilidad exacta. | |
| # Ejecuci贸n con los nuevos par谩metros din谩micos | |
| result = pipe( | |
| prompt=full_prompt, | |
| image=image, | |
| strength=strength, # Control din谩mico desde la UI | |
| num_inference_steps=steps, # Elevado para dar tiempo al LoRA | |
| guidance_scale=0.0 | |
| ).images[0] | |
| return result | |
| # 4. Interfaz de Gradio interactiva | |
| demo = gr.Interface( | |
| fn=generate_cosplay, | |
| inputs=[ | |
| gr.Image(type="pil", label="Foto de Referencia"), | |
| gr.Textbox(label="Descripci贸n del personaje (Ej: Naruto, Cyberpunk, Samurai)"), | |
| gr.Slider(minimum=0.1, maximum=1.0, value=0.7, step=0.05, label="Fuerza de Transformaci贸n (Strength)"), | |
| gr.Slider(minimum=10, maximum=30, value=16, step=1, label="Pasos de Inferencia Totales (Steps)") | |
| ], | |
| outputs=gr.Image(label="Resultado Cosplay"), | |
| title="Kontext-Cosplay AI Pro", | |
| description="Ajusta los deslizadores si la imagen cambia muy poco." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |