Diffusers documentation

SanaControlNetModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SanaControlNetModel

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.

Bu model ishan24 tarafından katkıda bulunmuştur. ❤️ Orijinal kod tabanı NVlabs/Sana adresinde bulunabilir ve resmi ControlNet checkpoint'leri Efficient-Large-Model'in Hub profilinde yer almaktadır.

SanaControlNetModel

sınıf diffusers.SanaControlNetModel

< >

( in_channels: int = 32out_channels: int | None = 32num_attention_heads: int = 70attention_head_dim: int = 32num_layers: int = 7num_cross_attention_heads: int | None = 20cross_attention_head_dim: int | None = 112cross_attention_dim: int | None = 2240caption_channels: int = 2304mlp_ratio: float = 2.5dropout: float = 0.0attention_bias: bool = Falsesample_size: int = 32patch_size: int = 1norm_elementwise_affine: bool = Falsenorm_eps: float = 1e-06interpolation_scale: int | None = None )

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: LongTensorcontrolnet_cond: Tensorconditioning_scale: float = 1.0encoder_attention_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True ) → ~models.transformer_2d.Transformer2DModelOutput or tuple

Parametreler

  • hidden_states (torch.Tensor, şekli (batch_size, channel, height, width)) — Girdi hidden_states.
  • encoder_hidden_states (torch.Tensor) — Kullanılacak koşullu gömme değerleri (prompt gibi girdi koşullarından hesaplanan gömme değerleri).
  • timestep (torch.LongTensor) — Gürültü azaltma adımını belirtmek için kullanılır.
  • controlnet_cond (torch.Tensor) — ControlNet için koşullu girdi tensörü.
  • conditioning_scale (float, isteğe bağlı, varsayılan 1.0) — ControlNet çıktıları için ölçekleme faktörü.
  • encoder_attention_mask (torch.Tensor, isteğe bağlı) — encoder_hidden_states uygulanan dikkat maskesi.
  • attention_mask (torch.Tensor, isteğe bağlı) — hidden_states uygulanan dikkat maskesi.
  • attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine ~models.transformer_2d.Transformer2DModelOutput döndürülüp döndürülmemesi.

Dönüş değeri

~models.transformer_2d.Transformer2DModelOutput veya tuple

return_dict True ise, ~models.transformer_2d.Transformer2DModelOutput döndürülür, aksi takdirde düz bir tuple döndürülür.

SanaControlNetOutput

sınıf diffusers.models.controlnets.controlnet_sana.SanaControlNetOutput

< >

( controlnet_block_samples: tuple )

Update on GitHub