#
# Berlisensi di bawah Apache License, Versi 2.0 ("Lisensi");
# Anda mungkin tidak dapat menggunakan file ini kecuali sesuai dengan Lisensi.
# Anda dapat memperoleh salinan Lisensi di
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Kecuali diwajibkan oleh hukum yang berlaku atau disepakati secara tertulis, perangkat lunak
# distribusikan di bawah Lisensi berdasarkan basis "SEBAGAIMANA ADANYA",
# TANPA JAMINAN ATAU SYARAT DALAM BENTUK APAPUN, baik yang dinyatakan maupun yang tersirat.
# Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan
# batasan di bawah Lisensi. -->

# Anima

Anima adalah model teks-ke-gambar yang menggunakan ulang [CosmosTransformer3DModel](/docs/diffusers/main/id/api/models/cosmos_transformer3d#diffusers.CosmosTransformer3DModel) dengan encoder teks Qwen3, kondisioner teks T5-token, dan VAE [AutoencoderKLQwenImage](/docs/diffusers/main/id/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)
```

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

ModularPipeline untuk Anima.

## AnimaAutoBlocks[[diffusers.AnimaAutoBlocks]]

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

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

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

Pipeline Modular otomatis untuk pembuatan teks-ke-gambar dan gambar-ke-gambar menggunakan Anima.

Alur kerja yang didukung:
- `text2image`: membutuhkan `prompt`
- `img2img`: membutuhkan `image`, `prompt`

Komponen: 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`): The prompt or prompts to guide image generation. negative_prompt (`str`, *optional*): The prompt or prompts not to guide the image generation. max_sequence_length (`int`, *optional*, defaults to 512): Maximum sequence length for prompt encoding. image (`Image | list`, *optional*): Reference image(s) for denoising. Can be a single image or list of images. height (`int`, *optional*): The height in pixels of the generated image. width (`int`, *optional*): The width in pixels of the generated image. generator (`Generator`, *optional*): Torch generator for deterministic generation. num_images_per_prompt (`int`, *optional*, defaults to 1): The number of images to generate per prompt. image_latents (`Tensor`, *optional*): image latents used to guide the image generation. Can be generated from vae_encoder step. num_inference_steps (`int`): The number of denoising steps. sigmas (`list`, *optional*): Custom sigmas for the denoising process. strength (`float`, *optional*, defaults to 0.9): Strength for img2img/inpainting. latents (`Tensor`): Pre-generated noisy latents for image generation. **denoiser_input_fields (`None`, *optional*): The conditional model inputs for the Anima denoiser. output_type (`str`, *optional*, defaults to pil): Output format: 'pil', 'np', 'pt'.

Output: gambar (`list`): Gambar yang dihasilkan.

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

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

Text conditioner yang digunakan oleh Anima untuk memetakan hidden states Qwen3 dan token ids T5 ke Cosmos text embeddings.

Anima menggunakan ulang Cosmos Predict2 DiT. Satu-satunya modul kondisioning yang spesifik untuk model adalah adapter LLM ini, yang melakukan cross-attention dari embedding token T5 yang dipelajari ke hidden states encoder teks Qwen3 sebelum loop difusi. `target_dim` adalah dimensi output kondisioner dan harus cocok dengan `text_embed_dim` dari 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)
```

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

**Parameter:**

source_hidden_states (`torch.Tensor` dengan bentuk `(batch_size, source_sequence_length, source_dim)`) : hidden states dari text encoder Qwen3 untuk dijadikan kondisi.

target_input_ids (`torch.Tensor` dengan bentuk `(batch_size, target_sequence_length)`) : id token T5 yang digunakan sebagai token query yang dipelajari.

target_attention_mask (`torch.Tensor`, *opsional*) : Attention mask untuk T5 token ids target.

source_attention_mask (`torch.Tensor`, *opsional*) : Attention mask untuk hidden states sumber Qwen3.

**Mengembalikan:** `torch.Tensor`

Embedding kondisioning teks untuk transformer Cosmos.

