Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /pt /api /models /controlnet_sana.md
mishig's picture
|
download
raw
5.21 kB
# SanaControlNetModel
O modelo ControlNet foi introduzido em [Adding Conditional Control to Text-to-Image Diffusion Models](https://huggingface.co/papers/2302.05543) 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](https://huggingface.co/ishan24). ❤️ A base de código original pode ser encontrada em [NVlabs/Sana](https://github.com/NVlabs/Sana), e você pode encontrar checkpoints oficiais do ControlNet no perfil do Hub de [Efficient-Large-Model](https://huggingface.co/Efficient-Large-Model).
## SanaControlNetModel[[diffusers.SanaControlNetModel]]
#### diffusers.SanaControlNetModel[[diffusers.SanaControlNetModel]]
```python
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)
```
[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/controlnets/controlnet_sana.py#L41)
#### forward[[diffusers.SanaControlNetModel.forward]]
```python
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)
```
[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/controlnets/controlnet_sana.py#L120)
**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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
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]]
```python
diffusers.models.controlnets.controlnet_sana.SanaControlNetOutput(controlnet_block_samples: tuple[torch.Tensor])
```
[Fonte](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/controlnets/controlnet_sana.py#L37)

Xet Storage Details

Size:
5.21 kB
·
Xet hash:
f7815fbef44644cfe8d0996d2430fb3fb7324a772475ade27cac0646aebb0663

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