#
# Licenciado sob a Apache License, Versão 2.0 (a "Licença");
# você não pode usar este arquivo, exceto em conformidade com a Licença.
# Você pode obter uma cópia da Licença em
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# A menos que exigido pela lei aplicável ou acordado por escrito, o software
# distribuído sob a Licença é distribuído em uma base "COMO ESTÁ",
# SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas.
# Consulte a Licença para o idioma específico que rege as permissões e
# limitações sob a Licença. -->

# Anima

Anima é um modelo de texto para imagem que reutiliza o [CosmosTransformer3DModel](/docs/diffusers/main/pt/api/models/cosmos_transformer3d#diffusers.CosmosTransformer3DModel) com um codificador de texto Qwen3, um condicionador de texto T5-token e o VAE [AutoencoderKLQwenImage](/docs/diffusers/main/pt/api/models/autoencoderkl_qwenimage#diffusers.AutoencoderKLQwenImage).

```python
import torch
from diffusers import ModularPipeline

pipe = ModularPipeline.from_pretrained("circlestone-labs/Anima-Base-v1.0-Diffusers")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = pipe(prompt="masterpiece, best quality, 1girl, solo, city lights").images[0]
```

## AnimaModularPipeline[[diffusers.AnimaModularPipeline]]

#### diffusers.AnimaModularPipeline[[diffusers.AnimaModularPipeline]]

```python
diffusers.AnimaModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)
```

[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/anima/modular_pipeline.py#L19)

Uma ModularPipeline para Anima.

## AnimaAutoBlocks[[diffusers.AnimaAutoBlocks]]

#### diffusers.AnimaAutoBlocks[[diffusers.AnimaAutoBlocks]]

```python
diffusers.AnimaAutoBlocks()
```

[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/anima/modular_blocks_anima.py#L312)

Pipeline Modular Auto para geração de texto para imagem e imagem para imagem usando Anima.

Fluxos de trabalho suportados:
- `text2image`: requer `prompt`
- `img2img`: requer `image`, `prompt`

Componentes: text_encoder (`Qwen3Model`) tokenizer (`Qwen2Tokenizer`) t5_tokenizer (`T5Tokenizer`) guider (`ClassifierFreeGuidance`) vae (`AutoencoderKLQwenImage`) image_processor (`VaeImageProcessor`) text_conditioner (`AnimaTextConditioner`) transformer (`CosmosTransformer3DModel`) scheduler (`FlowMatchEulerDiscreteScheduler`)

Inputs: prompt (`str`): O prompt ou prompts para orientar a geração de imagem. negative_prompt (`str`, *opcional*): O prompt ou prompts que não devem orientar a geração de imagem. max_sequence_length (`int`, *opcional*, padrão 512): Comprimento máximo da sequência para a codificação do prompt. image (`Image | list`, *opcional*): Imagem(ns) de referência para o desruidamento. Pode ser uma única imagem ou uma lista de imagens. height (`int`, *opcional*): A altura em pixels da imagem gerada. width (`int`, *opcional*): A largura em pixels da imagem gerada. generator (`Generator`, *opcional*): Gerador do Torch para geração determinística. num_images_per_prompt (`int`, *opcional*, padrão 1): O número de imagens a serem geradas por prompt. image_latents (`Tensor`, *opcional*): latents de imagem usados para orientar a geração de imagem. Podem ser gerados a partir da etapa vae_encoder. num_inference_steps (`int`): O número de etapas de desruidamento. sigmas (`list`, *opcional*): Sigmas personalizados para o processo de desruidamento. strength (`float`, *opcional*, padrão 0.9): Força para img2img/inpainting. latents (`Tensor`): Latents ruidosos pré-gerados para a geração de imagem. **denoiser_input_fields (`None`, *opcional*): As entradas condicionais do modelo para o desruidador Anima. output_type (`str`, *opcional*, padrão pil): Formato de saída: 'pil', 'np', 'pt'.

Saídas: imagens (`list`): Imagens geradas.

## AnimaTextConditioner[[diffusers.AnimaTextConditioner]]

#### diffusers.AnimaTextConditioner[[diffusers.AnimaTextConditioner]]

```python
diffusers.AnimaTextConditioner(source_dim: int = 1024, target_dim: int = 1024, model_dim: int = 1024, num_layers: int = 6, num_attention_heads: int = 16, mlp_ratio: float = 4.0, target_vocab_size: int = 32128, use_self_attention: bool = True, use_layer_norm: bool = False, min_sequence_length: int = 512)
```

[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_anima.py#L229)

Condicionador de texto usado pelo Anima para mapear os estados ocultos do Qwen3 e os ids de tokens do T5 para embeddings de texto do Cosmos.

Anima reutiliza o Cosmos Predict2 DiT. O único módulo de condicionamento específico do modelo é este adaptador de LLM, que realiza cross-attention a partir dos embeddings de tokens T5 aprendidos para os estados ocultos do codificador de texto Qwen3 antes do loop de difusão. `target_dim` é a dimensão de saída do condicionador e deve corresponder ao `text_embed_dim` do transformer.

#### forward[[diffusers.AnimaTextConditioner.forward]]

```python
forward(source_hidden_states: Tensor, target_input_ids: Tensor, target_attention_mask: typing.Optional[torch.Tensor] = None, source_attention_mask: typing.Optional[torch.Tensor] = None)
```

[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_anima.py#L285)

**Parâmetros:**

source_hidden_states (`torch.Tensor` de forma `(batch_size, source_sequence_length, source_dim)`) : estados ocultos do codificador de texto Qwen3 para condicionar.

target_input_ids (`torch.Tensor` de forma `(batch_size, target_sequence_length)`) : ids de tokens T5 usados como tokens de consulta aprendidos.

target_attention_mask (`torch.Tensor`, *opcional*) : Máscara de atenção para os ids de tokens T5 de destino.

source_attention_mask (`torch.Tensor`, *opcional*) : Máscara de atenção para os estados ocultos de origem do Qwen3.

**Retorna:** `torch.Tensor`

Embeddings de condicionamento de texto para o transformer Cosmos.

