Shakker-Labs/FLUX.1-dev-ControlNet-Depth

Shakker-Labs
Texto a imagen

ControlNet de profundidad para FLUX.1-dev, entrenado conjuntamente por InstantX Team y Shakker Labs para generar imágenes condicionadas por mapas de profundidad. El modelo usa Depth-Anything-V2 para extraer los mapas de profundidad y está pensado para controlar la estructura espacial de la imagen generada manteniendo la capacidad de generación de FLUX.1-dev.

Como usar

Instalación y uso básico con Diffusers:

pip install -U diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline

# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("Shakker-Labs/FLUX.1-dev-ControlNet-Depth", dtype=torch.bfloat16, device_map="cuda")

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]

Ejemplo de inferencia con FLUX.1-dev como modelo base y una imagen de control de profundidad:

import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetPipeline, FluxControlNetModel

base_model = "black-forest-labs/FLUX.1-dev"
controlnet_model = "Shakker-Labs/FLUX.1-dev-ControlNet-Depth"

controlnet = FluxControlNetModel.from_pretrained(controlnet_model, torch_dtype=torch.bfloat16)
pipe = FluxControlNetPipeline.from_pretrained(
    base_model, controlnet=controlnet, torch_dtype=torch.bfloat16
)
pipe.to("cuda")

control_image = load_image("https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Depth/resolve/main/assets/cond1.png")
prompt = "an old man with white hair"

image = pipe(prompt,
    control_image=control_image,
    controlnet_conditioning_scale=0.5,
    width=control_image.size[0],
    height=control_image.size[1],
    num_inference_steps=24,
    guidance_scale=3.5,
).images[0]

Funcionalidades

Modelo de texto a imagen con ControlNet de profundidad para FLUX.1-dev.
Arquitectura compuesta por 4 FluxTransformerBlock y 1 FluxSingleTransformerBlock.
Entrenado con datos de imágenes reales y generadas durante 70.000 pasos en 16 GPU A800.
Resolución de entrenamiento de 1024 y tamaño de lote efectivo de 64.
Tasa de aprendizaje de 5e-6.
Escala recomendada de controlnet_conditioning_scale entre 0.3 y 0.7.
Distribuido en formato Safetensors y compatible con Diffusers.

Casos de uso

Generación de imágenes a partir de texto con control explícito de profundidad.
Mantener la composición, perspectiva y estructura espacial de una escena durante la generación.
Usar mapas de profundidad como condición para transformar bocetos, renders o imágenes base en nuevas imágenes generadas.
Flujos locales con Diffusers, Draw Things o DiffusionBee para creación visual controlada.