Diffusers documentation

Pika H3 Flex

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Pika H3 Flex

LoRA

Pika H3 Flex, MiniMax-H3'ün altı adımlı bir video ve ses üreticisine dönüştürülmesi için Pika tarafından yapılan eğitim sonrası (post-training) işlemidir. MiniMax-H3'ün sıkıştırılmış dizisini (packed sequence), Qwen3-VL koşullandırıcısını (conditioner) ve iki VAE'sini korur; iki şeyi değiştirir: örnekleyici (sampler), Euler güncellemesi yerine her adımda temiz tahmini yerinde yeniden gürültüleyen (re-noise) sabit bir altı adımlık zaman çizelgesi ve ağırlıklar, iki MiniMax-H3 dönüştürücü (transformer) bölümü üzerinde bir çift rank-128 LoRA adaptörü. Video ve onun senkronize stereo ses bandı, aynı altı ileri geçişten (forward pass) çıkar.

Sürüm, adaptörlerdir: FL2VA adaptörü (fl2va/adapter.safetensors), metin ve uç kare koşullandırması için transformer/ bölümünü sürerken, Ref2VA adaptörü (ref2va/adapter.safetensors), çok modlu referanslar için transformer_ref/ bölümünü sürer. Temel bileşenler MiniMaxAI/MiniMax-H3'e aittir ve değiştirilmemiştir; ayrıca, repozituar kendi başına yüklenebilmesi için bu bileşenlerin bir kopyasını barındırır.

Pika H3 Flex, MiniMax-H3 gibi yalnızca Modular Diffusers blokları olarak entegre edilir: bloklar ve PikaH3FlexModularPipeline tüm entegrasyonu oluşturur ve DiffusionPipeline tarafı yoktur.

Yükleniyor

Bir pipeline iki adımda oluşturulur: bileşenler, MiniMax-H3 temel bileşenlerini ve iki zamanlayıcı yapılandırmasını adlandıran modular_model_index.json üzerinden yüklenir, ardından seçilen iş akışının adaptörü load_lora_weights() ile üzerine yüklenir. Adaptörler, diffusers modül adlarının düz PEFT dökümleridir ve eğitim ölçeklerinde yüklenir (alpha == rank, 1.0).

İş AkışıGirdilerDönüştürücü bölmeUyarlama
t2vaprompttransformer/fl2va/adapter.safetensors
fl2vaprompt ve image ve/veya last_imagetransformer/fl2va/adapter.safetensors
ref2vaprompt ve referencestransformer_ref/ref2va/adapter.safetensors
import torch
from diffusers import ModularPipeline

pipe = ModularPipeline.from_pretrained("Pika-Labs/Pika-H3-Flex", workflow="fl2va")
pipe.load_components(dtype={"vae": torch.float32, "audio_vae": torch.float32, "default": torch.bfloat16})
pipe.load_lora_weights("Pika-Labs/Pika-H3-Flex", weight_name="fl2va/adapter.safetensors")

Workflow parametresinin geçirilmesi, blokları o göreve göre budar; böylece yalnızca kendi transformer bölümü alınır, adaptör mevcut tek bölüme yönlendirilir ve pipeline yalnızca o görevin isteklerini kabul eder — fl2va pipeline'ı bir anahtar kare gerektirirken, t2va pipeline'ı hiçbir şey almaz. Her iki bölümü de barındıran (bir workflow= olmadan yüklenen) bir pipeline için, Ref2VA adaptörünün nereye gideceği belirtilmelidir: pipe.load_lora_weights(..., weight_name="ref2va/adapter.safetensors", load_into_transformer_ref=True). İki VAE, yayınlanan paketin yaptığı gibi float32 olarak yayınlanır ve float32'de çözümlenir; her şey bfloat16'da çalışır.

pipe.doc, önünüzdeki hattın ne aldığını ve ne döndürdüğünü gösterir: varsayılanlarıyla birlikte her girdi, beklediği bileşenler ve ürettiği çıktılar.

Yüklenen MiniMax-H3'ün yeniden kullanımı

Temel bileşenler MiniMax-H3’ün olduğundan, zaten yüklenmiş bir MiniMax-H3 hattı, iki zamanlayıcı ve adaptörler dışında her şeyi barındırır. Bu bölüm, yüklenmiş bu bileşenlerden bir Pika H3 Flex hattı oluşturur ve her iki hattı yan yana hazır tutar: tek bir ComponentsManager, her bileşeni bir kez tutar ve her iki hat için de dışa aktarır; Pika H3 Flex hattı yalnızca kendi iki zamanlayıcısını ekler ve adaptörler, paylaşılan dönüştürücülerin iki modelden hangisini çalıştıracağını belirler.

import torch
from diffusers import ComponentsManager, ModularPipeline

dtype = {"vae": torch.float32, "audio_vae": torch.float32, "default": torch.bfloat16}
manager = ComponentsManager()
manager.enable_auto_cpu_offload(device="cuda")

# The MiniMax-H3 pipeline already in use, with every workflow loaded. `collection` registers its components in the
# manager under that name, so they can be fetched by it later.
minimax = ModularPipeline.from_pretrained("MiniMaxAI/MiniMax-H3", components_manager=manager, collection="minimax-h3")
minimax.load_components(dtype=dtype)

# The Pika H3 Flex pipeline, in its own collection. Only its own components are loaded: the two schedulers.
pika = ModularPipeline.from_pretrained("Pika-Labs/Pika-H3-Flex", components_manager=manager, collection="pika-h3-flex")
pika.load_components(names=["scheduler", "audio_scheduler"])

# The rest comes from the MiniMax-H3 collection, and `update_components` puts it in the Pika H3 Flex pipeline.
shared = ["text_encoder", "tokenizer", "processor", "vae", "audio_vae", "transformer", "transformer_ref"]
pika.update_components(**{name: manager.get_one(name=name, collection="minimax-h3") for name in shared})

# The adapters go into the shared transformers.
pika.load_lora_weights("Pika-Labs/Pika-H3-Flex", weight_name="fl2va/adapter.safetensors")
pika.load_lora_weights(
    "Pika-Labs/Pika-H3-Flex", weight_name="ref2va/adapter.safetensors", load_into_transformer_ref=True
)

print(manager) sonucu şu şekilde gösterilir: her paylaşılan bileşen bir kez listelenir ve her iki koleksiyona da aittir, Pika H3 Flex koleksiyonu iki zamanlayıcısını ekler ve iki dönüştürücü bir adaptör taşır.

Models:
Name_ID               | Class                           | Size (GB) | Collection
transformer_1397...   | MiniMaxH3Transformer3DModel     | 63.02     | minimax-h3
                      |                                 |           | pika-h3-flex
transformer_ref_13... | MiniMaxH3Transformer3DModel     | 63.02     | minimax-h3
                      |                                 |           | pika-h3-flex
text_encoder_1397...  | Qwen3VLForConditionalGeneration | 62.13     | minimax-h3
                      |                                 |           | pika-h3-flex
vae_1397...           | AutoencoderKLMiniMaxH3          | 9.70      | minimax-h3
                      |                                 |           | pika-h3-flex
audio_vae_1397...     | AutoencoderKLMiniMaxH3Audio     | 0.56      | minimax-h3
                      |                                 |           | pika-h3-flex

Other Components:
ID                        | Class              | Collection
scheduler_1397...         | MiniMaxH3Scheduler | minimax-h3
audio_scheduler_1397...   | MiniMaxH3Scheduler | minimax-h3
scheduler_1397...         | MiniMaxH3Scheduler | pika-h3-flex
audio_scheduler_1397...   | MiniMaxH3Scheduler | pika-h3-flex
tokenizer_1397...         | Qwen2Tokenizer     | minimax-h3
                          |                    | pika-h3-flex
processor_1397...         | Qwen3VLProcessor   | minimax-h3
                          |                    | pika-h3-flex

Additional Component Info:
transformer_1397...:
  Adapters: ['default_0']
transformer_ref_13...:
  Adapters: ['default_0']

Adaptörler, paylaşılan dönüştürücülerin hangi model olduğunu belirler. MiniMax-H3'e geri dönmek için pika.disable_lora() çağrısı yapmanız yeterlidir: sonraki minimax(...) isteği temel modeli çalıştırır. pika.enable_lora() Pika H3 Flex'i yeniden etkinleştirir. Arada hiçbir şey yeniden yüklenmez; yönetici, her iki deyiş hattı da ilgili bileşene ulaştığında her bir bileşeni hızlandırıcı üzerinde açıp kapatır.

MiniMax-H3'ten farklı olan

  • Altı adım, num_inference_steps yok. Her iki MiniMaxH3Scheduler örneği de (video için shift=12.0, ses için shift=3.0), hattın denoising_step_list yapılandırması olan yayınlanan [1000, 750, 500, 250, 100, 40, 0] zamanlaması üzerinde stochastic_sampling ile çalışır: her adım temiz örneği tahmin eder ve sondan bir önceki hariç tüm adımlar, onu bir sonraki sigmaya yeni gürültüyle yeniden gürültüler. Adım sayısı, adaptörün sözleşmesidir ve bir girdi değildir.
  • Her adımda taze gürültü. Bir istek, generator içinden sabit bir sırayla çekim yapar: koşullandırma gürültüsü için her anahtar kare veya görsel referans için bir çekim, video gürültüsü, ses gürültüsü ve ardından ilk beş adımın her birindeki video ve ses yeniden gürültüleme çekimleri. latents veya audio_latents geçirildiğinde, ilk iki çekim değiştirilir ve geri kalanı olduğu gibi kalır.
  • Keyframe'lar kırpılır, uzatılmaz. fl2va keyframe'i, kendi çözünürlüğünde tuvalin en-boy oranına göre merkezden kırpılır ve tuvale yeniden boyutlandırılır.
  • Referanslar tuvalin çözünürlük katmanını takip eder. Pika H3 Flex, bir sepet tablosu üzerinde üretim yapar — 480p ve 768p katmanları, her biri on bir en-boy oranı içerir — ve bir ref2va isteği, tuvalinin katmanına göre koşullandırılır: bir görüntü referansı, 768 katmanının altında 1024 piksel kısa kenar ve bu katmandan yukarıda 2048 piksel olarak kodlanır; bir video referansı ise katmanın kendi tuval kuralına göre yerleştirilir. Her video veya bağımsız ses referansı 2 ila 15 saniye arasında sürer ve video süreleri ile bağımsız ses süreleri ayrı ayrı en fazla 15 saniyeyi bulur.

Üretim

Yayınlanan kovalar, Pika H3 Flex'in doğrulandığı tuval boyutlarıdır. Bunlardan birini height ve width olarak geçirin:

21:916:93:24:35:41:14:53:42:39:169:21
480p960x416832x480704x480640x480608x480480x480480x608480x640480x704480x832416x960
768p1536x6721344x7681152x7681024x768960x768768x768768x960768x1024768x1152768x1344672x1536
import torch
from diffusers import ComponentsManager, ModularPipeline
from diffusers.utils import load_image
from diffusers.utils.export_utils import encode_video

# 61.7GB of transformer and 62.1GB of conditioner do not sit on one accelerator, so the components are
# registered in a manager that moves each one on and off as the blocks reach it.
manager = ComponentsManager()
manager.enable_auto_cpu_offload(device="cuda")  # or "mps", "xpu", "cpu"

# Create one pipeline for all supported workflows, then load the `fl2va` workflow's components, which is
# enough to run both the fl2va and t2va requests below.
pipe = ModularPipeline.from_pretrained("Pika-Labs/Pika-H3-Flex", components_manager=manager)
pipe.load_components(
    workflow="fl2va", dtype={"vae": torch.float32, "audio_vae": torch.float32, "default": torch.bfloat16}
)
pipe.load_lora_weights("Pika-Labs/Pika-H3-Flex", weight_name="fl2va/adapter.safetensors")

prompt = (
    "integrated_multimodal_description: A cinematic close shot of a red ceramic cup on a wooden table beside an "
    "open window. A soft breeze moves a linen curtain. The camera slowly pushes toward the cup as warm morning "
    "light crosses the table.\n"
    "overall_soundscape: Gentle wind through the window and faint birdsong outside. No speech.\n"
    "non_diegetic_music: None.\n"
)
outputs = ["videos", "audio", "sampling_rate"]

# Text to video + audio on the 480p 16:9 bucket, 5 seconds.
results = pipe(
    prompt=prompt, 
    height=480, 
    width=832, 
    num_frames=124, 
    generator=torch.Generator("cuda").manual_seed(42), 
    output=outputs
)

# First frame (and optionally `last_image`) to video + audio. The keyframe is center-cropped onto the canvas and
# held as the first frame, so the prompt describes the keyframe and what happens from it.
image = load_image(
    "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/astronaut.jpg"
)
i2va_prompt = (
    "For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.\n\n"
    "integrated_multimodal_description: [Shot 1] Begin with the supplied image of a small toy astronaut figurine "
    "standing on a grey rocky moon surface, holding a white egg-shaped object. Preserve the figurine, its orange "
    "visor and the rocks. The astronaut slowly turns its helmet toward the camera and lifts the egg a little; fine "
    "dust drifts up around its boots. The camera slowly pushes in in one continuous shot. By the end the astronaut "
    "stands still, egg held up.\n\n"
    "overall_soundscape: Soft low wind and faint crunch of dust under the boots. No speech.\n\n"
    "non_diegetic_music: N/A\n"
)
results = pipe(
    prompt=i2va_prompt, 
    image=image, 
    height=480, 
    width=832, 
    num_frames=124,
    generator=torch.Generator("cuda").manual_seed(42), 
    output=outputs,
)

encode_video(
    results["videos"][0],
    fps=24,
    output_path="pika_h3_flex_fl2va.mp4",
    audio=results["audio"][0],
    audio_sample_rate=results["sampling_rate"],
)

ref2va iş akışı, MiniMax-H3’ün yaptığı gibi, sıralı bir referans listesi alır — en fazla 9 görüntü, 3 video ve 3 ses kliği, toplamda 12 — her modallite için bir referans sınıfı ile. Ayrıca en çok bellek gerektiren istektir: referanslar dizinin kendi satırlarını ekler ve 768p’de yalnızca transformer 80 GB’lık bir kartı doldurur. Bu nedenle aşağıdaki örnek, transformer’ın bloklarını CPU belleğinden birer birer akış olarak işlerken, yönetici diğer bileşenleri önceki gibi cihaz üzerinde ve dışında taşır. Tek bir 80 GB’lık kart üzerinde 768p referans isteği çalıştırır; akış olmadan 480p’de kalın.

import torch
from diffusers import ComponentsManager, ModularPipeline
from diffusers.modular_pipelines.pika_h3_flex import (
    PikaH3FlexAudioReference,
    PikaH3FlexImageReference,
    PikaH3FlexVideoReference,
)

manager = ComponentsManager()
manager.enable_auto_cpu_offload(device="cuda")  # or "mps", "xpu", "cpu"

pipe = ModularPipeline.from_pretrained(
    "Pika-Labs/Pika-H3-Flex", workflow="ref2va", components_manager=manager
)
pipe.load_components(dtype={"vae": torch.float32, "audio_vae": torch.float32, "default": torch.bfloat16})
pipe.load_lora_weights("Pika-Labs/Pika-H3-Flex", weight_name="ref2va/adapter.safetensors")

# Keep the transformer in CPU memory and bring in one block at a time while it runs.
pipe.transformer_ref.enable_group_offload(
    onload_device=torch.device("cuda"),
    offload_device=torch.device("cpu"),
    offload_type="block_level",
    num_blocks_per_group=1,
    use_stream=True,
)

results = pipe(
    prompt="subject_definitions: <Subject 1> is the woman in <Picture 1>. summary: [reference generation] <Subject 1> waves at the camera.",
    references=[
        PikaH3FlexImageReference.from_file("subject.png"),
        PikaH3FlexVideoReference.from_file("motion_ref.mp4"),  # frames, their `fps` and the soundtrack
        PikaH3FlexAudioReference.from_file("voice.wav"),  # waveform and its `sample_rate`
    ],
    height=768,
    width=1344,
    num_frames=124,
    generator=torch.Generator("cuda").manual_seed(42),
    output=["videos", "audio", "sampling_rate"],
)

PikaH3FlexModularPipeline

sınıf diffusers.PikaH3FlexModularPipeline

< >

( blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = Nonepretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = Noneworkflow: str | None = Nonemodular_config_dict: dict[str, typing.Any] | None = Noneconfig_dict: dict[str, typing.Any] | None = None**kwargs )

Pika H3 Flex ile ortak video + ses üretimi için bir ModularPipeline, post-trained altı adımlı MiniMax-H3: t2va (yalnızca metin) ve fl2va (ilk ve/veya son ana kare) iş akışları transformer/ checkpoint bölümüne karşı, fl2va adaptörü ile; ve ref2va (omni-reference) iş akışı transformer_ref/ bölümüne karşı, ref2va adaptörü ile.

Temel bileşenler MiniMax-H3’ünkilerdir ve Pika H3 Flex sürümü, iki transformer bölümünün üzerine yerleştirilen bir çift rank-128 LoRA adaptörüdür; bu nedenle bir pipeline iki adımda oluşturulur: bileşenler, temel bileşenleri ve iki zamanlayıcıyı adlandıran bir modular_model_index.json üzerinden yüklenir ve seçilen iş akışının adaptörü load_lora_weights() ile yüklenir.

import torch
from diffusers import ModularPipeline

pipe = ModularPipeline.from_pretrained("Pika-Labs/Pika-H3-Flex", workflow="fl2va")
pipe.load_components(dtype={"vae": torch.float32, "audio_vae": torch.float32, "default": torch.bfloat16})
pipe.load_lora_weights("Pika-Labs/Pika-H3-Flex", weight_name="fl2va/adapter.safetensors")

MiniMax-H3 gibi, Pika H3 Flex de metin koşullandırma, anahtar kare veya referans koşullandırma latentleri, ses latentleri ve video latentlerini aynı anda barındıran tek bir paketlenmiş diziyi gürültüden arındırır. Bu nedenle bloklar, modalite başına tensörler yerine bir satır düzenini (row layout) devreder ve pipeline, tek bir transformer çağrısı içinde adım atılan iki zamanlayıcıyı (shift = 12.0 video için, shift = 3.0 ses için) taşır. MiniMax-H3'ten farklı olarak, bu iki zamanlayıcı denoising_step_list sabit altı adımlık listesi üzerinde stochastic_sampling kullanan MiniMaxH3Scheduler örnekleridir: num_inference_steps yoktur ve her adım, isteğin üretecinden (generator) taze gürültü çeker.

Uyarlama katmanları, taban modelleri gibi rehberlik damıtılmıştır: bir rehber, negative_prompt veya guidance_scale yoktur ve her adım tam olarak bir ileri geçiş çalıştırır.

Bu modül, her bloğun dayandığı model bilgilerini taşır — yapılandırma türevli geometri özellikler olarak, tuval, katman ve kare sayısı aritmetiği işlevler olarak — ve koşullandırma, kodlama ve gürültü sözleşmeleri blokların kendisinde yaşar.

PikaH3FlexBlocks

sınıf diffusers.PikaH3FlexBlocks

< >

( )

Pika H3 Flex ile ortak video + ses üretimi için Auto Modular pipeline blokları: references ve anahtar kare girdilerine göre seçilen t2va (yalnızca metin), fl2va (ilk ve/veya son anahtar kare) ve ref2va (omni-referans) iş akışları. t2va ve fl2va iş akışları transformer bölümünü fl2va adaptörüyle, ref2va ise transformer_ref bölümünü ref2va adaptörüyle çalıştırır; bu nedenle isteğin gittiği iş akışının adaptörünü yükleyin. workflow= verilmediğinde, bileşenlerin yüklenmesi her iki 61,7 GB’lık transformer bölümünü de çeker — görevin gerektirdiği şeyi yüklemek için birini belirtin.

Desteklenen iş akışları:

  • t2va: prompt gerektirir
  • fl2va: prompt, image veya prompt, last_image gerektirir
  • ref2va: prompt ve references gerektirir

Bileşenler: image_processor (VaeImageProcessor) text_encoder (Qwen3VLForConditionalGeneration) tokenizer (Qwen2Tokenizer) processor (Qwen3VLProcessor) vae (AutoencoderKLMiniMaxH3) audio_vae (AutoencoderKLMiniMaxH3Audio) scheduler (MiniMaxH3Scheduler) audio_scheduler (MiniMaxH3Scheduler) transformer_ref (MiniMaxH3Transformer3DModel) transformer (MiniMaxH3Transformer3DModel) video_processor (VideoProcessor)

Yapılandırmalar: canvas_short_edge (varsayılan: 768) canvas_max_pixels (varsayılan: 1032192) denoising_step_list (varsayılan: [1000, 750, 500, 250, 100, 40, 0])

Girdiler: references (list, isteğe bağlı): Koşullandırılacak referanslar, modelin onları okuması gereken sırayla: sıra, bunları istek sunumunda etiketler ve paylaşımlı döner saat üzerinde yerleştirir, bu nedenle farklı bir sıra farklı bir istektir. Her modallite için bir dataclass, hepsi bellek içi medya tutar — en fazla 9 adet PikaH3FlexImageReference, kendi fps değerinde en fazla 3 adet PikaH3FlexVideoReference (kendi audio ses bandı da koşullandırılır) veya kendi sample_rate değerinde en fazla 3 adet PikaH3FlexAudioReference — toplamda en fazla 12 referans ve ses referansları tek başına olamaz. Her video veya bağımsız ses referansı 2 ila 15 saniye sürer ve video süreleri ile bağımsız ses süreleri her biri en fazla 15 saniyeye kadar toplanır. Bu bloklar asla bir medya dosyası açmaz: hızları da getiren her sınıfın from_file sınıf metoduyla çözümlenir. height (int, isteğe bağlı): Üretilen videonun piksel cinsinden yüksekliği, 32'nin bir katı. width (int, isteğe bağlı): Üretilen videonun piksel cinsinden genişliği, 32'nin bir katı. num_frames (int, isteğe bağlı): Sabit 24 fps'de üretilecek kare sayısı: 120 ila 360, yani 5 ila 15 saniye, video VAE'nin çözebileceği bir sonraki 17 * n + 5 değerine yuvarlanır. Referans ses bandı kadar uzun bir video üretmek için round(samples / sample_rate * 24) geçirin. image (Image, isteğe bağlı): Videonun başladığı anahtar kare. Tuvalin en-boy oranına göre ortadan kırpılır ve üzerine yeniden boyutlandırılır; tuval varsayılan olarak kendi en-boy oranından türetilir. last_image (Image, isteğe bağlı): Videonun bittiği anahtar kare. Bir kareye kadar üretmek için tek başına geçirilebilir. image gibi, tuvalin en-boy oranına göre ortadan kırpılır ve üzerine yeniden boyutlandırılır. prompt (str): Üretimi yönlendirmek için istek, tek bir dize. normalized_references (list, isteğe bağlı): Kurulum adımı tarafından normalize edilen referanslar, paketlenmiş sırayla. keyframes (list, isteğe bağlı): Hedef tuvale yerleştirilen anahtar kareler, paketlenmiş sırayla. condition_latents (list, isteğe bağlı): Kodlanmış video koşullandırma latentleri, paketlenmiş sırayla her görüntü ve video referansı için bir adet. Şekilleri, her referans bloğunun geometrisinin geldiği yerdir. audio_condition_latents (list, isteğe bağlı): Kodlanmış ses koşullandırma satırları, paketlenmiş sırayla ses içeren her referans için bir adet. generator (Generator, isteğe bağlı): İsteğin üreteci. Koşullandırma gürültüsü, üretilen satırların gürültüsünden önce, her koşul için bir çekimle buradan çekilir. latents (Tensor): (1, 24, num_latent_frames, latent_height, latent_width) şeklinde önceden üretilmiş video gürültüsü, çekim yerine kullanılır. audio_latents (Tensor): (2, 32, num_audio_latents) şeklinde önceden üretilmiş ses gürültüsü. *denoiser_input_fields (None,isteğe bağlı): Transformer'ın adla okuduğu paketlenmiş dizinin yapısal tanımı: token_tags, position_ids ve üç satır-dizin tensörü. attention_kwargs (dict,isteğe bağlı): Dikkat işleyicileri için ek kwargs. keyframe_anchors (tuple,isteğe bağlı, varsayılan ()): Her anahtar karenin videonun hangi ucuna sabitlendiği, paketlenmiş sırayla. output_type (str,isteğe bağlı*, varsayılan pil): Çıktı biçimi: ‘pil’, ‘np’ veya ‘pt’.

Çıktılar: videos (list): Oluşturulan video. audio (Tensor): (1, 2, num_samples) biçiminde oluşturulan ses bandı. sampling_rate (int): Hz cinsinden oluşturulan ses bandının örneklem hızı.

PikaH3FlexImageReference

sınıf diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexImageReference

< >

( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor] )

Parametreler

  • image (PIL.Image.Image, np.ndarray veya torch.Tensor) — Referans görüntü: bir görüntü, (height, width, 3) boyutunda bir dizi veya (3, height, width) boyutunda bir tensör, uint8 veya [0, 1] aralığında kayan noktalı. Üretilen geometriyi asla bağlamaz; kendi kısa kenarında kodlanır, yayınlanan checkpoint için 2048, istek hangi tuvalde üretirse üretsin.

Bir konu, stil veya sahne referansı: istek başına en fazla 9.

from_file

< >

( media )

Parametreler

  • media (str veya os.PathLike) — Görselin yolu veya URL'si.

Bir görüntü dosyasını load_image() üzerinden PikaH3FlexImageReference içine yükleyin.

PikaH3FlexVideoReference

sınıf diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexVideoReference

< >

( frames: typing.Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor]fps: float | None = Noneaudio: typing.Optional[torch.Tensor] = Nonesample_rate: int | None = None )

Parametreler

  • frames (list[PIL.Image.Image], np.ndarray veya torch.Tensor) — Referans kareler: bir görüntü listesi, (num_frames, height, width, 3) boyutunda bir dizi veya (num_frames, 3, height, width) boyutunda bir tensör, uint8 veya [0, 1] aralığında kayan noktalı.
  • fps (float, isteğe bağlı, varsayılan 24.0) — frames’in taşıdığı kare hızı; referansın görme bloklarını conditioner’ın 2 fps ızgarasına yerleştiren değer budur. MiniMax-H3’ün kendi saati 24 fps olduğundan, başka bir hız tüm kareleri atlayarak ve çoğaltarak bu hıza yeniden örneklenir; bu da kareler bir dosyadan geldiğinde doğru ayarlanacak alanı oluşturur.
  • audio (torch.Tensor, şekli (channels, num_samples), isteğe bağlı) — Bu videonun ses bandı, mono veya stereo; kendi referansı olarak değil, referansın kendi ses bandı olarak koşullandırılır. Bu parametre verilmezse, referans yalnızca harekete göre koşullandırılır.
  • sample_rate (int, isteğe bağlı) — audio örneklerini taşıdığı hız. Belirtilmezse, ses VAE'sinin kendi hızı kullanılır ve örnekler olduğu gibi bırakılır; başka bir hız belirtilirse örnekler bu hıza yeniden örneklenir.

Bir hareket ve kamera referansı: istek başına en fazla 3 adet, kendi ses efektleriyle birlikte koşullandırılır.

from_file

< >

( media ) → PikaH3FlexVideoReference

Parametreler

  • media (str veya os.PathLike) — Videoyun yolu veya URL'si.

Dönüş değeri

PikaH3FlexVideoReference

Kapsayıcının bildirdiği kare hızında, ses akışı varsa ses kaydını ve o ses kaydının kendi örneklem hızını taşıyan (num_frames, height, width, 3) uint8 kareler.

Bir video dosyasını, çözünürlüğünde, kare hızında ve taşıdığı ses kaydında PikaH3FlexVideoReference olarak çözümlen.

Oranlar referansa yerleşir; bu, load_video() yerine bu şekilde çözümleme yapmanın amacıdır: MiniMax-H3, referansı kendi 24 fps'ine yeniden örnekler, bu yüzden giriş sırasında kaybedilen bir kare hızı, yanlış hızda koşullandırılmış bir istemektir ve bunu bildirecek hiçbir şey yoktur. Meta verileri yanlış olan bir kapsayıcı, döndürülen referans üzerinde fps veya sample_rate değerlerini geçersiz kılarak düzeltilir.

PyAV gerektirir.

PikaH3FlexAudioReference

sınıf diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexAudioReference

< >

( audio: Tensorsample_rate: int | None = None )

Parametreler

  • audio (torch.Tensor, şekli (channels, num_samples)) — Referans dalga formu, mono veya stereo.
  • sample_rate (int, isteğe bağlı) — audio örneklerini taşıdığı hız. Belirtilmezse, ses VAE'sinin kendi hızı kullanılır ve örnekler olduğu gibi bırakılır; başka bir hız belirtilirse örnekler bu hıza yeniden örneklenir.

Ses veya müzik referansı: istek başına en fazla 3 adet ve asla tek başına değil — bir ses referansı, en az bir görsel veya video referansı ile eşleştirilmelidir. Hiçbir zaman conditioner'a ulaşmaz ve yalnızca ses VAE tarafından kodlanır.

from_file

< >

( media ) → PikaH3FlexAudioReference

Parametreler

  • media (str veya os.PathLike) — Sesin veya ses bandı alınacak videonun yolu veya URL'si.

Dönüş değeri

PikaH3FlexAudioReference

kap konteynerinin bildirdiği örnek hızında (channels, num_samples) boyutlu float32 dalga formu.

Bir ses dosyasını, taşıdığı örneklem hızında PikaH3FlexAudioReference olarak çözümlen.

PyAV gerektirir.

Update on GitHub