Buckets:

hf-doc-build/doc / diffusers /main /id /api /models /controlnet_flux.md
mishig's picture
|
download
raw
6.09 kB

FluxControlNetModel

FluxControlNetModel adalah implementasi ControlNet untuk Flux.1.

Model ControlNet diperkenalkan dalam Adding Conditional Control to Text-to-Image Diffusion Models oleh Lvmin Zhang, Anyi Rao, Maneesh Agrawala. Model ini memberikan tingkat kendali yang lebih besar terhadap generasi teks-ke-gambar dengan mengondisikan model pada input tambahan seperti peta tepi, peta kedalaman, peta segmentasi, dan titik kunci untuk deteksi pose.

Abstrak dari makalah tersebut adalah:

Kami memperkenalkan ControlNet, sebuah arsitektur jaringan saraf untuk menambahkan kontrol kondisional spasial ke model difusi teks-ke-gambar besar yang telah dilatih sebelumnya. ControlNet mengunci model difusi besar yang siap produksi, dan memanfaatkan ulang lapisan enkoding yang dalam dan robust yang telah dilatih sebelumnya dengan miliaran gambar sebagai tulang punggung yang kuat untuk mempelajari berbagai set kontrol kondisional. Arsitektur saraf ini terhubung dengan "zero convolutions" (lapisan konvolusi yang diinisialisasi nol) yang secara bertahap meningkatkan parameter dari nol dan memastikan bahwa tidak ada noise berbahaya yang dapat memengaruhi finetuning. Kami menguji berbagai kontrol kondisional, misalnya, tepi, kedalaman, segmentasi, pose manusia, dll., dengan Stable Diffusion, menggunakan satu atau beberapa kondisi, dengan atau tanpa prompt. Kami menunjukkan bahwa pelatihan ControlNet bersifat robust dengan dataset kecil (<50k) dan besar (>1m). Hasil ekstensif menunjukkan bahwa ControlNet dapat memfasilitasi aplikasi yang lebih luas untuk mengontrol model difusi gambar.

Memuat dari format asli

Secara default, FluxControlNetModel harus dimuat dengan from_pretrained().

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[[diffusers.FluxControlNetModel]]

diffusers.FluxControlNetModel[[diffusers.FluxControlNetModel]]

diffusers.FluxControlNetModel(patch_size: int = 1, in_channels: int = 64, num_layers: int = 19, num_single_layers: int = 38, attention_head_dim: int = 128, num_attention_heads: int = 24, joint_attention_dim: int = 4096, pooled_projection_dim: int = 768, guidance_embeds: bool = False, axes_dims_rope: list[int] = [16, 56, 56], num_mode: int = None, conditioning_embedding_channels: int = None)

Sumber

forward[[diffusers.FluxControlNetModel.forward]]

forward(hidden_states: Tensor, controlnet_cond: Tensor, controlnet_mode: Tensor = None, conditioning_scale: float = 1.0, encoder_hidden_states: Tensor = None, pooled_projections: Tensor = None, timestep: LongTensor = None, img_ids: Tensor = None, txt_ids: Tensor = None, guidance: Tensor = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)

Sumber

Parameter:

hidden_states (torch.FloatTensor dengan bentuk (batch size, channel, height, width)) : Input hidden_states.

controlnet_cond (torch.Tensor) : Tensor input kondisional dengan bentuk (batch_size, sequence_length, hidden_size).

controlnet_mode (torch.Tensor) : Tensor mode dengan bentuk (batch_size, 1).

conditioning_scale (float, defaultnya 1.0) : Faktor skala untuk output ControlNet.

encoder_hidden_states (torch.FloatTensor dengan bentuk (batch size, sequence_len, embed_dims)) : Embedding kondisional (embedding yang dihitung dari kondisi input seperti prompt) yang akan digunakan.

pooled_projections (torch.FloatTensor dengan bentuk (batch_size, projection_dim)) : Embeddings yang diproyeksikan dari embeddings kondisi input.

timestep ( torch.LongTensor) : Digunakan untuk menunjukkan langkah denoising.

img_ids (torch.Tensor) : id posisi untuk token gambar.

txt_ids (torch.Tensor) : id posisi untuk token teks.

guidance (torch.Tensor, opsional) : Tensor skala panduan yang digunakan oleh varian model yang telah melalui distilasi panduan.

joint_attention_kwargs (dict, opsional) : Kamus kwargs yang jika ditentukan akan diteruskan ke AttentionProcessor seperti yang didefinisikan di bawah self.processor dalam diffusers.models.attention_processor.

return_dict (bool, opsional, defaultnya True) : Apakah akan mengembalikan ~models.transformer_2d.Transformer2DModelOutput alih-alih tuple biasa.

Mengembalikan:

Jika return_dict bernilai True, sebuah ~models.transformer_2d.Transformer2DModelOutput akan dikembalikan, selain itu sebuah tuple di mana elemen pertama adalah tensor sampel.

Metode forward dari FluxTransformer2DModel.

FluxControlNetOutput[[diffusers.models.controlnets.FluxControlNetOutput]]

diffusers.models.controlnets.FluxControlNetOutput[[diffusers.models.controlnets.FluxControlNetOutput]]

diffusers.models.controlnets.FluxControlNetOutput(controlnet_block_samples: tuple[torch.Tensor], controlnet_single_block_samples: tuple[torch.Tensor])

Sumber

Xet Storage Details

Size:
6.09 kB
·
Xet hash:
7c7cc27b9c201c5704bc5a892744e6f22aba8b6e8307bb53a59a5a9ebf2e58bd

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.