# Pika H3 Flex

  
    
  

[Pika H3 Flex](https://huggingface.co/Pika-Labs/Pika-H3-Flex) هو تدريب ما بعد التدريب الذي أجرته Pika على [MiniMax-H3](./minimax_h3) ليصبح مولّدًا للفيديو والصوت في ست خطوات. يحتفظ بترتيب MiniMax-H3 المكدّس، ومشروط Qwen3-VL الخاص به، ووحدي VAE الخاصين به، ويغيّر شيئين: العيّّان، وهو جدول ثابت من ست خطوات يعيد الضجيج للتنبؤ النظيف في كل خطوة بدلًا من تحديث Euler، والأوزان، وهي زوج من محوّلات LoRA ذات رتبة 128 فوق قسمي محوّل MiniMax-H3. يخرج الفيديو وموسيقاه الصوتية المجسّمة المتزامنة من نفس التمريرات الأمامية الست.

الإصدار هو المحوِّلات: محوِّل FL2VA (`fl2va/adapter.safetensors`) يقود قسم `transformer/` لتكييف النص وإطار النهاية، ومحوِّل Ref2VA (`ref2va/adapter.safetensors`) يقود `transformer_ref/` للإحالات متعددة الوسائط. المكوّنات الأساسية هي مكوّنات [MiniMaxAI/MiniMax-H3](https://huggingface.co/MiniMaxAI/MiniMax-H3) دون تغيير، ويحمل المستودع نسخة منها حتى يتم تحميله بشكل مستقل.

يُدمج Pika H3 Flex على شكل كتل [Modular Diffusers](../../modular_diffusers/overview) فقط، تمامًا مثل MiniMax-H3: فالكُتل و[PikaH3FlexModularPipeline](/docs/diffusers/v0.43.0/ar/api/pipelines/pika_h3_flex#diffusers.PikaH3FlexModularPipeline) الخاصة بها هي التكامل بأكمله، ولا يوجد نصف `DiffusionPipeline`.

## جارٍ التحميل

يُجمَّع خط الأنابيب في خطوتين: تُحمَّل المكونات عبر `modular_model_index.json` الذي يحدد مكونات MiniMax-H3 الأساسية وإعدادات المجدولَين، ثم يُحمَّل مُكيِّف سير العمل المحدد فوقها باستخدام [load_lora_weights()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.MiniMaxH3LoraLoaderMixin.load_lora_weights). المكيِّفات هي تصريفات PEFT عادية لأسماء وحدات diffusers وتُحمَّل بمقياسها المُدرَّب (`alpha == rank`، 1.0).

| سير العمل | المدخلات | تقسيم Transformer | محوّل |
|---|---|---|---|
| `t2va` | `prompt` | `transformer/` | `fl2va/adapter.safetensors` |
| `fl2va` | `prompt` و`image` و/أو `last_image` | `transformer/` | `fl2va/adapter.safetensors` |
| `ref2va` | `prompt` و`references` | `transformer_ref/` | `ref2va/adapter.safetensors` |

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

عند تمرير سير العمل، يتم تقليم الكتل إلى تلك المهمة، بحيث يُجلب فقط قسم الترانسفورمر الخاص بها، ويوجّه المُكيّف (adapter) إلى القسم الوحيد الموجود، ويقبل خط الأنابيب (pipeline) طلبات تلك المهمة وحدها — فخط أنابيب `fl2va` يحتاج إلى إطار رئيسي (keyframe)، بينما لا يتطلب خط أنابيب `t2va` أي إطار. أما خط الأنابيب الذي يحتفظ بكلا القسمين (المحمّل دون `workflow=`) فيحتاج إلى تحديد مكان وضع مُكيّف Ref2VA: `pipe.load_lora_weights(..., weight_name="ref2va/adapter.safetensors", load_into_transformer_ref=True)`. تُصدر كلا نموذجي VAE بدقة float32 ويُفكّ تشفيرهما بدقة float32، تمامًا كما يفعل الحزمة المُصدَرة؛ بينما يعمل كل ما عدا ذلك بدقة bfloat16.

> [!TIP]
> `pipe.doc` يطبع ما يستقبله خط المعالجة أمامك وما يعيده — كل مدخل مع قيمته الافتراضية، والمكونات التي يتوقعها، والمخرجات التي ينتجها.

### إعادة استخدام نموذج MiniMax-H3 المحمّل

المكوّنات الأساسية هي مكوّنات MiniMax-H3، لذا فإن خط أنابيب MiniMax-H3 المحمّل مسبقاً يحتفظ بكل شيء باستثناء المجدولين (Schedulers) والمُكيّفات (Adapters). يجمع هذا القسم خط أنابيب Pika H3 Flex من تلك المكوّنات المحمّلة، ويُبقي كلا الخطين جاهزين جنباً إلى جنب: حيث يحتفظ [ComponentsManager](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) بكل مكوّن مرة واحدة ويُحمّله (Offloads) لكلا الخطين، ويضيف خط أنابيب Pika H3 Flex مجديّه فقط، بينما تُقرر المُكيّفات أيّ نموذجين من النموذجين المشتركين ستشغّل محوّلات (Transformers) مشتركة.

```py
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)` يعرض النتيجة: يُذكر كل مكوّن مشترك مرة واحدة وينتمي إلى المجموعتين، وتضيف مجموعة Pika H3 Flex مجدولَيها، وتحمل التحوّلتان (transformers) مكيّفًا (adapter).

```text
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']
```

تحدد المُكيّفات النموذج الذي تتبناه وحدات التحويل المشتركة. للعودة إلى MiniMax-H3، استدعِ `pika.disable_lora()`، وهذا كل ما يلزم: فطلب `minimax(...)` التالي سيقوم بتشغيل النموذج الأساسي. يُعيد `pika.enable_lora()` تفعيل Pika H3 Flex. لا يتم إعادة تحميل أي شيء في الفترة الفاصلة؛ بل يقوم المُدير بنقل كل مكوّن إلى المُسرّع أو إزالته عنه كلما وصلت إحدى المسارات إليه.

## ما يختلف عن MiniMax-H3

- **ست خطوات، بدون `num_inference_steps`.** يعمل كلا مثيلي [MiniMaxH3Scheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/minimax_h3#diffusers.MiniMaxH3Scheduler) (`shift=12.0` للفيديو، `shift=3.0` للصوت) مع `stochastic_sampling` عبر إعداد `denoising_step_list` في خط المعالجة، وهو الجدول المنشور `[1000, 750, 500, 250, 100, 40, 0]`: تتنبأ كل خطوة بالعينة النظيفة، وتُعاد إضافة الضوضاء إليها بضوضاء جديدة حتى سيجما التالية في جميع الخطوات عدا الأخيرة. عدد الخطوات هو عقد المكيّف وليس مدخلاً.
- **ضوضاء جديدة في كل خطوة.** يستخرج الطلب من `generator` بترتيب ثابت: سحب واحد لكل إطار مرجعي أو مرجع بصري لضوضاء الشرط، وضوضاء الفيديو، وضوضاء الصوت، ثم سحب إعادة الضوضاء للفيديو والصوت لكل من الخطوات الخمس الأولى. تمرير `latents` أو `audio_latents` يستبدل السحبين الأوليين ويُبقي الباقي كما هو.
- **تُقتطع الإطارات الرئيسية ولا يتم تمديدها.** يُقتطع إطار `fl2va` الرئيسي من المنتصف ليتناسب مع نسبة أبعاد اللوحة عند دقته الخاصة، ثم يُعاد تحجيمه ليملأ اللوحة.
- **تتبع المراجع فئة دقة اللوحة.** يولّد Pika H3 Flex على جدول دلاء — فئة 480p وفئة 768p، مع أحد عشر نسبة عرض إلى ارتفاع لكل فئة — ويخضع طلب `ref2va` لشرط فئة لوحته: يتم ترميز مرجع الصورة بحافة قصيرة 1024 بكسل تحت فئة 768 و2048 بكسل من هذه الفئة فما فوق، بينما يُوضع مرجع الفيديو على قاعدة اللوحة الخاصة بفئته. كل مرجع فيديو أو صوت مستقل يعمل لمدة تتراوح بين ثانيتين و15 ثانية، ومجموع مدد الفيديو ومدد الصوت المستقل لا يتجاوز 15 ثانية لكل منهما.

## التوليد

الدلاء المُطلقة هي لوحات الرسم التي تم التحقق من Pika H3 Flex عليها. مرر أحدها كـ`height` و`width`:

| | 21:9 | 16:9 | 3:2 | 4:3 | 5:4 | 1:1 | 4:5 | 3:4 | 2:3 | 9:16 | 9:21 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 480p | 960x416 | 832x480 | 704x480 | 640x480 | 608x480 | 480x480 | 480x608 | 480x640 | 480x704 | 480x832 | 416x960 |
| 768p | 1536x672 | 1344x768 | 1152x768 | 1024x768 | 960x768 | 768x768 | 768x960 | 768x1024 | 768x1152 | 768x1344 | 672x1536 |

```py
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` مع قائمة مرتبة من المراجع — تصل إلى 9 صور، و3 مقاطع فيديو، و3 مقاطع صوتية، أي 12 عنصرًا إجمالًا — بالطريقة التي يتعامل بها MiniMax-H3، مع فئة مرجعية واحدة لكل نمط. وهو أيضًا الطلب الذي يتطلب أكبر قدر من الذاكرة: إذ تضيف المراجع صفوفها الخاصة إلى التسلسل، وعند دقة 768p يملأ المحول (transformer) وحده بطاقة ذاكرة سعتها 80 جيجابايت. لذلك، يبث المثال أدناه كتل المحول من ذاكرة المعالج المركزي (CPU) واحدة تلو الأخرى، بينما ينقل المدير المكونات الأخرى إلى الجهاز ومنه كما كان يفعل سابقًا. ينفذ هذا الطلب المرجعي بدقة 768p على بطاقة واحدة سعتها 80 جيجابايت؛ وبدون البث، ابقَ عند دقة 480p.

```py
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[[diffusers.PikaH3FlexModularPipeline]]

#### diffusers.PikaH3FlexModularPipeline[[diffusers.PikaH3FlexModularPipeline]]

```python
diffusers.PikaH3FlexModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/modular_pipeline.py#L211)

خط أنابيب ModularPipeline لتوليد الفيديو والصوت معًا باستخدام Pika H3 Flex، وهو نموذج MiniMax-H3 المدرّب بعد التدريب على ست خطوات: مسارات العمل `t2va` (نص فقط) و`fl2va` (إطار رئيسي أول و/أو أخير) مقابل تقسيم نقطة التفتيش `transformer/` مع المُكيّف `fl2va`، ومسار العمل `ref2va` (مرجع شامل) مقابل `transformer_ref/` مع المُكيّف `ref2va`.

المكوّنات الأساسية هي مكوّنات MiniMax-H3، وإصدار Pika H3 Flex عبارة عن زوج من محوِّلات LoRA ذات رتبة 128 فوق تقسيمَي transformer، لذا يتم تجميع خط المعالجة في خطوتين: يتم تحميل المكوّنات عبر `modular_model_index.json` الذي يسمّي المكوّنات الأساسية والمجدولين اثنين، ويتم تحميل المحوّل الخاص بعملية العمل المختارة باستخدام [load_lora_weights()](/docs/diffusers/v0.43.0/ar/api/loaders/lora#diffusers.loaders.MiniMaxH3LoraLoaderMixin.load_lora_weights).

```py
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، يقوم Pika H3 Flex بإزالة الضوضاء من **تسلسل واحد مُجمَّع** يحتضن في آنٍ واحد شروط النص، ومتغيرات (latents) شروط الإطار الرئيسي أو المرجع، ومتغيرات الصوت، ومتغيرات الفيديو، ولهذا السبب تمرر الكتل تخطيط صف (row layout) بدلاً من متجهات (tensors) لكل نمط (modality) على حدة، ولهذا أيضاً يحمل خط الأنابيب (pipeline) مجدولين (schedulers) اثنين (`shift = 12.0` للفيديو، و`shift = 3.0` للصوت) يتم تشغيلهما داخل استدعاء واحد لتحويلة (transformer). وعلى عكس MiniMax-H3، فإن المجدولين الاثنين هما من نوع [MiniMaxH3Scheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/minimax_h3#diffusers.MiniMaxH3Scheduler) مع `stochastic_sampling` فوق قائمة خطوات إزالة الضوضاء `denoising_step_list` الثابتة المكونة من ست خطوات: فلا يوجد `num_inference_steps`، بل يسحب كل خطوة ضوضاء جديدة من مولّد (generator) الطلب.

المُكيِّفات مُقطَّرة التوجيه مثل أساسها: لا يوجد موجِّه، ولا `negative_prompt`، ولا `guidance_scale`، وتُنفَّذ في كل خطوة تمريرة أمامية واحدة بالضبط.

يحمل هذا الوحدة حقائق النموذج التي تعتمد عليها كل وحدة فرعية — الهندسة المشتقة من الإعدادات كخصائص، وحسابات اللوحة والمستوى وعدد الإطارات كدوال — بينما تعيش عقود التكييف والتشفيش والضوضاء على الوحدات الفرعية نفسها.

## PikaH3FlexBlocks[[diffusers.PikaH3FlexBlocks]]

#### diffusers.PikaH3FlexBlocks[[diffusers.PikaH3FlexBlocks]]

```python
diffusers.PikaH3FlexBlocks()
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/modular_blocks_pika_h3_flex.py#L668)

كتل خط أنابيب Auto Modular لتوليد الفيديو والصوت معًا باستخدام Pika H3 Flex: مسارات العمل `t2va` (نص فقط)، و`fl2va` (إطار رئيسي أولي و/أو أخير)، و`ref2va` (مرجع شامل)، يتم اختيارها بناءً على مدخلات `references` والإطارات الرئيسية. تعمل مسارات العمل `t2va` و`fl2va` على قسم `transformer` باستخدام مُكيّف `fl2va`، بينما تعمل `ref2va` على قسم `transformer_ref` باستخدام مُكيّف `ref2va`، لذا حمّل المُكيّف الخاص بمسار العمل الذي يتخذه الطلب. في غياب `workflow=`، يؤدي تحميل المكونات إلى سحب **كلا** قسمي التحوّل بحجم 61.7GB — مرّر أحد القسمين لتحميل ما يحتاجه المهمة فقط.

سير العمل المدعومة:
- `t2va`: يتطلب `prompt`
- `fl2va`: يتطلب `prompt` أو `image` أو `prompt` و`last_image`
- `ref2va`: يتطلب `prompt`، `references`

المكوّنات: 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`)

الإعدادات: canvas_short_edge (الافتراضي: 768) canvas_max_pixels (الافتراضي: 1032192) denoising_step_list (الافتراضي: [1000, 750, 500, 250, 100, 40, 0])

المُدخلات: references (`list`، *اختياري*): المراجع التي يُشترط عليها، **بترتيب القراءة الذي يجب أن يتبعه النموذج**: فترتيبها هو ما يسمّيها في عرض المُوجِّه ويضعها على الساعة الدوّارة المشتركة، وبالتالي فإنّ ترتيبًا مختلفًا يعني طلبًا مختلفًا. فئة بيانات واحدة لكل نمط، جميعها تحتفظ بوسائط في الذاكرة — `PikaH3FlexImageReference` (بحدٍّ أقصى 9)، أو `PikaH3FlexVideoReference` بمعدل `fps` خاص بها (بحدٍّ أقصى 3، حيث يُشترط أيضًا على المسار الصوتي `audio` الخاص بها)، أو `PikaH3FlexAudioReference` بمعدل `sample_rate` خاص بها (بحدٍّ أقصى 3) — بحدٍّ أقصى 12 مرجعًا إجمالًا، ولا يمكن أن تكون مراجع الصوت هي الوحيدة. كل مرجع فيديو أو مرجع صوت مستقل مدّته من ثانيتين إلى 15 ثانية، ومجموع مدد الفيديو ومدد الصوت المستقل لا يتجاوز 15 ثانية لكلٍّ منهما. هذه الكتل لا تفتح ملف وسائط أبدًا: فكّ الترميز يتم عبر طريقة الفئة `from_file` لكل فئة، والتي تجلب المعدلات معها. height (`int`، *اختياري*): ارتفاع الفيديو المولَّد بالبكسل، مضاعف لـ 32. width (`int`، *اختياري*): عرض الفيديو المولَّد بالبكسل، مضاعف لـ 32. num_frames (`int`، *اختياري*): عدد الإطارات المولَّدة، بمعدل ثابت 24 fps: من 120 إلى 360، أي من 5 إلى 15 ثانية، مع تقريبها لأعلى إلى أقرب قيمة على شكل `17 * n + 5` يمكن لفائ VAE للفيديو فكّ ترميزها. لتوليد فيديو بطول المسار الصوتي المرجعي، مرّر `round(samples / sample_rate * 24)`. image (`Image`، *اختياري*): الإطار المفتاحي الذي يبدأ منه الفيديو. يُقصّ من المنتصف ليتناسب مع نسبة أبعاد اللوحة ويُعاد تحجيمه عليها؛ واللوحة مشتقة افتراضيًا من نسبة أبعاده الخاصة. last_image (`Image`، *اختياري*): الإطار المفتاحي الذي ينتهي عليه الفيديو. يمكن تمريره بمفرده لتوليد *حتى* إطار. يُقصّ من المنتصف ليتناسب مع نسبة أبعاد اللوحة ويُعاد تحجيمه عليها، تمامًا مثل `image`. prompt (`str`): المُوجِّه الذي يوجّه التوليد، نصٌّ واحد. normalized_references (`list`، *اختياري*): المراجع المُطبَّعة بواسطة خطوة الإعداد، بترتيب مُجمَّع. keyframes (`list`، *اختياري*): الإطارات المفتاحية الموضوعة على لوحة الهدف، بترتيب مُجمَّع. condition_latents (`list`، *اختياري*): كامنات التكييف المُرمَّزة للفيديو، واحدة لكل مرجع صورة وفيديو بترتيب مُجمَّع. شكلها هو مصدر هندسة كل كتلة مراجع. audio_condition_latents (`list`، *اختياري*): صفوف التكييف الصوتي المُرمَّزة، واحدة لكل مرجع يحمل صوتًا بترتيب مُجمَّع. generator (`Generator`، *اختياري*): المولّد الخاص بالطلب. يُسحب ضوضاء التكييف منه أولًا، سحب واحد لكل شرط، قبل ضوضاء الصفوف المولَّدة. latents (`Tensor`): ضوضاء فيديو مُولَّدة مسبقًا بشكل `(1, 24, num_latent_frames, latent_height, latent_width)`، تُستخدم بدلًا من السحب. audio_latents (`Tensor`): ضوضاء صوت مُولَّدة مسبقًا بشكل `(2, 32, num_audio_latents)`. **denoiser_input_fields (`None`، *اختياري*): الوصف الهيكلي للتسلسل المُجمَّع الذي يقرأه التحويلي بالاسم: `token_tags`، `position_ids` ومصفوفات فهارس الصفوف الثلاث. attention_kwargs (`dict`، *اختياري*): معاملات إضافية لمعالجات الانتباه. keyframe_anchors (`tuple`، *اختياري*، الافتراضي ()): أي طرف من الفيديو يُثبَّت عليه كل إطار مفتاحي، بترتيب مُجمَّع. output_type (`str`، *اختياري*، الافتراضي pil): صيغة الإخراج: 'pil' أو 'np' أو 'pt'.

المخرجات: مقاطع فيديو (`list`): الفيديو المولّد. الصوت (`Tensor`): المسار الصوتي المولّد، ذو الشكل `(1, 2, num_samples)`. معدل العينة (`int`): معدل عينة المسار الصوتي المولّد بالهرتز.

## PikaH3FlexImageReference[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexImageReference]]

#### diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexImageReference[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexImageReference]]

```python
diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexImageReference(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor])
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/references.py#L83)

**المعاملات:**

image (`PIL.Image.Image` أو `np.ndarray` أو `torch.Tensor`) : الصورة المرجعية: صورة، مصفوفة بأبعاد `(height, width, 3)` أو متجه بأبعاد `(3, height, width)`، من نوع `uint8` أو أرقام عشرية ضمن المدى `[0, 1]`. لا ترتبط هذه الصورة أبدًا بالهندسة المولّدة — إذ يتم ترميزها على حافة قصيرة خاصة بها، تبلغ 2048 للنقطة المرجعية المُصدَرة، بغض النظر عن حجم اللوحة الذي تولّده الطلبات.

مرجع للموضوع أو الأسلوب أو المشهد: بحد أقصى 9 لكل طلب.

#### from_file[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexImageReference.from_file]]

```python
from_file(media)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/references.py#L99)

**المعاملات:**

media (`str` أو `os.PathLike`) : مسار الصورة أو عنوانها.

حمّل ملف صورة إلى `PikaH3FlexImageReference` من خلال [load_image()](/docs/diffusers/v0.43.0/ar/api/utilities#diffusers.utils.load_image).

## PikaH3FlexVideoReference[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexVideoReference]]

#### diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexVideoReference[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexVideoReference]]

```python
diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexVideoReference(frames: typing.Union[list[PIL.Image.Image], numpy.ndarray, torch.Tensor], fps: float | None = None, audio: typing.Optional[torch.Tensor] = None, sample_rate: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/references.py#L111)

**المعاملات:**

frames (`list[PIL.Image.Image]` أو `np.ndarray` أو `torch.Tensor`) : الإطارات المرجعية: قائمة من الصور، مصفوفة `(num_frames, height, width, 3)` أو متجه `(num_frames, 3, height, width)`، `uint8` أو أرقام عشرية ضمن `[0, 1]`.

fps (`float`, *اختياري*, القيمة الافتراضية 24.0) : معدل الإطارات الذي تحمله `frames`، وهو ما يحدد موضع كتل الرؤية الخاصة بالمرجع على شبكة 2 إطار/ثانية الخاصة بمشروط التوليد. الساعة الداخلية الخاصة بـ MiniMax-H3 هي 24 إطار/ثانية، لذا يتم إعادة أخذ عينات أي معدل آخر عليها عن طريق حذف إطارات كاملة وتكرارها — مما يجعل هذا الحقل هو ما يجب ضبطه بشكل صحيح عندما تكون الإطارات مستخرجة من ملف.

audio (`torch.Tensor` من الشكل `(channels, num_samples)`، *اختياري*) : موسيقى هذا الفيديو، أحادية أو ستيريو، مشروطة كمرجع خاص بها وليس كمرجع لمرجع آخر. عند إهماله، يُشترط المرجع على الحركة فقط.

sample_rate (`int`, *اختياري*) : المعدل الذي تنقل به `audio` عيناتها. إذا حُذف، فهو معدل VAE الصوتي نفسه، مما يترك العينات دون تغيير؛ أما أي معدل آخر فيُعاد أخذ عينات الصوت عليه.

مرجع للحركة والكاميرا: بحد أقصى 3 لكل طلب، مشروطًا معًا مع موسيقاه الخاصة.

#### from_file[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexVideoReference.from_file]]

```python
from_file(media)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/references.py#L147)

**المعاملات:**

media (`str` أو `os.PathLike`) : مسار أو عنوان URL للفيديو.

**يعيد:** `PikaH3FlexVideoReference`

الإطارات من نوع `uint8` بأبعاد `(num_frames, height, width, 3)` بمعدل الإطارات الذي يبلّغ عنه الحاوية، مع حملها لمسار الصوت ومعدل عينات ذلك المسار عندما يحتوي على تدفق صوتي.

فكّ ترميز ملف فيديو إلى `PikaH3FlexVideoReference`، بالدقة ومعدل الإطارات والموسيقى المصاحبة التي يحملها.

تستقر المعدّلات على المرجع، وهذا هو الهدف من فك الترميز بهذه الطريقة بدلاً من استخدام [load_video()](/docs/diffusers/v0.43.0/ar/api/utilities#diffusers.utils.load_video): يعيد نموذج MiniMax-H3 أخذ عينات من المرجع بمعدل 24 إطاراً في الثانية، لذا فإن معدل الإطارات المفقود أثناء الإدخال يعني أن الطلب مشروط بسرعة خاطئة، دون وجود أي آلية للتنبيه بذلك. يتم تصحيح الحاوية التي تحتوي على بيانات وصفية خاطئة عن طريق تجاوز قيمة `fps` أو `sample_rate` على المرجع المُعاد.

يتطلب [PyAV](https://github.com/PyAV-Org/PyAV).

## PikaH3FlexAudioReference[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexAudioReference]]

#### diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexAudioReference[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexAudioReference]]

```python
diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexAudioReference(audio: Tensor, sample_rate: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/references.py#L174)

**المعاملات:**

audio (`torch.Tensor` من الشكل `(channels, num_samples)`) : الموجة المرجعية، أحادية أو ستيريو.

sample_rate (`int`, *اختياري*) : المعدل الذي تنقل به `audio` عيناتها. إذا حُذف، فهو معدل VAE الصوتي نفسه، مما يترك العينات دون تغيير؛ أما أي معدل آخر فيُعاد أخذ عينات الصوت عليه.

مرجع صوتي أو موسيقي: بحد أقصى 3 لكل طلب، ولا يُستخدم أبدًا بمفرده — إذ يجب أن يُقرن المرجع الصوتي بمرجع صورة أو فيديو واحد على الأقل. لا يصل هذا المرجع إلى المُشكِّل (conditioner) بل يُرمَّز بواسطة VAE الصوتي وحده.

#### from_file[[diffusers.modular_pipelines.pika_h3_flex.PikaH3FlexAudioReference.from_file]]

```python
from_file(media)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/pika_h3_flex/references.py#L193)

**المعاملات:**

media (`str` أو `os.PathLike`) : مسار أو عنوان URL للملف الصوتي، أو لفيديو يُستخرج منه المسار الصوتي.

**يعيد:** `PikaH3FlexAudioReference`

موجة الصوت `(channels, num_samples)` من نوع float32 عند معدل العينة الذي يبلّغ عنه الحاوية.

فكّ ترميز ملف صوتي إلى `PikaH3FlexAudioReference`، بمعدل العينة الذي يحمله.

يتطلب [PyAV](https://github.com/PyAV-Org/PyAV).

