FLUX.1-dev-ControlNet-Union-Pro
Shakker-Labs
Texto a imagen
Este repositorio contiene un ControlNet unificado para el modelo FLUX.1-dev lanzado conjuntamente por investigadores del Equipo InstantX y Shakker Labs. Este checkpoint es una versión Pro de FLUX.1-dev-Controlnet-Union entrenado con más pasos y conjuntos de datos. Este modelo soporta 7 modos de control, incluyendo canny (0), tile (1), depth (2), blur (3), pose (4), gray (5), low quality (6). La escala recomendada para el acondicionamiento de controlnet es 0.3-0.8. Este modelo puede ser usado conjuntamente con otros ControlNets.
Como usar
import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetPipeline, FluxControlNetModel
from diffusers.models import FluxMultiControlNetModel
base_model = 'black-forest-labs/FLUX.1-dev'
controlnet_model_union = 'Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro'
controlnet_union = FluxControlNetModel.from_pretrained(controlnet_model_union, torch_dtype=torch.bfloat16)
controlnet = FluxMultiControlNetModel([controlnet_union]) # recomendamos siempre cargar a través de FluxMultiControlNetModel
pipe = FluxControlNetPipeline.from_pretrained(base_model, controlnet=controlnet, torch_dtype=torch.bfloat16)
pipe.to("cuda")
prompt = 'Una bloguera de viaje con estilo bohemio, piel dorada por el sol y ondas desordenadas de playa.'
control_image_depth = load_image("https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro/resolve/main/assets/depth.jpg")
control_mode_depth = 2
control_image_canny = load_image("https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro/resolve/main/assets/canny.jpg")
control_mode_canny = 0
width, height = control_image_depth.size
image = pipe(
prompt,
control_image=[control_image_depth, control_image_canny],
control_mode=[control_mode_depth, control_mode_canny],
width=width,
height=height,
controlnet_conditioning_scale=[0.2, 0.4],
num_inference_steps=24,
guidance_scale=3.5,
generator=torch.manual_seed(42),
).images[0]
También soportamos la carga de múltiples ControlNets como antes, puedes cargar como
from diffusers import FluxControlNetModel
from diffusers.models import FluxMultiControlNetModel
controlnet_model_union = 'Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro'
controlnet_union = FluxControlNetModel.from_pretrained(controlnet_model_union, torch_dtype=torch.bfloat16)
controlnet_model_depth = 'Shakker-Labs/FLUX.1-dev-Controlnet-Depth'
controlnet_depth = FluxControlNetModel.from_pretrained(controlnet_model_depth, torch_dtype=torch.bfloat16)
controlnet = FluxMultiControlNetModel([controlnet_union, controlnet_depth])
# establecer modo a None para otros ControlNets
control_mode=[2, None]
Funcionalidades
- Versión Pro de FLUX.1-dev-Controlnet-Union
- Entrenado con más pasos y conjuntos de datos
- Soporta 7 modos de control: canny (0), tile (1), depth (2), blur (3), pose (4), gray (5), low quality (6)
- Escala recomendada para el acondicionamiento de controlnet: 0.3-0.8
- Puede ser usado conjuntamente con otros ControlNets
Casos de uso
- Generación de imágenes estilo bohemio
- Creación de imágenes con diferentes modos de control como profundidad o canny
- Uso de múltiples ControlNets para acondicionamiento avanzado