Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /ru /api /models /controlnet_flux.md
mishig's picture
|
download
raw
8.09 kB

FluxControlNetModel

FluxControlNetModel — это реализация ControlNet для Flux.1.

Модель ControlNet была представлена в статье Adding Conditional Control to Text-to-Image Diffusion Models авторами Lvmin Zhang, Anyi Rao, Maneesh Agrawala. Она обеспечивает более высокий уровень контроля над генерацией изображений по тексту, позволяя моделировать модель на основе дополнительных входных данных, таких как карты границ, карты глубины, карты сегментации и ключевые точки для определения позы.

Аннотация из статьи:

Мы представляем ControlNet — архитектуру нейронной сети для добавления пространственного управления условиями к крупным предобученным диффузионным моделям «текст в изображение». ControlNet фиксирует готовые к производству крупные диффузионные модели и повторно использует их глубокие и устойчивые слои кодирования, предобученные на миллиардах изображений, в качестве мощного каркаса для обучения разнообразному набору условных контролей. Нейронная архитектура соединяется с «нулевыми свёртками» (слоями свёртки с нулевой инициализацией), которые постепенно наращивают параметры от нуля и гарантируют, что вредоносный шум не может повлиять на дообучение. Мы тестируем различные условные контроли, например, края, глубину, сегментацию, позу человека и т. д., с Stable Diffusion, используя одно или несколько условий, с промптами или без них. Мы показываем, что обучение ControlNet устойчиво как на малых (<50k), так и на больших (>1m) наборах данных. Обширные результаты демонстрируют, что ControlNet может способствовать более широкому применению для управления диффузионными моделями изображений.

Загрузка из исходного формата

По умолчанию FluxControlNetModel следует загружать с помощью 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)

Источник

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)

Источник

Параметры:

hidden_states (torch.FloatTensor формы (batch size, channel, height, width)) : Входные hidden_states.

controlnet_cond (torch.Tensor) : Условный входной тензор формы (batch_size, sequence_length, hidden_size).

controlnet_mode (torch.Tensor) : тензор режимов формы (batch_size, 1).

conditioning_scale (float, по умолчанию 1.0) : Коэффициент масштабирования для выходов ControlNet.

encoder_hidden_states (torch.FloatTensor формы (batch size, sequence_len, embed_dims)) : Условные эмбеддинги (эмбеддинги, вычисленные на основе входных условий, таких как промпты), которые следует использовать.

pooled_projections (torch.FloatTensor формы (batch_size, projection_dim)) : Векторы, полученные из эмбеддингов входных условий.

timestep ( torch.LongTensor) : Используется для указания шага денойзинга.

img_ids (torch.Tensor) : Позиционные идентификаторы для токенов изображения.

txt_ids (torch.Tensor) : Позиционные идентификаторы для текстовых токенов.

guidance (torch.Tensor, необязательный) : Тензор масштаба руководства, используемый вариантами модели, дистиллированными с помощью руководства.

joint_attention_kwargs (dict, необязательный) : Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.

return_dict (bool, необязательный, по умолчанию True) : Возвращать ли ~models.transformer_2d.Transformer2DModelOutput вместо обычного кортежа.

Возвращает:

Если return_dict равно True, возвращается ~models.transformer_2d.Transformer2DModelOutput, иначе — tuple, первым элементом которого является тензор выборки.

Метод forward модели 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])

Источник

Xet Storage Details

Size:
8.09 kB
·
Xet hash:
64c0e740404d38644fc36cb3160949efe2d6ecb08f328c686a065f9f0a4eca5f

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