Spaces:
Runtime error
Runtime error
File size: 2,025 Bytes
ae3c086 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 ae3c086 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 80f1cf3 1a527b6 ae3c086 74aaf6b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 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
@spaces.GPU
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() |