#
# Apache License, Version 2.0("라이선스")에 따라 라이선스가 부여됩니다.
# 이 파일은 라이선스에 따라만 사용할 수 있습니다.
# 라이선스 사본은 다음에서 가져올 수 있습니다
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# 적용 가능한 법률에 의해 요구되거나 서면으로 합의되지 않는 한, 소프트웨어
# 라이선스에 따라 배포되는 본 소프트웨어는 "있는 그대로"
# 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건도 없이 제공됩니다.
# 권한을 관리하는 특정 언어에 대한 라이선스를 참조하세요
# 라이선스 하의 제한 사항. -->

# HunyuanVideo-1.5

HunyuanVideo-1.5는 83억 개의 파라미터만으로 최첨단 수준의 시각적 품질과 모션 일관성을 달성하는 경량화되었으면서도 강력한 비디오 생성 모델로, 소비자 등급 GPU에서 효율적인 추론을 가능하게 합니다. 이러한 성과는 정밀한 데이터 큐레이션, 선택적 및 슬라이딩 타일 어텐션(SSTA)을 갖춘 고급 DiT 아키텍처, 글리프 인식 텍스트 인코딩을 통한 향상된 이중 언어 이해, 점진적 사전 학습 및 사후 학습, 그리고 효율적인 비디오 초해상도 네트워크 등 여러 핵심 구성 요소에 기반합니다. 이러한 설계들을 활용하여, 다양한 길이와 해상도에서 고품질 텍스트-비디오 및 이미지-비디오 생성이 가능한 통합 프레임워크를 개발했습니다. 광범위한 실험을 통해, 이 컴팩트하고 숙련된 모델이 오픈소스 모델 중 새로운 최첨단 수준을 설정했음을 입증했습니다.

원본 HunyuanVideo 체크포인트는 모두 [Tencent](https://huggingface.co/tencent) 조직에서 찾을 수 있습니다.

> [!TIP]
> HunyuanVideo 모델에 대한 추가적인 비디오 생성 작업 예시를 보려면 오른쪽 사이드바의 해당 모델을 클릭하세요.
>
> 아래 예시에서는 가중치가 Diffusers와 호환되는 레이아웃으로 저장되어 있으므로 [hunyuanvideo-community](https://huggingface.co/hunyuanvideo-community)의 체크포인트를 사용합니다.

…

다양한 메모리 절약 기법에 대한 자세한 내용은 [메모리 사용량 줄이기](../../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)
```

## The input is a single word "Notes".

참고

- HunyuanVideo1.5는 가변 길이 시퀀스에 대해 어텐션 마스크를 사용합니다. 최적의 성능을 위해 패딩을 효율적으로 처리하는 어텐션 백엔드를 사용하는 것을 권장합니다.

    - **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/ko/api/pipelines/hunyuan_video15#diffusers.HunyuanVideo15Pipeline)은 guider를 사용하며 런타임에 `guidance_scale` 파라미터를 받지 않습니다.

`pipe.guider`를 사용하여 기본 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/ko/api/models/hunyuan_video15_transformer_3d#diffusers.HunyuanVideo15Transformer3DModel)) : 인코딩된 비디오 잠재 변수를 디노이즈하기 위한 조건부 Transformer (MMDiT) 아키텍처입니다.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : `transformer`와 함께 사용하여 인코딩된 비디오 잠재를 디노이즈하는 데 사용되는 스케줄러입니다.

vae ([AutoencoderKLHunyuanVideo15](/docs/diffusers/main/ko/api/models/autoencoder_kl_hunyuan_video15#diffusers.AutoencoderKLHunyuanVideo15)) : 비디오를 잠재 표현으로 인코딩하고 디코딩하는 Variational Auto-Encoder (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/ko/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance)) : [ClassifierFreeGuidance]classifier free guidance를 위한 설정.

HunyuanVideo1.5를 사용한 텍스트-비디오 생성을 위한 Pipeline

이 모델은 [DiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline)에서 상속됩니다. 모든 파이프라인에 대해 구현된 일반적 메서드(다운로드, 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

#### __호출__[[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 = 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]`, *선택 사항*) : `set_timesteps` 메서드에 `sigmas` 인수를 지원하는 스케줄러의 노이즈 제거 과정에 사용할 커스텀 시그마입니다. 정의되지 않은 경우, `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`, *선택 사항*) : 가우시안 분포에서 샘플링된 사전 생성된 노이즈된 latents로, 비디오 생성의 입력으로 사용됩니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 `generator`를 사용하여 샘플링하여 latents 텐서를 생성합니다.

prompt_embeds (`torch.Tensor`, *선택 사항*) : 미리 생성된 텍스트 임베딩입니다. 텍스트 입력(프롬프트 가중치)을 쉽게 조정하는 데 사용할 수 있습니다. 제공되지 않으면 `prompt` 입력 인자에서 텍스트 임베딩이 생성됩니다.

prompt_embeds_mask (`torch.Tensor`, *선택 사항*) : 프롬프트 임베딩용 사전 생성된 마스크.

negative_prompt_embeds (`torch.Tensor`, *선택 사항*) : 미리 생성된 부정 텍스트 임베딩입니다. 텍스트 입력을 쉽게 조정하는 데 사용할 수 있으며, *예를 들어* 프롬프트 가중치 설정에 활용할 수 있습니다. 제공되지 않으면 `negative_prompt` 입력 인수에서 negative_prompt_embeds가 생성됩니다.

negative_prompt_embeds_mask (`torch.Tensor`, *선택 사항*) : negative prompt 임베딩을 위한 사전 생성된 마스크입니다.

prompt_embeds_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더에서 생성된 사전 생성된 텍스트 임베딩입니다. 텍스트 입력을 쉽게 조정하는 데 사용할 수 있습니다.

prompt_embeds_mask_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더의 프롬프트 임베딩에 사용할 사전 생성된 마스크입니다.

negative_prompt_embeds_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더에서 생성된 사전 생성된 부정 텍스트 임베딩입니다.

negative_prompt_embeds_mask_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더의 negative prompt 임베딩을 위한 사전 생성된 마스크입니다.

output_type (`str`, *선택 사항*, 기본값 `"np"`) : 생성된 비디오의 출력 형식입니다. "np", "pt", "latent" 중 하나를 선택합니다.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 일반 튜플 대신 `HunyuanVideo15PipelineOutput`을 반환할지 여부.

attention_kwargs (`dict`, *선택 사항*) : 지정된 경우 [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py)의 `self.processor` 아래에서 정의된 `AttentionProcessor`로 전달되는 kwargs 사전입니다.

**반환값:** `~HunyuanVideo15PipelineOutput` 또는 `tuple`

`return_dict`가 `True`인 경우 `HunyuanVideo15PipelineOutput`가 반환되고, 그렇지 않으면 첫 번째 요소가 생성된 비디오 목록인 `tuple`이 반환됩니다.

생성을 위한 pipeline의 호출 함수.

예:
```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 : 주요 latents 텐서 (B, C, F, H, W)

**반환값:** `tuple`

(cond_latents_concat, mask_concat) - t2v의 경우 둘 다 zero tensor입니다

t2v 생성을 위한 조건부 latents와 mask를 준비합니다.

## 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/ko/api/models/hunyuan_video15_transformer_3d#diffusers.HunyuanVideo15Transformer3DModel)) : 인코딩된 비디오 잠재 변수를 디노이즈하기 위한 조건부 Transformer (MMDiT) 아키텍처입니다.

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : `transformer`와 함께 사용하여 인코딩된 비디오 잠재를 디노이즈하는 데 사용되는 스케줄러입니다.

vae ([AutoencoderKLHunyuanVideo15](/docs/diffusers/main/ko/api/models/autoencoder_kl_hunyuan_video15#diffusers.AutoencoderKLHunyuanVideo15)) : 비디오를 잠재 표현으로 인코딩하고 디코딩하는 Variational Auto-Encoder (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/ko/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) 변형.

HunyuanVideo1.5를 사용한 이미지-비디오 생성을 위한 Pipeline

이 모델은 [DiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline)에서 상속됩니다. 모든 파이프라인에 대해 구현된 일반적 메서드(다운로드, 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.

#### __호출__[[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 = 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]`, *선택 사항*) : `set_timesteps` 메서드에 `sigmas` 인수를 지원하는 스케줄러의 노이즈 제거 과정에 사용할 커스텀 시그마입니다. 정의되지 않은 경우, `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`, *선택 사항*) : 가우시안 분포에서 샘플링된 사전 생성된 노이즈된 latents로, 비디오 생성의 입력으로 사용됩니다. 동일한 생성을 다른 프롬프트로 조정하는 데 사용할 수 있습니다. 제공되지 않으면, 제공된 랜덤 `generator`를 사용하여 샘플링하여 latents 텐서를 생성합니다.

prompt_embeds (`torch.Tensor`, *선택 사항*) : 미리 생성된 텍스트 임베딩입니다. 텍스트 입력(프롬프트 가중치)을 쉽게 조정하는 데 사용할 수 있습니다. 제공되지 않으면 `prompt` 입력 인자에서 텍스트 임베딩이 생성됩니다.

prompt_embeds_mask (`torch.Tensor`, *선택 사항*) : 프롬프트 임베딩용 사전 생성된 마스크.

negative_prompt_embeds (`torch.Tensor`, *선택 사항*) : 미리 생성된 부정 텍스트 임베딩입니다. 텍스트 입력을 쉽게 조정하는 데 사용할 수 있으며, *예를 들어* 프롬프트 가중치 설정에 활용할 수 있습니다. 제공되지 않으면 `negative_prompt` 입력 인수에서 negative_prompt_embeds가 생성됩니다.

negative_prompt_embeds_mask (`torch.Tensor`, *선택 사항*) : negative prompt 임베딩을 위한 사전 생성된 마스크입니다.

prompt_embeds_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더에서 생성된 사전 생성된 텍스트 임베딩입니다. 텍스트 입력을 쉽게 조정하는 데 사용할 수 있습니다.

prompt_embeds_mask_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더의 프롬프트 임베딩에 사용할 사전 생성된 마스크입니다.

negative_prompt_embeds_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더에서 생성된 사전 생성된 부정 텍스트 임베딩입니다.

negative_prompt_embeds_mask_2 (`torch.Tensor`, *선택 사항*) : 두 번째 텍스트 인코더의 negative prompt 임베딩을 위한 사전 생성된 마스크입니다.

output_type (`str`, *선택 사항*, 기본값 `"np"`) : 생성된 비디오의 출력 형식입니다. "np", "pt", "latent" 중 하나를 선택합니다.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 일반 튜플 대신 `HunyuanVideo15PipelineOutput`을 반환할지 여부.

attention_kwargs (`dict`, *선택 사항*) : 지정된 경우 [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py)의 `self.processor` 아래에서 정의된 `AttentionProcessor`로 전달되는 kwargs 사전입니다.

**반환값:** `~HunyuanVideo15PipelineOutput` 또는 `tuple`

`return_dict`가 `True`인 경우 `HunyuanVideo15PipelineOutput`가 반환되고, 그렇지 않으면 첫 번째 요소가 생성된 비디오 목록인 `tuple`이 반환됩니다.

생성을 위한 pipeline의 호출 함수.

예:
```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 : 주요 latents 텐서 (B, C, F, H, W)

**반환값:** `tuple`

(cond_latents_concat, mask_concat) - t2v의 경우 둘 다 zero tensor입니다

t2v 생성을 위한 조건부 latents와 mask를 준비합니다.

## 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,` 길이의 중첩 목록일 수 있으며, 각 하위 목록에는 `num_frames.` 길이의 노이즈 제거된 PIL 이미지 시퀀스가 포함됩니다. 또한 `(batch_size, num_frames, channels, height, width)` 형상의 NumPy 배열 또는 Torch 텐서일 수도 있습니다.

HunyuanVideo1.5 파이프라인의 출력 클래스입니다.

