Buckets:
Apache Lisansı, 2.0 Sürümü ("Lisans") altında lisanslanmıştır;
bu dosyayı, Lisansa uygun olarak kullanabilirsiniz.
Lisansın bir kopyasını şu adresten edinebilirsiniz
http://www.apache.org/licenses/LICENSE-2.0
Uygulanabilir yasa gerektirmedikçe veya yazılı olarak anlaşılmadıkça, yazılım
Lisans kapsamında dağıtılan, "OLDUĞU GİBİ" esasına göre dağıtılır,
HİÇBİR TÜR AÇIK VEYA ZIMMİ GARANTİ VEYA ŞART İÇERMEZ.
İzinleri ve
lisans kapsamındaki kısıtlamalar. -->
Framepack
Lvmin Zhang ve Maneesh Agrawala tarafından Video Üretimi İçin Bir Sonraki Kare Tahmin Modellerinde Giriş Kare Bağlamının Paketlenmesi.
Video üretimi için bir sonraki kareyi (veya bir sonraki kare bölümünü) tahmin eden modelleri eğitmek amacıyla FramePack adlı bir sinir ağı yapısı sunuyoruz. FramePack, girdi karelerini sıkıştırarak transformer bağlam uzunluğunun video uzunluğundan bağımsız olarak sabit bir sayı olmasını sağlar. Bu sayede, hesaplama darboğazı görüntü difüzyonuna benzer olan video difüzyonu ile büyük miktarda kareyi işleyebiliyoruz. Bu durum, eğitim video parti boyutlarını da önemli ölçüde artırıyor (parti boyutları, görüntü difüzyonu eğitimindeki boyutlarla karşılaştırılabilir hale geliyor). Ayrıca, maruz kalma yanlılığını (iterasyonlar boyunca hata birikimi) önlemek için erken belirlenmiş uç noktalarla ters zaman sırasına göre kare üreten bir anti-drifting örneklem yöntemi öneriyoruz. Son olarak, mevcut video difüzyon modellerinin FramePack ile ince ayarlanabileceğini ve bir sonraki kare tahmininin daha az aşırı akış kayması adımlarına sahip, daha dengeli difüzyon zamanlayıcılarını desteklediği için görsel kalitelerinin iyileştirilebileceğini gösteriyoruz.
Scheduler'lar kılavuzunu inceleyerek scheduler hızı ve kalitesi arasındaki ödünleşimi nasıl keşfedebileceğinizi öğrenin ve aynı bileşenleri birden fazla pipeline'a nasıl verimli bir şekilde yükleyebileceğinizi öğrenmek için pipeline'lar arasında bileşenleri yeniden kullanma bölümüne göz atın.
Mevcut modeller
| Model adı | Açıklama |
|---|
lllyasviel/FramePackI2V_HY| Makalede anlatıldığı üzere "inverted anti-drifting" stratejisiyle eğitildi. Pipeline'ı çalıştırırken çıkarım içinsampling_type="inverted_anti_drifting"ayarının yapılması gerekir. |lllyasviel/FramePack_F1_I2V_HY_20250503| Yeni bir anti-drifting stratejisiyle eğitilmiştir ancak çıkarım, makalede anlatıldığı üzere "vanilla" stratejisiyle gerçekleştirilir. Çıkarım için pipeline'ı çalıştırırkensampling_type="vanilla"ayarının yapılması gerekir. |
Kullanım
Temel kullanım örnekleri için pipeline dokümantasyonuna başvurun. Aşağıdaki bölüm, offloading, farklı örneklem yöntemleri, kuantizasyon ve daha fazlasına ilişkin örnekler içerir.
İlk ve son kareden video
Aşağıdaki örnek, ters çevrilmiş anti-drifiting örneklem modeli kullanılarak Framepack'ın başlangıç ve bitiş görüntü kontrolleriyle nasıl kullanılacağını gösterir.
import torch
from diffusers import HunyuanVideoFramepackPipeline, HunyuanVideoFramepackTransformer3DModel
from diffusers.utils import export_to_video, load_image
from transformers import SiglipImageProcessor, SiglipVisionModel
transformer = HunyuanVideoFramepackTransformer3DModel.from_pretrained(
"lllyasviel/FramePackI2V_HY", dtype=torch.bfloat16
)
feature_extractor = SiglipImageProcessor.from_pretrained(
"lllyasviel/flux_redux_bfl", subfolder="feature_extractor"
)
image_encoder = SiglipVisionModel.from_pretrained(
"lllyasviel/flux_redux_bfl", subfolder="image_encoder", dtype=torch.float16
)
pipe = HunyuanVideoFramepackPipeline.from_pretrained(
"hunyuanvideo-community/HunyuanVideo",
transformer=transformer,
feature_extractor=feature_extractor,
image_encoder=image_encoder,
dtype=torch.float16,
)
# Enable memory optimizations
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()
prompt = "CG animation style, a small blue bird takes off from the ground, flapping its wings. The bird's feathers are delicate, with a unique pattern on its chest. The background shows a blue sky with white clouds under bright sunshine. The camera follows the bird upward, capturing its flight and the vastness of the sky from a close-up, low-angle perspective."
first_image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_first_frame.png"
)
last_image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_last_frame.png"
)
output = pipe(
image=first_image,
last_image=last_image,
prompt=prompt,
height=512,
width=512,
num_frames=91,
num_inference_steps=30,
guidance_scale=9.0,
generator=torch.Generator().manual_seed(0),
sampling_type="inverted_anti_drifting",
).frames[0]
export_to_video(output, "output.mp4", fps=30)
Vanilla örneklem
Aşağıdaki örnek, vanilla sampling ile eğitilmiş ancak anti-drifting için yeni bir düzenleme yaklaşımı kullanılan F1 modeliyle Framepack'ın nasıl kullanılacağını gösterir.
import torch
from diffusers import HunyuanVideoFramepackPipeline, HunyuanVideoFramepackTransformer3DModel
from diffusers.utils import export_to_video, load_image
from transformers import SiglipImageProcessor, SiglipVisionModel
transformer = HunyuanVideoFramepackTransformer3DModel.from_pretrained(
"lllyasviel/FramePack_F1_I2V_HY_20250503", dtype=torch.bfloat16
)
feature_extractor = SiglipImageProcessor.from_pretrained(
"lllyasviel/flux_redux_bfl", subfolder="feature_extractor"
)
image_encoder = SiglipVisionModel.from_pretrained(
"lllyasviel/flux_redux_bfl", subfolder="image_encoder", dtype=torch.float16
)
pipe = HunyuanVideoFramepackPipeline.from_pretrained(
"hunyuanvideo-community/HunyuanVideo",
transformer=transformer,
feature_extractor=feature_extractor,
image_encoder=image_encoder,
dtype=torch.float16,
)
# Enable memory optimizations
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()
image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/penguin.png"
)
output = pipe(
image=image,
prompt="A penguin dancing in the snow",
height=832,
width=480,
num_frames=91,
num_inference_steps=30,
guidance_scale=9.0,
generator=torch.Generator().manual_seed(0),
sampling_type="vanilla",
).frames[0]
export_to_video(output, "output.mp4", fps=30)
Grup dışa aktarma
Grup dışa aktarma (apply_group_offloading()), herhangi bir modelin iç bileşenlerini CPU'ya dışa aktarmak için agresif bellek optimizasyonları sağlar ve üretim süresine ek bir maliyet getirmeden çalışabilir. Kullanılabilir VRAM miktarınız çok düşükse, bu yaklaşım mevcut CPU RAM miktarına bağlı olarak size uygun olabilir.
import torch
from diffusers import HunyuanVideoFramepackPipeline, HunyuanVideoFramepackTransformer3DModel
from diffusers.hooks import apply_group_offloading
from diffusers.utils import export_to_video, load_image
from transformers import SiglipImageProcessor, SiglipVisionModel
transformer = HunyuanVideoFramepackTransformer3DModel.from_pretrained(
"lllyasviel/FramePack_F1_I2V_HY_20250503", dtype=torch.bfloat16
)
feature_extractor = SiglipImageProcessor.from_pretrained(
"lllyasviel/flux_redux_bfl", subfolder="feature_extractor"
)
image_encoder = SiglipVisionModel.from_pretrained(
"lllyasviel/flux_redux_bfl", subfolder="image_encoder", dtype=torch.float16
)
pipe = HunyuanVideoFramepackPipeline.from_pretrained(
"hunyuanvideo-community/HunyuanVideo",
transformer=transformer,
feature_extractor=feature_extractor,
image_encoder=image_encoder,
dtype=torch.float16,
)
# Enable group offloading
onload_device = torch.device("cuda")
offload_device = torch.device("cpu")
list(map(
lambda x: apply_group_offloading(x, onload_device, offload_device, offload_type="leaf_level", use_stream=True, low_cpu_mem_usage=True),
[pipe.text_encoder, pipe.text_encoder_2, pipe.transformer]
))
pipe.image_encoder.to(onload_device)
pipe.vae.to(onload_device)
pipe.vae.enable_tiling()
image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/penguin.png"
)
output = pipe(
image=image,
prompt="A penguin dancing in the snow",
height=832,
width=480,
num_frames=91,
num_inference_steps=30,
guidance_scale=9.0,
generator=torch.Generator().manual_seed(0),
sampling_type="vanilla",
).frames[0]
print(f"Max memory: {torch.cuda.max_memory_allocated() / 1024**3:.3f} GB")
export_to_video(output, "output.mp4", fps=30)
HunyuanVideoFramepackPipeline[[diffusers.HunyuanVideoFramepackPipeline]]
diffusers.HunyuanVideoFramepackPipeline[[diffusers.HunyuanVideoFramepackPipeline]]
diffusers.HunyuanVideoFramepackPipeline(text_encoder: LlamaModel, tokenizer: LlamaTokenizer, transformer: HunyuanVideoFramepackTransformer3DModel, vae: AutoencoderKLHunyuanVideo, scheduler: FlowMatchEulerDiscreteScheduler, text_encoder_2: CLIPTextModel, tokenizer_2: CLIPTokenizer, image_encoder: SiglipVisionModel, feature_extractor: SiglipImageProcessorPil)
Parametreler:
text_encoder (LlamaModel) : Llava Llama3-8B.
tokenizer (LlamaTokenizer) : Llava Llama3-8B'den gelen tokenizer.
transformer (HunyuanVideoTransformer3DModel) : Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan koşullu Transformer.
scheduler (FlowMatchEulerDiscreteScheduler) : Kodlanmış görüntü latentlerini gürültüden arındırmak için transformer ile birlikte kullanılacak bir zamanlayıcı.
vae (AutoencoderKLHunyuanVideo) : Videoları latent temsillere kodlamak ve bu temsillerden çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli.
text_encoder_2 (CLIPTextModel) : CLIP, özellikle clip-vit-large-patch14 varyantı.
tokenizer_2 (CLIPTokenizer) : CLIPTokenizer sınıfının tokenizer'ı.
HunyuanVideo kullanılarak metinden videoya üretim için Pipeline.
Bu model DiffusionPipeline sınıfından devralınmıştır. Tüm pipeline'lar için uygulanan genel yöntemlerin (indirme, kaydetme, belirli bir cihazda çalıştırma vb.) belgelerini üst sınıfın dokümantasyonunda bulabilirsiniz.
call[[diffusers.HunyuanVideoFramepackPipeline.call]]
__call__(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], last_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, prompt: str | list[str] = None, prompt_2: str | list[str] = None, negative_prompt: str | list[str] = None, negative_prompt_2: str | list[str] = None, height: int = 720, width: int = 1280, num_frames: int = 129, latent_window_size: int = 9, num_inference_steps: int = 50, sigmas: list = None, true_cfg_scale: float = 1.0, guidance_scale: float = 6.0, num_videos_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, image_latents: typing.Optional[torch.Tensor] = None, last_image_latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_pooled_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents'], prompt_template: dict = {'template': '<|start_header_id|>system<|end_header_id|>\n\nDescribe the video by detailing the following aspects: 1. The main content and theme of the video.2. The color, shape, size, texture, quantity, text, and spatial relationships of the objects.3. Actions, events, behaviors temporal relationships, physical movement changes of the objects.4. background environment, light, style and atmosphere.5. camera angles, movements, and transitions used in the video:<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n{}<|eot_id|>', 'crop_start': 95}, max_sequence_length: int = 256, sampling_type: FramepackSamplingType = <FramepackSamplingType.INVERTED_ANTI_DRIFTING: 'inverted_anti_drifting'>)
Parametreler:
image (PIL.Image.Image veya np.ndarray veya torch.Tensor) : Video üretimi için başlangıç noktası olarak kullanılacak görüntü.
last_image (PIL.Image.Image veya np.ndarray veya torch.Tensor, isteğe bağlı) : Video üretimi için bitiş noktası olarak kullanılacak isteğe bağlı son görüntü. Bu, iki görüntü arasında geçişler oluşturmak için kullanışlıdır.
prompt (str veya list[str], isteğe bağlı) : Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine prompt_embeds geçirilmelidir.
prompt_2 (str veya list[str], isteğe bağlı) : tokenizer_2 ve text_encoder_2'ye gönderilecek istem veya istemler. Tanımlanmamışsa, bunun yerine prompt kullanılır.
negative_prompt (str veya list[str], isteğe bağlı) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmamışsa bunun yerine negative_prompt_embeds parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani true_cfg_scale, 1'den büyük olmadığında) yok sayılır.
negative_prompt_2 (str veya list[str], isteğe bağlı) : Görsel üretimi yönlendirmek için tokenizer_2 ve text_encoder_2'ye gönderilmeyecek istem veya istemler. Tanımlanmamışsa, negative_prompt tüm metin kodlayıcılarda kullanılır.
height (int, varsayılan 720) : Üretilen görüntünün piksel cinsinden yüksekliği.
width (int, varsayılan 1280) : Üretilen görüntünün piksel cinsinden genişliği.
num_frames (int, varsayılan 129) : Üretilen videodaki kare sayısı.
latent_window_size (int, varsayılan 9) : Her Framepack örneklem penceresinde üretilen gizli kare sayısı.
num_inference_steps (int, varsayılan 50) : Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı, genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar.
sigmas (list[float], isteğe bağlı) : set_timesteps metodunda sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılacaktır.
true_cfg_scale (float, opsiyonel, varsayılan 1.0) : > 1.0 olduğunda ve bir negative_prompt sağlandığında, gerçek sınıflandırıcı-ücretsiz yönlendirmeyi (true classifier-free guidance) etkinleştirir.
guidance_scale (float, varsayılan 6.0) : Classifier-Free Diffusion Guidance'de tanımlandığı gibi yönlendirme ölçeği. guidance_scale, Imagen Paper'deki 2. denklemindeki w olarak tanımlanır. Yönlendirme ölçeği, guidance_scale > 1 olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, genellikle daha düşük görüntü kalitesi pahasına, prompt ile yakından ilişkili görüntülerin üretilmesini teşvik eder. Not: Kullanılabilir tek HunyuanVideo modeli CFG-distilled'dır; bu, koşulsuz ve koşullu latentler arasında geleneksel yönlendirmenin uygulanmadığı anlamına gelir.
num_videos_per_prompt (int, isteğe bağlı, varsayılan 1) : Her istem için üretilecek görsel sayısı.
generator (torch.Generator veya list[torch.Generator], isteğe bağlı) : Üretimi deterministik hale getirmek için bir torch.Generator.
image_latents (torch.Tensor, isteğe bağlı) : Önceden kodlanmış görüntü latentleri. Sağlanmazsa, görüntü VAE kullanılarak kodlanır.
last_image_latents (torch.Tensor, isteğe bağlı) : Ön kodlanmış son görüntü latentleri. Sağlanmazsa, son görüntü VAE kullanılarak kodlanır.
prompt_embeds (torch.Tensor, isteğe bağlı) : Önceden oluşturulmuş metin gömme değerleri. Metin girdilerini (istek ağırlıklandırması) kolayca ayarlamak için kullanılabilir. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından üretilir.
pooled_prompt_embeds (torch.FloatTensor, isteğe bağlı) : Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleri prompt girdi argümanından oluşturulur.
negative_prompt_embeds (torch.FloatTensor, isteğe bağlı) : Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, negative_prompt girdi argümanından oluşturulur.
negative_pooled_prompt_embeds (torch.FloatTensor, isteğe bağlı) : Ön oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds, negative_prompt girdi argümanından oluşturulacaktır.
prompt_attention_mask (torch.Tensor, isteğe bağlı) : prompt_embeds için dikkat maskesi. prompt_embeds doğrudan geçirildiğinde zorunludur.
negative_prompt_attention_mask (torch.Tensor, isteğe bağlı) : negative_prompt_embeds için dikkat maskesi. negative_prompt_embeds doğrudan geçirildiğinde zorunludur.
output_type (str, isteğe bağlı, varsayılan "pil") : Üretilen görüntünün çıktı biçimi. PIL.Image veya np.array arasında seçim yapın.
return_dict (bool, isteğe bağlı, varsayılan True) : Düz bir tuple yerine HunyuanVideoFramepackPipelineOutput döndürülüp döndürülmemesi.
attention_kwargs (dict, isteğe bağlı) : Belirtilirse, diffusers.models.attention_processor içinde self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
prompt_template (dict, isteğe bağlı) : Kodlamadan önce istemi biçimlendirmek için kullanılan şablon. Varsayılan olarak modelin varsayılan şablonu kullanılır.
max_sequence_length (int, isteğe bağlı, varsayılan 256) : İstek kodlayıcısı için kullanılacak maksimum dizi uzunluğu.
sampling_type (FramepackSamplingType, isteğe bağlı) : Latent pencereler üzerinde iterasyon yaparken kullanılacak Framepack örneklemleme stratejisi.
callback_on_step_end (Callable, PipelineCallback, MultiPipelineCallbacks, opsiyonel) : Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan, PipelineCallback veya MultiPipelineCallbacks alt sınıfı olan bir fonksiyon. Aşağıdaki argümanlarla çağrılır: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs, callback_on_step_end_tensor_inputs tarafından belirtildiği üzere tüm tensörlerin listesini içerecektir.
callback_on_step_end_tensor_inputs (list, isteğe bağlı) : callback_on_step_end işlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler, callback_kwargs argümanı olarak geçirilir. Yalnızca pipeline sınıfınızın ._callback_tensor_inputs özniteliğinde listelenen değişkenleri dahil edebilirsiniz.
Dönüş: ~HunyuanVideoFramepackPipelineOutput veya tuple
return_dict True ise HunyuanVideoFramepackPipelineOutput döndürülür, aksi takdirde bir tuple döndürülür; bu yapının ilk öğesi üretilen görsellerin listesini, ikinci öğesi ise ilgili üretilen görselin "not-safe-for-work" (nsfw) içerip içermediğini gösteren bool değerlerinin listesini içerir.
Üretim için pipeline'ın çağrı fonksiyonu.
Örnekler:
Görüntüden Videoya
>>> import torch
>>> from diffusers import HunyuanVideoFramepackPipeline, HunyuanVideoFramepackTransformer3DModel
>>> from diffusers.utils import export_to_video, load_image
>>> from transformers import SiglipImageProcessor, SiglipVisionModel
>>> transformer = HunyuanVideoFramepackTransformer3DModel.from_pretrained(
... "lllyasviel/FramePackI2V_HY", torch_dtype=torch.bfloat16
... )
>>> feature_extractor = SiglipImageProcessor.from_pretrained(
... "lllyasviel/flux_redux_bfl", subfolder="feature_extractor"
... )
>>> image_encoder = SiglipVisionModel.from_pretrained(
... "lllyasviel/flux_redux_bfl", subfolder="image_encoder", torch_dtype=torch.float16
... )
>>> pipe = HunyuanVideoFramepackPipeline.from_pretrained(
... "hunyuanvideo-community/HunyuanVideo",
... transformer=transformer,
... feature_extractor=feature_extractor,
... image_encoder=image_encoder,
... torch_dtype=torch.float16,
... )
>>> pipe.vae.enable_tiling()
>>> pipe.to("cuda")
>>> image = load_image(
... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/penguin.png"
... )
>>> output = pipe(
... image=image,
... prompt="A penguin dancing in the snow",
... height=832,
... width=480,
... num_frames=91,
... num_inference_steps=30,
... guidance_scale=9.0,
... generator=torch.Generator().manual_seed(0),
... sampling_type="inverted_anti_drifting",
... ).frames[0]
>>> export_to_video(output, "output.mp4", fps=30)
İlk ve Son Görüntüden Video
>>> import torch
>>> from diffusers import HunyuanVideoFramepackPipeline, HunyuanVideoFramepackTransformer3DModel
>>> from diffusers.utils import export_to_video, load_image
>>> from transformers import SiglipImageProcessor, SiglipVisionModel
>>> transformer = HunyuanVideoFramepackTransformer3DModel.from_pretrained(
... "lllyasviel/FramePackI2V_HY", torch_dtype=torch.bfloat16
... )
>>> feature_extractor = SiglipImageProcessor.from_pretrained(
... "lllyasviel/flux_redux_bfl", subfolder="feature_extractor"
... )
>>> image_encoder = SiglipVisionModel.from_pretrained(
... "lllyasviel/flux_redux_bfl", subfolder="image_encoder", torch_dtype=torch.float16
... )
>>> pipe = HunyuanVideoFramepackPipeline.from_pretrained(
... "hunyuanvideo-community/HunyuanVideo",
... transformer=transformer,
... feature_extractor=feature_extractor,
... image_encoder=image_encoder,
... torch_dtype=torch.float16,
... )
>>> pipe.to("cuda")
>>> prompt = "CG animation style, a small blue bird takes off from the ground, flapping its wings. The bird's feathers are delicate, with a unique pattern on its chest. The background shows a blue sky with white clouds under bright sunshine. The camera follows the bird upward, capturing its flight and the vastness of the sky from a close-up, low-angle perspective."
>>> first_image = load_image(
... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_first_frame.png"
... )
>>> last_image = load_image(
... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/flf2v_input_last_frame.png"
... )
>>> output = pipe(
... image=first_image,
... last_image=last_image,
... prompt=prompt,
... height=512,
... width=512,
... num_frames=91,
... num_inference_steps=30,
... guidance_scale=9.0,
... generator=torch.Generator().manual_seed(0),
... sampling_type="inverted_anti_drifting",
... ).frames[0]
>>> export_to_video(output, "output.mp4", fps=30)
HunyuanVideoPipelineOutput[[diffusers.pipelines.hunyuan_video.pipeline_output.HunyuanVideoPipelineOutput]]
diffusers.pipelines.hunyuan_video.pipeline_output.HunyuanVideoPipelineOutput[[diffusers.pipelines.hunyuan_video.pipeline_output.HunyuanVideoPipelineOutput]]
diffusers.pipelines.hunyuan_video.pipeline_output.HunyuanVideoPipelineOutput(frames: Tensor)
Parametreler:
frames (torch.Tensor, np.ndarray veya list[list[PIL.Image.Image]]) : video çıktıları listesi - batch_size, uzunluğunda iç içe geçmiş bir liste olabilir; her alt liste, num_frames. uzunluğunda gürültüsü azaltılmış PIL görüntü dizileri içerir. Ayrıca (batch_size, num_frames, channels, height, width) biçiminde bir NumPy dizi veya Torch tensörü de olabilir.
HunyuanVideo pipeline'leri için çıktı sınıfı.
Xet Storage Details
- Size:
- 26.8 kB
- Xet hash:
- 69eeb87e5683faf52c1920a10064df81c09e6a588b72751eecc75d105e93fe2f
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.