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

# HunyuanVideo-1.5

HunyuanVideo-1.5 — это компактная, но мощная модель генерации видео, которая обеспечивает передовое качество изображения и согласованность движения всего с 8,3 миллиардами параметров, что позволяет эффективно выполнять инференс на потребительских GPU. Это достижение основано на нескольких ключевых компонентах, включая тщательную подготовку данных, продвинутую архитектуру DiT с селективным и скользящим тайловым вниманием (SSTA), улучшенное двуязычное понимание благодаря глиф-осознанному кодированию текста, прогрессивное предобучение и постобучение, а также эффективную сеть супер-разрешения видео. Используя эти решения, мы разработали единый фреймворк, способный к высококачественной генерации видео из текста и из изображения для различных длительностей и разрешений. Многочисленные эксперименты показывают, что эта компактная и эффективная модель устанавливает новый уровень качества среди открытых моделей.

Все исходные контрольные точки HunyuanVideo можно найти в организации [Tencent](https://huggingface.co/tencent).

> [!TIP]
> Нажмите на модели HunyuanVideo в правой боковой панели, чтобы увидеть больше примеров задач генерации видео.
>
> Приведённые ниже примеры используют контрольную точку из [hunyuanvideo-community](https://huggingface.co/hunyuanvideo-community), поскольку веса хранятся в формате, совместимом с Diffusers.

Пример ниже демонстрирует, как сгенерировать видео, оптимизированное по памяти или скорости инференса.

См. руководство [Сокращение использования памяти](../../optimization/memory) для получения подробной информации о различных техниках экономии памяти.

```py
import torch
from diffusers import AutoModel, HunyuanVideo15Pipeline
from diffusers.utils import export_to_video

pipeline = HunyuanVideo15Pipeline.from_pretrained(
    "HunyuanVideo-1.5-Diffusers-480p_t2v",
    dtype=torch.bfloat16,
)

# model-offloading and tiling
pipeline.enable_model_cpu_offload()
pipeline.vae.enable_tiling()

prompt = "A fluffy teddy bear sits on a bed of soft pillows surrounded by children's toys."
video = pipeline(prompt=prompt, num_frames=61, num_inference_steps=30).frames[0]
export_to_video(video, "output.mp4", fps=15)
```

## Примечания

- HunyuanVideo1.5 использует маски внимания для последовательностей переменной длины. Для достижения наилучшей производительности мы рекомендуем использовать бэкенд внимания, который эффективно обрабатывает заполнение (padding).

    - **H100/H800:** `_flash_3_hub` или `_flash_3_varlen_hub`
    - **A100/A800/RTX 4090:** `flash_hub` или `flash_varlen_hub`
    - **Другие GPU:** `sage_hub`

См. руководство [Attention backends](../../optimization/attention_backends) для получения подробной информации об использовании другого бэкенда.

```py
pipe.transformer.set_attention_backend("flash_hub")  # or your preferred backend
```

- [HunyuanVideo15Pipeline](/docs/diffusers/main/ru/api/pipelines/hunyuan_video15#diffusers.HunyuanVideo15Pipeline) использует guider и не принимает параметр `guidance_scale` во время выполнения.

Вы можете проверить конфигурацию guider по умолчанию с помощью `pipe.guider`:

```py
>>> pipe.guider 
ClassifierFreeGuidance {
  "_class_name": "ClassifierFreeGuidance",
  "_diffusers_version": "0.36.0.dev0",
  "enabled": true,
  "guidance_rescale": 0.0,
  "guidance_scale": 6.0,
  "start": 0.0,
  "stop": 1.0,
  "use_original_formulation": false
}

State:
  step: None
  num_inference_steps: None
  timestep: None
  count_prepared: 0
  enabled: True
  num_conditions: 2
```

Чтобы обновить конфигурацию guider, выполните `pipe.guider = pipe.guider.new(...)`

```py
pipe.guider = pipe.guider.new(guidance_scale=5.0)
```

Подробнее о Guider — [здесь](../../using-diffusers/guiders).

## HunyuanVideo15Pipeline[[diffusers.HunyuanVideo15Pipeline]]

#### diffusers.HunyuanVideo15Pipeline[[diffusers.HunyuanVideo15Pipeline]]

```python
diffusers.HunyuanVideo15Pipeline(text_encoder: Qwen2_5_VLTextModel, tokenizer: Qwen2Tokenizer, transformer: HunyuanVideo15Transformer3DModel, vae: AutoencoderKLHunyuanVideo15, scheduler: FlowMatchEulerDiscreteScheduler, text_encoder_2: T5EncoderModel, tokenizer_2: ByT5Tokenizer, guider: ClassifierFreeGuidance)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L166)

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

transformer ([HunyuanVideo15Transformer3DModel](/docs/diffusers/main/ru/api/models/hunyuan_video15_transformer_3d#diffusers.HunyuanVideo15Transformer3DModel)) : архитектура условного трансформера (MMDiT) для удаления шума из закодированных латентных представлений видео.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый в связке с `transformer` для удаления шума из закодированных латентных представлений видео.

vae ([AutoencoderKLHunyuanVideo15](/docs/diffusers/main/ru/api/models/autoencoder_kl_hunyuan_video15#diffusers.AutoencoderKLHunyuanVideo15)) : Модель вариационного автоэнкодера (VAE) для кодирования и декодирования видео в латентные представления и обратно.

text_encoder (`Qwen2.5-VL-7B-Instruct`) : [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct), а именно вариант [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).

tokenizer (`Qwen2Tokenizer`) : Токенизатор класса [Qwen2Tokenizer].

text_encoder_2 (`T5EncoderModel`) : вариант [T5EncoderModel](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5EncoderModel).

tokenizer_2 (`ByT5Tokenizer`) : Токенизатор класса [ByT5Tokenizer]

guider ([ClassifierFreeGuidance](/docs/diffusers/main/ru/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance)) : [ClassifierFreeGuidance]для classifier free guidance.

Пайплайн для генерации видео из текста с использованием HunyuanVideo1.5.

Эта модель наследуется от [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline). Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса.

#### __call__[[diffusers.HunyuanVideo15Pipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, negative_prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_frames: int = 121, num_inference_steps: int = 50, sigmas: list[float] = None, num_videos_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_mask: typing.Optional[torch.Tensor] = None, prompt_embeds_2: typing.Optional[torch.Tensor] = None, prompt_embeds_mask_2: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_2: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_mask_2: typing.Optional[torch.Tensor] = None, output_type: str | None = 'np', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L542)

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

prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать `prompt_embeds`.

negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать `negative_prompt_embeds`.

height (`int`, *необязательный*) : Высота сгенерированного видео в пикселях.

width (`int`, *необязательный*) : Ширина сгенерированного видео в пикселях.

num_frames (`int`, по умолчанию `121`) : Количество кадров в сгенерированном видео.

num_inference_steps (`int`, по умолчанию `50`) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к более высокому качеству видео, но увеличивает время инференса.

sigmas (`list[float]`, *optional*) : Пользовательские сигмы для процесса денойзинга в планировщиках, поддерживающих аргумент `sigmas` в методе `set_timesteps`. Если не задано, будет использовано поведение по умолчанию при передаче `num_inference_steps`.

num_videos_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество видео, генерируемых на один промпт.

generator (`torch.Generator` или `list[torch.Generator]`, *необязательно*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) для обеспечения детерминированности генерации.

latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные шумовые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации видео. Можно использовать, чтобы скорректировать одну и ту же генерацию с разными промптами. Если не предоставлено, тензор латентов генерируется путём выборки с использованием переданного случайного `generator`.

prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных (взвешивание промпта). Если не предоставлены, текстовые эмбеддинги генерируются из входного аргумента `prompt`.

prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов промпта.

negative_prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента `negative_prompt`.

negative_prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов негативного промпта.

prompt_embeds_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги из второго текстового энкодера. Можно использовать для простой корректировки текстовых входных данных.

prompt_embeds_mask_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов промпта из второго текстового энкодера.

negative_prompt_embeds_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги из второго текстового энкодера.

negative_prompt_embeds_mask_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов негативного промпта из второго текстового энкодера.

output_type (`str`, *необязательный*, по умолчанию `"np"`) : Формат вывода сгенерированного видео. Выберите один из вариантов: "np", "pt" или "latent".

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `HunyuanVideo15PipelineOutput` вместо обычного кортежа.

attention_kwargs (`dict`, *необязательный*) : Словарь kwargs, который при указании передается в `AttentionProcessor`, определенный в `self.processor` в [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

**Возвращает:** `~HunyuanVideo15PipelineOutput` или `tuple`

Если `return_dict` равно `True`, возвращается `HunyuanVideo15PipelineOutput`, иначе возвращается `tuple`, где первый элемент — это список с сгенерированными видео.

Функция вызова конвейера для генерации.

Примеры:
```python
>>> import torch
>>> from diffusers import HunyuanVideo15Pipeline
>>> from diffusers.utils import export_to_video

>>> model_id = "hunyuanvideo-community/HunyuanVideo-1.5-480p_t2v"
>>> pipe = HunyuanVideo15Pipeline.from_pretrained(model_id, torch_dtype=torch.float16)
>>> pipe.vae.enable_tiling()
>>> pipe.to("cuda")

>>> output = pipe(
...     prompt="A cat walks on the grass, realistic",
...     num_inference_steps=50,
... ).frames[0]
>>> export_to_video(output, "output.mp4", fps=15)
```

#### encode_prompt[[diffusers.HunyuanVideo15Pipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None, batch_size: int = 1, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, prompt_embeds_2: typing.Optional[torch.Tensor] = None, prompt_embeds_mask_2: typing.Optional[torch.Tensor] = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L334)

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

prompt (`str` или `list[str]`, *необязательный*) : промпт для кодирования

device : (`torch.device`): устройство torch

batch_size (`int`) : размер батча промптов, по умолчанию 1

num_videos_per_prompt (`int`) : количество изображений, которые должны быть сгенерированы для каждого промпта

prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Если не указаны, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`.

prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска текста. Если не предоставлена, маска текста будет сгенерирована из аргумента `prompt`.

prompt_embeds_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные эмбеддинги глифов текста от ByT5. Если не предоставлены, будут сгенерированы из входного аргумента `prompt` с использованием self.tokenizer_2 и self.text_encoder_2.

prompt_embeds_mask_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска текста глифов от ByT5. Если не предоставлена, будет сгенерирована из входного аргумента `prompt` с использованием self.tokenizer_2 и self.text_encoder_2.

#### prepare_cond_latents_and_mask[[diffusers.HunyuanVideo15Pipeline.prepare_cond_latents_and_mask]]

```python
prepare_cond_latents_and_mask(latents, dtype: typing.Optional[torch.dtype], device: typing.Optional[torch.device])
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L508)

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

latents : Основной тензор латентов (B, C, F, H, W)

**Возвращает:** `tuple`

(cond_latents_concat, mask_concat) - оба являются нулевыми тензорами для t2v

Подготовьте условные латенты и маску для генерации t2v.

## HunyuanVideo15ImageToVideoPipeline[[diffusers.HunyuanVideo15ImageToVideoPipeline]]

#### diffusers.HunyuanVideo15ImageToVideoPipeline[[diffusers.HunyuanVideo15ImageToVideoPipeline]]

```python
diffusers.HunyuanVideo15ImageToVideoPipeline(text_encoder: Qwen2_5_VLTextModel, tokenizer: Qwen2Tokenizer, transformer: HunyuanVideo15Transformer3DModel, vae: AutoencoderKLHunyuanVideo15, scheduler: FlowMatchEulerDiscreteScheduler, text_encoder_2: T5EncoderModel, tokenizer_2: ByT5Tokenizer, guider: ClassifierFreeGuidance, image_encoder: SiglipVisionModel, feature_extractor: SiglipImageProcessorPil)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L193)

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

transformer ([HunyuanVideo15Transformer3DModel](/docs/diffusers/main/ru/api/models/hunyuan_video15_transformer_3d#diffusers.HunyuanVideo15Transformer3DModel)) : архитектура условного трансформера (MMDiT) для удаления шума из закодированных латентных представлений видео.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый в связке с `transformer` для удаления шума из закодированных латентных представлений видео.

vae ([AutoencoderKLHunyuanVideo15](/docs/diffusers/main/ru/api/models/autoencoder_kl_hunyuan_video15#diffusers.AutoencoderKLHunyuanVideo15)) : Модель вариационного автоэнкодера (VAE) для кодирования и декодирования видео в латентные представления и обратно.

text_encoder (`Qwen2.5-VL-7B-Instruct`) : [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct), а именно вариант [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).

tokenizer (`Qwen2Tokenizer`) : Токенизатор класса [Qwen2Tokenizer].

text_encoder_2 (`T5EncoderModel`) : вариант [T5EncoderModel](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5EncoderModel).

tokenizer_2 (`ByT5Tokenizer`) : Токенизатор класса [ByT5Tokenizer]

guider ([ClassifierFreeGuidance](/docs/diffusers/main/ru/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance)) : [ClassifierFreeGuidance]для classifier free guidance.

image_encoder (`SiglipVisionModel`) : вариант [SiglipVisionModel](https://huggingface.co/docs/transformers/en/model_doc/siglip#transformers.SiglipVisionModel).

feature_extractor (`SiglipImageProcessor`) : вариант [SiglipImageProcessor](https://huggingface.co/docs/transformers/en/model_doc/siglip#transformers.SiglipImageProcessor).

Pipeline для генерации видео из изображений с использованием HunyuanVideo1.5.

Эта модель наследуется от [DiffusionPipeline](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline). Общую документацию по методам, реализованным для всех пайплайнов (загрузка, сохранение, запуск на конкретном устройстве и т. д.), см. в документации родительского класса.

#### __call__[[diffusers.HunyuanVideo15ImageToVideoPipeline.__call__]]

```python
__call__(image: Image, prompt: str | list[str] = None, negative_prompt: str | list[str] = None, num_frames: int = 121, num_inference_steps: int = 50, sigmas: list[float] = None, num_videos_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_mask: typing.Optional[torch.Tensor] = None, prompt_embeds_2: typing.Optional[torch.Tensor] = None, prompt_embeds_mask_2: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_2: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_mask_2: typing.Optional[torch.Tensor] = None, output_type: str | None = 'np', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L650)

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

image (`PIL.Image.Image`) : входное изображение для условного генерирования видео.

prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты для управления генерацией видео. Если не задан, необходимо передать `prompt_embeds`.

negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты, которые не должны направлять генерацию видео. Если не задан, необходимо передать `negative_prompt_embeds`.

num_frames (`int`, по умолчанию `121`) : Количество кадров в сгенерированном видео.

num_inference_steps (`int`, по умолчанию `50`) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к более высокому качеству видео, но увеличивает время инференса.

sigmas (`list[float]`, *optional*) : Пользовательские сигмы для процесса денойзинга в планировщиках, поддерживающих аргумент `sigmas` в методе `set_timesteps`. Если не задано, будет использовано поведение по умолчанию при передаче `num_inference_steps`.

num_videos_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество видео, генерируемых на один промпт.

generator (`torch.Generator` или `list[torch.Generator]`, *необязательно*) : [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) для обеспечения детерминированности генерации.

latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные шумовые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации видео. Можно использовать, чтобы скорректировать одну и ту же генерацию с разными промптами. Если не предоставлено, тензор латентов генерируется путём выборки с использованием переданного случайного `generator`.

prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных (взвешивание промпта). Если не предоставлены, текстовые эмбеддинги генерируются из входного аргумента `prompt`.

prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов промпта.

negative_prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента `negative_prompt`.

negative_prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов негативного промпта.

prompt_embeds_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги из второго текстового энкодера. Можно использовать для простой корректировки текстовых входных данных.

prompt_embeds_mask_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов промпта из второго текстового энкодера.

negative_prompt_embeds_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги из второго текстового энкодера.

negative_prompt_embeds_mask_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска для эмбеддингов негативного промпта из второго текстового энкодера.

output_type (`str`, *необязательный*, по умолчанию `"np"`) : Формат вывода сгенерированного видео. Выберите один из вариантов: "np", "pt" или "latent".

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `HunyuanVideo15PipelineOutput` вместо обычного кортежа.

attention_kwargs (`dict`, *необязательный*) : Словарь kwargs, который при указании передается в `AttentionProcessor`, определенный в `self.processor` в [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

**Возвращает:** `~HunyuanVideo15PipelineOutput` или `tuple`

Если `return_dict` равно `True`, возвращается `HunyuanVideo15PipelineOutput`, иначе возвращается `tuple`, где первый элемент — это список с сгенерированными видео.

Функция вызова конвейера для генерации.

Примеры:
```python
>>> import torch
>>> from diffusers import HunyuanVideo15ImageToVideoPipeline
>>> from diffusers.utils import export_to_video

>>> model_id = "hunyuanvideo-community/HunyuanVideo-1.5-480p_i2v"
>>> pipe = HunyuanVideo15ImageToVideoPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
>>> pipe.vae.enable_tiling()
>>> pipe.to("cuda")

>>> image = load_image("https://huggingface.co/datasets/YiYiXu/testing-images/resolve/main/wan_i2v_input.JPG")

>>> output = pipe(
...     prompt="Summer beach vacation style, a white cat wearing sunglasses sits on a surfboard. The fluffy-furred feline gazes directly at the camera with a relaxed expression. Blurred beach scenery forms the background featuring crystal-clear waters, distant green hills, and a blue sky dotted with white clouds. The cat assumes a naturally relaxed posture, as if savoring the sea breeze and warm sunlight. A close-up shot highlights the feline's intricate details and the refreshing atmosphere of the seaside.",
...     image=image,
...     num_inference_steps=50,
... ).frames[0]
>>> export_to_video(output, "output.mp4", fps=24)
```

#### encode_prompt[[diffusers.HunyuanVideo15ImageToVideoPipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None, batch_size: int = 1, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, prompt_embeds_2: typing.Optional[torch.Tensor] = None, prompt_embeds_mask_2: typing.Optional[torch.Tensor] = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L422)

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

prompt (`str` или `list[str]`, *необязательный*) : промпт для кодирования

device : (`torch.device`): устройство torch

batch_size (`int`) : размер батча промптов, по умолчанию 1

num_videos_per_prompt (`int`) : количество изображений, которые должны быть сгенерированы для каждого промпта

prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Если не указаны, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`.

prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска текста. Если не предоставлена, маска текста будет сгенерирована из аргумента `prompt`.

prompt_embeds_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные эмбеддинги глифов текста от ByT5. Если не предоставлены, будут сгенерированы из входного аргумента `prompt` с использованием self.tokenizer_2 и self.text_encoder_2.

prompt_embeds_mask_2 (`torch.Tensor`, *необязательный*) : Предварительно сгенерированная маска текста глифов от ByT5. Если не предоставлена, будет сгенерирована из входного аргумента `prompt` с использованием self.tokenizer_2 и self.text_encoder_2.

#### prepare_cond_latents_and_mask[[diffusers.HunyuanVideo15ImageToVideoPipeline.prepare_cond_latents_and_mask]]

```python
prepare_cond_latents_and_mask(latents: Tensor, image: Image, batch_size: int, height: int, width: int, dtype: dtype, device: device)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L594)

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

latents : Основной тензор латентов (B, C, F, H, W)

**Возвращает:** `tuple`

(cond_latents_concat, mask_concat) - оба являются нулевыми тензорами для t2v

Подготовьте условные латенты и маску для генерации t2v.

## HunyuanVideo15PipelineOutput[[diffusers.pipelines.hunyuan_video1_5.pipeline_output.HunyuanVideo15PipelineOutput]]

#### diffusers.pipelines.hunyuan_video1_5.pipeline_output.HunyuanVideo15PipelineOutput[[diffusers.pipelines.hunyuan_video1_5.pipeline_output.HunyuanVideo15PipelineOutput]]

```python
diffusers.pipelines.hunyuan_video1_5.pipeline_output.HunyuanVideo15PipelineOutput(frames: Tensor)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/hunyuan_video1_5/pipeline_output.py#L9)

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

frames (`torch.Tensor`, `np.ndarray` или list[list[PIL.Image.Image]]) : Список видеовыходов — может представлять собой вложенный список длины `batch_size,` где каждый подсписок содержит последовательности денойзированных изображений PIL длины `num_frames.` Также может быть массивом NumPy или тензором Torch формы `(batch_size, num_frames, channels, height, width)`.

Класс вывода для пайплайнов HunyuanVideo1.5.

