Buckets:
SanaControlNetModel
O modelo ControlNet foi introduzido em Adding Conditional Control to Text-to-Image Diffusion Models por Lvmin Zhang, Anyi Rao e Maneesh Agrawala. Ele oferece um maior grau de controle sobre a geração de imagens a partir de texto ao condicionar o modelo em entradas adicionais, como mapas de bordas, mapas de profundidade, mapas de segmentação e pontos-chave para detecção de pose.
O resumo do artigo é:
Apresentamos o ControlNet, uma arquitetura de rede neural para adicionar controles de condicionamento espacial a grandes modelos de difusão de texto para imagem pré-treinados. O ControlNet trava os grandes modelos de difusão prontos para produção e reutiliza suas camadas de codificação profundas e robustas, pré-treinadas com bilhões de imagens, como uma base forte para aprender um conjunto diversificado de controles condicionais. A arquitetura neural é conectada com "convoluções zero" (camadas de convolução inicializadas em zero) que crescem progressivamente os parâmetros a partir de zero e garantem que nenhum ruído prejudicial possa afetar o ajuste fino. Testamos vários controles de condicionamento, por exemplo, bordas, profundidade, segmentação, pose humana, etc., com o Stable Diffusion, usando condições únicas ou múltiplas, com ou sem prompts. Mostramos que o treinamento dos ControlNets é robusto com conjuntos de dados pequenos (<50k) e grandes (>1m). Resultados extensos mostram que o ControlNet pode facilitar aplicações mais amplas para controlar modelos de difusão de imagem.
Este modelo foi contribuído por ishan24. ❤️ A base de código original pode ser encontrada em NVlabs/Sana, e você pode encontrar checkpoints oficiais do ControlNet no perfil do Hub de Efficient-Large-Model.
SanaControlNetModel[[diffusers.SanaControlNetModel]]
diffusers.SanaControlNetModel[[diffusers.SanaControlNetModel]]
diffusers.SanaControlNetModel(in_channels: int = 32, out_channels: int | None = 32, num_attention_heads: int = 70, attention_head_dim: int = 32, num_layers: int = 7, num_cross_attention_heads: int | None = 20, cross_attention_head_dim: int | None = 112, cross_attention_dim: int | None = 2240, caption_channels: int = 2304, mlp_ratio: float = 2.5, dropout: float = 0.0, attention_bias: bool = False, sample_size: int = 32, patch_size: int = 1, norm_elementwise_affine: bool = False, norm_eps: float = 1e-06, interpolation_scale: int | None = None)
forward[[diffusers.SanaControlNetModel.forward]]
forward(hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: LongTensor, controlnet_cond: Tensor, conditioning_scale: float = 1.0, encoder_attention_mask: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
Parâmetros:
hidden_states (torch.Tensor de forma (batch_size, channel, height, width)) : hidden_states de entrada.
encoder_hidden_states (torch.Tensor) : Embeddings condicionais (embeddings calculados a partir das condições de entrada, como prompts) a serem usados.
timestep (torch.LongTensor) : Usado para indicar o passo de desruidamento.
controlnet_cond (torch.Tensor) : O tensor de entrada condicional para o ControlNet.
conditioning_scale (float, opcional, padrão 1.0) : O fator de escala para as saídas do ControlNet.
encoder_attention_mask (torch.Tensor, opcional) : Máscara de atenção aplicada a encoder_hidden_states.
attention_mask (torch.Tensor, opcional) : Máscara de atenção aplicada a hidden_states.
attention_kwargs (dict, opcional) : Um dicionário de kwargs que, se especificado, é passado para o AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
return_dict (bool, opcional, padrão True) : Indica se deve retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.
Retorna: ~models.transformer_2d.Transformer2DModelOutput ou tuple
Se return_dict for True, um ~models.transformer_2d.Transformer2DModelOutput é retornado; caso contrário, uma tuple simples é retornada.
SanaControlNetOutput[[diffusers.models.controlnets.controlnet_sana.SanaControlNetOutput]]
diffusers.models.controlnets.controlnet_sana.SanaControlNetOutput[[diffusers.models.controlnets.controlnet_sana.SanaControlNetOutput]]
diffusers.models.controlnets.controlnet_sana.SanaControlNetOutput(controlnet_block_samples: tuple[torch.Tensor])
Xet Storage Details
- Size:
- 5.2 kB
- Xet hash:
- a9a1a31293715506863f9d9e6f1bbf7713a318687d1b0f8c1fb8368f459879cd
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.