Diffusers documentation
FluxControlNetModel
FluxControlNetModel
FluxControlNetModel, Flux.1 için ControlNet'in bir uygulamasıdır.
ControlNet modeli, Lvmin Zhang, Anyi Rao ve Maneesh Agrawala tarafından Adding Conditional Control to Text-to-Image Diffusion Models makalesinde tanıtılmıştır. Kenar haritaları, derinlik haritaları, segmentasyon haritaları ve poz algılama için anahtar noktalar gibi ek girdiler üzerinde modeli koşullandırarak metinden görüntüye üretim üzerinde daha yüksek bir kontrol derecesi sağlar.
Makalenin özeti şudur:
ControlNet'i sunuyoruz; bu, büyük, önceden eğitilmiş metinden görüntüye difüzyon modellerine uzamsal koşullandırma kontrolleri eklemek için tasarlanmış bir sinir ağı mimarisidir. ControlNet, üretim için hazır büyük difüzyon modellerini kilitler ve milyarlarca görüntüyle önceden eğitilmiş derin ve sağlam kodlama katmanlarını, çeşitli bir koşullu kontrol seti öğrenmek için güçlü bir omurga olarak yeniden kullanır. Sinir mimarisi, parametreleri sıfırdan kademeli olarak büyüten ve finetuning'i (ince ayar) etkileyebilecek zararlı gürültünün olmasını engelleyen “sıfır konvolüsyonlar” (sıfır başlatılmış konvolüsyon katmanları) ile bağlanır. Stable Diffusion ile tekil veya birden fazla koşul kullanarak, istemlerle (prompt) veya istemsiz olarak kenarlar, derinlik, segmentasyon, insan pozu gibi çeşitli koşullandırma kontrollerini test ediyoruz. ControlNet'lerin eğitiminin küçük (<50k) ve büyük (>1m) veri setleriyle sağlam olduğunu gösteriyoruz. Kapsamlı sonuçlar, ControlNet'in görüntü difüzyon modellerini kontrol etmek için daha geniş uygulamaları kolaylaştırabileceğini göstermektedir.
Orijinal formattan yükleme
Varsayılan olarak FluxControlNetModel, from_pretrained() ile yüklenmelidir.
from diffusers import FluxControlNetPipeline
from diffusers.models import FluxControlNetModel, FluxMultiControlNetModel
controlnet = FluxControlNetModel.from_pretrained("InstantX/FLUX.1-dev-Controlnet-Canny")
pipe = FluxControlNetPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", controlnet=controlnet)
controlnet = FluxControlNetModel.from_pretrained("InstantX/FLUX.1-dev-Controlnet-Canny")
controlnet = FluxMultiControlNetModel([controlnet])
pipe = FluxControlNetPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", controlnet=controlnet)FluxControlNetModel
sınıf diffusers.FluxControlNetModel
< source >( patch_size: int = 1in_channels: int = 64num_layers: int = 19num_single_layers: int = 38attention_head_dim: int = 128num_attention_heads: int = 24joint_attention_dim: int = 4096pooled_projection_dim: int = 768guidance_embeds: bool = Falseaxes_dims_rope: list = [16, 56, 56]num_mode: int = Noneconditioning_embedding_channels: int = None )
forward
< source >( hidden_states: Tensorcontrolnet_cond: Tensorcontrolnet_mode: Tensor = Noneconditioning_scale: float = 1.0encoder_hidden_states: Tensor = Nonepooled_projections: Tensor = Nonetimestep: LongTensor = Noneimg_ids: Tensor = Nonetxt_ids: Tensor = Noneguidance: Tensor = Nonejoint_attention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )
Parametreler
- hidden_states (
torch.FloatTensor, şekli(batch size, channel, height, width)) — Girdihidden_states. - controlnet_cond (
torch.Tensor) —(batch_size, sequence_length, hidden_size)biçiminde koşullu girdi tensörü. - controlnet_mode (
torch.Tensor) —(batch_size, 1)biçiminde mod tensörü. - conditioning_scale (
float, varsayılan1.0) — ControlNet çıktıları için ölçekleme faktörü. - encoder_hidden_states (
torch.FloatTensorof shape(batch size, sequence_len, embed_dims)) — Kullanılacak koşullu gömlemeler (giriş koşullarından, örneğin istemlerden hesaplanan gömlemeler). - pooled_projections (
torch.FloatTensor, şekli(batch_size, projection_dim)) — Girdi koşullarının gömülme değerlerinden yansıtılan gömülme değerleri. - timestep (
torch.LongTensor) — Gürültü azaltma adımını belirtmek için kullanılır. - img_ids (
torch.Tensor) — Görsel jetonları için konumsal kimlikler. - txt_ids (
torch.Tensor) — Metin jetonları için konumsal kimlikler. - guidance (
torch.Tensor, optional) — Guidance scale tensor used by guidance-distilled variants of the model. - joint_attention_kwargs (
dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindekiself.processoraltında tanımlananAttentionProcessor'a iletilen bir kwargs sözlüğü. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~models.transformer_2d.Transformer2DModelOutputdöndürülüp döndürülmemesi.
FluxTransformer2DModel ileri yöntemi.
FluxControlNetOutput
sınıf diffusers.models.controlnets.FluxControlNetOutput
< source >( controlnet_block_samples: tuplecontrolnet_single_block_samples: tuple )