#
# 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. -->

# HunyuanVideo-1.5

HunyuanVideo-1.5 adalah model generasi video yang ringan namun kuat, yang mencapai kualitas visual dan koherensi gerak terkini (state-of-the-art) dengan hanya 8,3 miliar parameter, memungkinkan inferensi yang efisien pada GPU kelas konsumen. Pencapaian ini dibangun di atas beberapa komponen utama, termasuk kurasi data yang cermat, arsitektur DiT yang canggih dengan perhatian selektif dan seluncur ubin (selective and sliding tile attention/SSTA), pemahaman dwibahasa yang ditingkatkan melalui pengkodean teks yang sadar glif (glyph-aware), pra-pelatihan dan pasca-pelatihan progresif, serta jaringan super-resolusi video yang efisien. Dengan memanfaatkan desain-desain ini, kami mengembangkan kerangka kerja terpadu yang mampu menghasilkan generasi teks-ke-video dan gambar-ke-video berkualitas tinggi di berbagai durasi dan resolusi. Eksperimen ekstensif menunjukkan bahwa model yang ringkas dan mahir ini menetapkan state-of-the-art baru di antara model sumber terbuka.

Anda dapat menemukan semua checkpoint HunyuanVideo asli di bawah organisasi [Tencent](https://huggingface.co/tencent).

> [!TIP]
> Klik pada model HunyuanVideo di bilah sisi kanan untuk melihat lebih banyak contoh tugas generasi video.
>
> Contoh di bawah menggunakan checkpoint dari [hunyuanvideo-community](https://huggingface.co/hunyuanvideo-community) karena bobotnya disimpan dalam tata letak yang kompatibel dengan Diffusers.

Contoh di bawah ini menunjukkan cara menghasilkan video yang dioptimalkan untuk memori atau kecepatan inferensi.

Lihat panduan [Reduce memory usage](../../optimization/memory) untuk detail lebih lanjut tentang berbagai teknik penghematan memori.

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

## Catatan

- HunyuanVideo1.5 menggunakan attention masks dengan sekuens berpanjang variabel. Untuk kinerja terbaik, kami merekomendasikan penggunaan backend attention yang menangani padding secara efisien.

    - **H100/H800:** `_flash_3_hub` atau `_flash_3_varlen_hub`
    - **A100/A800/RTX 4090:** `flash_hub` atau `flash_varlen_hub`
    - **GPU lainnya:** `sage_hub`

Lihat panduan [Attention backends](../../optimization/attention_backends) untuk detail lebih lanjut tentang penggunaan backend yang berbeda.

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

- [HunyuanVideo15Pipeline](/docs/diffusers/v0.43.0/id/api/pipelines/hunyuan_video15#diffusers.HunyuanVideo15Pipeline) menggunakan guider dan tidak menerima parameter `guidance_scale` saat runtime.

Anda dapat memeriksa konfigurasi guider default menggunakan `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
```

Untuk memperbarui konfigurasi guider, Anda dapat menjalankan `pipe.guider = pipe.guider.new(...)`

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

Baca lebih lanjut tentang Guider [di sini](../../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)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L166)

**Parameter:**

transformer ([HunyuanVideo15Transformer3DModel](/docs/diffusers/v0.43.0/id/api/models/hunyuan_video15_transformer_3d#diffusers.HunyuanVideo15Transformer3DModel)) : Arsitektur Conditional Transformer (MMDiT) untuk mendenoise latens video yang telah dikodekan.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/v0.43.0/id/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : Penjadwal yang digunakan bersama `transformer` untuk menghilangkan noise pada latens video yang telah dikodekan.

vae ([AutoencoderKLHunyuanVideo15](/docs/diffusers/v0.43.0/id/api/models/autoencoder_kl_hunyuan_video15#diffusers.AutoencoderKLHunyuanVideo15)) : Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan video ke dan dari representasi laten.

text_encoder (`Qwen2.5-VL-7B-Instruct`) : [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct), khususnya varian [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).

tokenizer (`Qwen2Tokenizer`) : Tokenizer dari kelas [Qwen2Tokenizer].

text_encoder_2 (`T5EncoderModel`) : varian [T5EncoderModel](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5EncoderModel).

tokenizer_2 (`ByT5Tokenizer`) : Tokenizer dari kelas [ByT5Tokenizer]

guider ([ClassifierFreeGuidance](/docs/diffusers/v0.43.0/id/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance)) : [ClassifierFreeGuidance] untuk classifier free guidance.

Pipeline untuk generasi teks-ke-video menggunakan HunyuanVideo1.5.

Model ini mewarisi dari [DiffusionPipeline](/docs/diffusers/v0.43.0/id/api/pipelines/overview#diffusers.DiffusionPipeline). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan untuk semua pipeline (mengunduh, menyimpan, menjalankan pada perangkat tertentu, dll.).

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

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L542)

**Parameter:**

prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `prompt_embeds` sebagai gantinya.

negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya.

height (`int`, *opsional*) : Tinggi video yang dihasilkan dalam piksel.

width (`int`, *opsional*) : Lebar video yang dihasilkan dalam piksel.

num_frames (`int`, defaultnya `121`) : Jumlah frame dalam video yang dihasilkan.

num_inference_steps (`int`, defaultnya `50`) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan video dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat.

sigmas (`list[float]`, *opsional*) : Sigmas kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen `sigmas` di metode `set_timesteps` mereka. Jika tidak didefinisikan, perilaku default saat `num_inference_steps` diteruskan akan digunakan.

num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang akan dihasilkan per prompt.

generator (`torch.Generator` atau `list[torch.Generator]`, *opsional*) : Sebuah [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) untuk membuat proses generasi menjadi deterministik.

latents (`torch.Tensor`, *opsional*) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi video. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan `generator` acak yang diberikan.

prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks (pemberian bobot pada prompt). Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`.

prompt_embeds_mask (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt.

negative_prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`.

negative_prompt_embeds_mask (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt negatif.

prompt_embeds_2 (`torch.Tensor`, *opsional*) : Embedding teks yang telah dibuat sebelumnya dari pengkode teks kedua. Dapat digunakan untuk dengan mudah menyesuaikan input teks.

prompt_embeds_mask_2 (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt dari text encoder kedua.

negative_prompt_embeds_2 (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya dari pengkode teks kedua.

negative_prompt_embeds_mask_2 (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt negatif dari text encoder kedua.

output_type (`str`, *opsional*, defaultnya `"np"`) : Format output dari video yang dihasilkan. Pilih antara "np", "pt", atau "latent".

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `HunyuanVideo15PipelineOutput` alih-alih tuple biasa.

attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang jika ditentukan akan diteruskan ke `AttentionProcessor` seperti yang didefinisikan di bawah `self.processor` dalam [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

**Mengembalikan:** `~HunyuanVideo15PipelineOutput` atau `tuple`

Jika `return_dict` adalah `True`, maka `HunyuanVideo15PipelineOutput` yang dikembalikan, selain itu sebuah `tuple` yang dikembalikan di mana elemen pertama adalah daftar berisi video yang dihasilkan.

Fungsi panggilan untuk pipeline pada generasi.

Contoh:
```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)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L334)

**Parameter:**

prompt (`str` atau `list[str]`, *opsional*) : prompt yang akan dienkod

device : (`torch.device`): perangkat torch

batch_size (`int`) : ukuran batch dari prompt, defaultnya 1

num_videos_per_prompt (`int`) : jumlah gambar yang harus dihasilkan per prompt

prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang telah dibuat sebelumnya. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`.

prompt_embeds_mask (`torch.Tensor`, *opsional*) : Mask teks yang telah dibuat sebelumnya. Jika tidak disediakan, mask teks akan dibuat dari argumen input `prompt`.

prompt_embeds_2 (`torch.Tensor`, *opsional*) : Embedding teks glyph yang telah dibuat sebelumnya dari ByT5. Jika tidak disediakan, akan dibuat dari argumen input `prompt` menggunakan self.tokenizer_2 dan self.text_encoder_2.

prompt_embeds_mask_2 (`torch.Tensor`, *opsional*) : Mask teks glyph yang telah dibuat sebelumnya dari ByT5. Jika tidak disediakan, akan dibuat dari argumen input `prompt` menggunakan self.tokenizer_2 dan 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])
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5.py#L508)

**Parameter:**

latents : Tensor latens utama (B, C, F, H, W)

**Mengembalikan:** `tuple`

(cond_latents_concat, mask_concat) - keduanya adalah tensor nol untuk t2v

Siapkan latens kondisional dan mask untuk generasi 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)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L193)

**Parameter:**

transformer ([HunyuanVideo15Transformer3DModel](/docs/diffusers/v0.43.0/id/api/models/hunyuan_video15_transformer_3d#diffusers.HunyuanVideo15Transformer3DModel)) : Arsitektur Conditional Transformer (MMDiT) untuk mendenoise latens video yang telah dikodekan.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/v0.43.0/id/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : Penjadwal yang digunakan bersama `transformer` untuk menghilangkan noise pada latens video yang telah dikodekan.

vae ([AutoencoderKLHunyuanVideo15](/docs/diffusers/v0.43.0/id/api/models/autoencoder_kl_hunyuan_video15#diffusers.AutoencoderKLHunyuanVideo15)) : Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan video ke dan dari representasi laten.

text_encoder (`Qwen2.5-VL-7B-Instruct`) : [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct), khususnya varian [Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct).

tokenizer (`Qwen2Tokenizer`) : Tokenizer dari kelas [Qwen2Tokenizer].

text_encoder_2 (`T5EncoderModel`) : varian [T5EncoderModel](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5EncoderModel).

tokenizer_2 (`ByT5Tokenizer`) : Tokenizer dari kelas [ByT5Tokenizer]

guider ([ClassifierFreeGuidance](/docs/diffusers/v0.43.0/id/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance)) : [ClassifierFreeGuidance] untuk classifier free guidance.

image_encoder (`SiglipVisionModel`) : varian [SiglipVisionModel](https://huggingface.co/docs/transformers/en/model_doc/siglip#transformers.SiglipVisionModel).

feature_extractor (`SiglipImageProcessor`) : varian [SiglipImageProcessor](https://huggingface.co/docs/transformers/en/model_doc/siglip#transformers.SiglipImageProcessor).

Pipeline untuk generasi gambar-ke-video menggunakan HunyuanVideo1.5.

Model ini mewarisi dari [DiffusionPipeline](/docs/diffusers/v0.43.0/id/api/pipelines/overview#diffusers.DiffusionPipeline). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan untuk semua pipeline (mengunduh, menyimpan, menjalankan pada perangkat tertentu, dll.).

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

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L650)

**Parameter:**

image (`PIL.Image.Image`) : Gambar input untuk mengondisikan generasi video.

prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt untuk mengarahkan generasi video. Jika tidak didefinisikan, Anda harus meneruskan `prompt_embeds` sebagai gantinya.

negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi video. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya.

num_frames (`int`, defaultnya `121`) : Jumlah frame dalam video yang dihasilkan.

num_inference_steps (`int`, defaultnya `50`) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan video dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat.

sigmas (`list[float]`, *opsional*) : Sigmas kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen `sigmas` di metode `set_timesteps` mereka. Jika tidak didefinisikan, perilaku default saat `num_inference_steps` diteruskan akan digunakan.

num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang akan dihasilkan per prompt.

generator (`torch.Generator` atau `list[torch.Generator]`, *opsional*) : Sebuah [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) untuk membuat proses generasi menjadi deterministik.

latents (`torch.Tensor`, *opsional*) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi video. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan `generator` acak yang diberikan.

prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks (pemberian bobot pada prompt). Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`.

prompt_embeds_mask (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt.

negative_prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`.

negative_prompt_embeds_mask (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt negatif.

prompt_embeds_2 (`torch.Tensor`, *opsional*) : Embedding teks yang telah dibuat sebelumnya dari pengkode teks kedua. Dapat digunakan untuk dengan mudah menyesuaikan input teks.

prompt_embeds_mask_2 (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt dari text encoder kedua.

negative_prompt_embeds_2 (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya dari pengkode teks kedua.

negative_prompt_embeds_mask_2 (`torch.Tensor`, *opsional*) : Mask yang telah dibuat sebelumnya untuk embedding prompt negatif dari text encoder kedua.

output_type (`str`, *opsional*, defaultnya `"np"`) : Format output dari video yang dihasilkan. Pilih antara "np", "pt", atau "latent".

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `HunyuanVideo15PipelineOutput` alih-alih tuple biasa.

attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang jika ditentukan akan diteruskan ke `AttentionProcessor` seperti yang didefinisikan di bawah `self.processor` dalam [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

**Mengembalikan:** `~HunyuanVideo15PipelineOutput` atau `tuple`

Jika `return_dict` adalah `True`, maka `HunyuanVideo15PipelineOutput` yang dikembalikan, selain itu sebuah `tuple` yang dikembalikan di mana elemen pertama adalah daftar berisi video yang dihasilkan.

Fungsi panggilan untuk pipeline pada generasi.

Contoh:
```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)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L422)

**Parameter:**

prompt (`str` atau `list[str]`, *opsional*) : prompt yang akan dienkod

device : (`torch.device`): perangkat torch

batch_size (`int`) : ukuran batch dari prompt, defaultnya 1

num_videos_per_prompt (`int`) : jumlah gambar yang harus dihasilkan per prompt

prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang telah dibuat sebelumnya. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`.

prompt_embeds_mask (`torch.Tensor`, *opsional*) : Mask teks yang telah dibuat sebelumnya. Jika tidak disediakan, mask teks akan dibuat dari argumen input `prompt`.

prompt_embeds_2 (`torch.Tensor`, *opsional*) : Embedding teks glyph yang telah dibuat sebelumnya dari ByT5. Jika tidak disediakan, akan dibuat dari argumen input `prompt` menggunakan self.tokenizer_2 dan self.text_encoder_2.

prompt_embeds_mask_2 (`torch.Tensor`, *opsional*) : Mask teks glyph yang telah dibuat sebelumnya dari ByT5. Jika tidak disediakan, akan dibuat dari argumen input `prompt` menggunakan self.tokenizer_2 dan 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)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_hunyuan_video1_5_image2video.py#L594)

**Parameter:**

latents : Tensor latens utama (B, C, F, H, W)

**Mengembalikan:** `tuple`

(cond_latents_concat, mask_concat) - keduanya adalah tensor nol untuk t2v

Siapkan latens kondisional dan mask untuk generasi 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)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/hunyuan_video1_5/pipeline_output.py#L9)

**Parameter:**

frames (`torch.Tensor`, `np.ndarray`, atau list[list[PIL.Image.Image]]) : Daftar output video - Dapat berupa daftar bersarang dengan panjang `batch_size,` di mana setiap sub-daftar berisi urutan gambar PIL yang telah didenoise dengan panjang `num_frames.` Dapat juga berupa array NumPy atau tensor Torch dengan bentuk `(batch_size, num_frames, channels, height, width)`.

Kelas output untuk pipeline HunyuanVideo1.5.

