#
# Лицензия Apache License, Version 2.0 («Лицензия»);
# вы можете использовать этот файл только в соответствии с Лицензией.
# Вы можете получить копию Лицензии по адресу
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Если это не требуется применимым законодательством или не оговорено письменно, программное
# распространяется по Лицензии на условиях «КАК ЕСТЬ»,
# БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, прямо указанных или подразумеваемых.
# См. Лицензию для получения конкретных условий, регулирующих разрешения и
# ограничениями Лицензии. -->

# Anima

Anima — это модель text-to-image, которая переиспользует [CosmosTransformer3DModel](/docs/diffusers/main/ru/api/models/cosmos_transformer3d#diffusers.CosmosTransformer3DModel) с текстовым энкодером Qwen3, текстовым кондиционером T5-token и VAE [AutoencoderKLQwenImage](/docs/diffusers/main/ru/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)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/anima/modular_pipeline.py#L19)

Модульный ModularPipeline для Anima.

## AnimaAutoBlocks[[diffusers.AnimaAutoBlocks]]

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

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

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/anima/modular_blocks_anima.py#L312)

Auto Модульный конвейер для генерации изображений из текста и преобразования изображений с использованием Anima.

Поддерживаемые рабочие процессы:
- `text2image`: требуется `prompt`
- `img2img`: требуется `image`, `prompt`

Компоненты: text_encoder (`Qwen3Model`) tokenizer (`Qwen2Tokenizer`) t5_tokenizer (`T5Tokenizer`) guider (`ClassifierFreeGuidance`) vae (`AutoencoderKLQwenImage`) image_processor (`VaeImageProcessor`) text_conditioner (`AnimaTextConditioner`) transformer (`CosmosTransformer3DModel`) scheduler (`FlowMatchEulerDiscreteScheduler`)

Входные данные: prompt (`str`): Промпт или промпты для управления генерацией изображения. negative_prompt (`str`, *необязательный*): Промпт или промпты, которые не должны влиять на генерацию изображения. max_sequence_length (`int`, *необязательный*, по умолчанию 512): Максимальная длина последовательности для кодирования промпта. image (`Image | list`, *необязательный*): Справочное изображение или изображения для процесса денойзинга. Может быть одним изображением или списком изображений. height (`int`, *необязательный*): Высота генерируемого изображения в пикселях. width (`int`, *необязательный*): Ширина генерируемого изображения в пикселях. generator (`Generator`, *необязательный*): Генератор Torch для детерминированной генерации. num_images_per_prompt (`int`, *необязательный*, по умолчанию 1): Количество изображений, генерируемых на каждый промпт. image_latents (`Tensor`, *необязательный*): Латенты изображения, используемые для управления генерацией. Могут быть получены на шаге vae_encoder. num_inference_steps (`int`): Количество шагов денойзинга. sigmas (`list`, *необязательный*): Пользовательские сигмы для процесса денойзинга. strength (`float`, *необязательный*, по умолчанию 0.9): Сила для img2img/inpainting. latents (`Tensor`): Предварительно сгенерированные шумовые латенты для генерации изображения. **denoiser_input_fields (`None`, *необязательный*): Входные данные условной модели для денойзера Anima. output_type (`str`, *необязательный*, по умолчанию pil): Формат вывода: 'pil', 'np', 'pt'.

Вывод: изображения (`list`): сгенерированные изображения.

## 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)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_anima.py#L229)

Текстовый кондиционер, используемый Anima для отображения скрытых состояний Qwen3 и идентификаторов токенов T5 в текстовые эмбеддинги Cosmos.

Anima повторно использует Cosmos Predict2 DiT. Единственным модулем специфичного для модели обусловливания является этот LLM-адаптер, который выполняет кросс-внимание от обученных эмбеддингов токенов T5 к скрытым состояниям текстового энкодера Qwen3 перед циклом диффузии. `target_dim` — это размерность выхода обусловливателя, и она должна совпадать с `text_embed_dim` трансформера.

#### 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)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/condition_embedders/condition_embedder_anima.py#L285)

**Параметры:**

source_hidden_states (`torch.Tensor` формы `(batch_size, source_sequence_length, source_dim)`) : скрытые состояния текстового энкодера Qwen3 для использования в качестве условия.

target_input_ids (`torch.Tensor` формы `(batch_size, target_sequence_length)`) : идентификаторы токенов T5, используемые в качестве обучаемых токенов запроса.

target_attention_mask (`torch.Tensor`, *необязательный*) : Маска внимания для целевых идентификаторов токенов T5.

source_attention_mask (`torch.Tensor`, *необязательный*) : Маска внимания для исходных скрытых состояний Qwen3.

**Возвращает:** `torch.Tensor`

Встраивания для текстового обусловливания трансформера Cosmos.

