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