# Motif-Video

[التقرير التقني](https://arxiv.org/abs/2604.16503)

Motif-Video هو نموذج تحويل انتشاري (diffusion transformer) يحتوي على 2 مليار معامل، مصمم لتوليد الفيديو من النص وتوليد الفيديو من الصورة. يتميز بهيكلية من ثلاث مراحل تتكون من 12 طبقة فك تشفير مزدوجة التدفق + 16 طبقة فك تشفير أحادية التدفق + 8 طبقات فك تشفير DDT، مع استخدام الانتباه المتقاطع المشترك (Shared Cross-Attention) لضمان محاذاة مستقرة بين النص والفيديو في تسلسلات الفيديو الطويلة، بالإضافة إلى مشفر النص T5Gemma2، وتطابق التدفق المستقيم (rectified flow matching) للتنبؤ بالسرعة.

  

## توليد الفيديو من النص

استخدم `MotifVideoPipeline` لتوليد الفيديو من النص:

```python
import torch
from diffusers import MotifVideoPipeline
from diffusers.utils import export_to_video

pipe = MotifVideoPipeline.from_pretrained(
    "Motif-Technologies/Motif-Video-2B",
    dtype=torch.bfloat16,
)
pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "A woman with long brown hair and light skin smiles at another woman with long blonde hair."
negative_prompt = "worst quality, inconsistent motion, blurry, jittery, distorted"

video = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    width=1280,
    height=736,
    num_frames=121,
    num_inference_steps=50,
).frames[0]
export_to_video(video, "output.mp4", fps=24)
```

## توليد الفيديو من الصورة

استخدم `MotifVideoImage2VideoPipeline` لتوليد الفيديو من الصورة:

```python
import torch
from diffusers import MotifVideoImage2VideoPipeline
from diffusers.utils import export_to_video, load_image

pipe = MotifVideoImage2VideoPipeline.from_pretrained(
    "Motif-Technologies/Motif-Video-2B",
    dtype=torch.bfloat16,
)
pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = load_image("input_image.png")
prompt = "A cinematic scene with vivid colors."
negative_prompt = "worst quality, blurry, jittery, distorted"

video = pipe(
    image=image,
    prompt=prompt,
    negative_prompt=negative_prompt,
    width=1280,
    height=736,
    num_frames=121,
    num_inference_steps=50,
).frames[0]
export_to_video(video, "i2v_output.mp4", fps=24)
```

### الاستدلال الموفّر للذاكرة

بالنسبة للوحدات المعالجة الرسومية التي تقل ذاكرتها المخصصة (VRAM) عن 30 جيجابايت (مثل RTX 4090)، استخدم نقل النموذج إلى وحدة المعالجة المركزية (CPU offloading):

```bash
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
```

```python
import torch
from diffusers import MotifVideoPipeline
from diffusers.utils import export_to_video

pipe = MotifVideoPipeline.from_pretrained(
    "Motif-Technologies/Motif-Video-2B",
    dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()

prompt = "A woman with long brown hair and light skin smiles at another woman with long blonde hair."
negative_prompt = "worst quality, inconsistent motion, blurry, jittery, distorted"

video = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    width=1280,
    height=736,
    num_frames=121,
    num_inference_steps=50,
).frames[0]
export_to_video(video, "output.mp4", fps=24)
```

## MotifVideoPipeline[[diffusers.MotifVideoPipeline]]

#### diffusers.MotifVideoPipeline[[diffusers.MotifVideoPipeline]]

```python
diffusers.MotifVideoPipeline(scheduler: SchedulerMixin, vae: AutoencoderKLWan, text_encoder: T5Gemma2Encoder, tokenizer: PreTrainedTokenizerBase, transformer: MotifVideoTransformer3DModel, guider: BaseGuidance, feature_extractor: typing.Optional[transformers.models.siglip.image_processing_pil_siglip.SiglipImageProcessorPil] = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/motif_video/pipeline_motif_video.py#L148)

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

transformer ([MotifVideoTransformer3DModel](/docs/diffusers/v0.43.0/ar/api/models/motif_video_transformer_3d#diffusers.MotifVideoTransformer3DModel)) : بنية Transformer شرطية لإزالة الضوضاء من كامنات الفيديو المُرمّزة.

scheduler ([SchedulerMixin](/docs/diffusers/v0.43.0/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `transformer` لإزالة الضوضاء من كامنات الفيديو المُرمّزة. يجب أن يكون مثيلًا لفئة ترث من `SchedulerMixin`، مثل [DPMSolverMultistepScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler). إذا لم يُقدَّم، يُستخدم المُجدول المرتبط بالنموذج المُدرَّب مسبقًا.

vae ([AutoencoderKLWan](/docs/diffusers/v0.43.0/ar/api/models/autoencoder_kl_wan#diffusers.AutoencoderKLWan)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير مقاطع الفيديو إلى تمثيلات كامنة ومنها.

text_encoder (`T5Gemma2Encoder`) : مُشفِّر النص الأساسي لتحويل أوامر النص إلى تمثيلات متجهة.

tokenizer (`PreTrainedTokenizerBase`) : مُرمِّز (Tokenizer) يتوافق مع مُرمِّز النص الأساسي.

guider ([BaseGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.BaseGuidance)) : طريقة التوجيه المستخدمة. يجب أن تكون نسخة من فئة ترث من `BaseGuidance`، مثل [ClassifierFreeGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance) أو [AdaptiveProjectedGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.AdaptiveProjectedGuidance) أو [SkipLayerGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.SkipLayerGuidance). إذا لم تُقدَّم، فإن القيمة الافتراضية هي `ClassifierFreeGuidance`.

خط أنابيب لتوليد الفيديو من النص باستخدام Motif-Video.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/v0.43.0/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

#### __call__[[diffusers.MotifVideoPipeline.__call__]]

```python
__call__(prompt: typing.Union[str, typing.List[str], NoneType] = None, negative_prompt: typing.Union[str, typing.List[str], NoneType] = None, height: int = 736, width: int = 1280, num_frames: int = 121, num_inference_steps: int = 50, timesteps: typing.Optional[typing.List[int]] = None, num_videos_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, callback_on_step_end: typing.Union[typing.Callable[[int, int, typing.Dict], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: typing.List[str] = ['latents'], max_sequence_length: int = 512, vae_batch_size: int | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/motif_video/pipeline_motif_video.py#L492)

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

prompt (`str` أو `List[str]`، *اختياري*) : الأمر أو الأوامر التي تُوجّه توليد الفيديو. إذا لم يُعرَّف، يجب تمرير `prompt_embeds`.

negative_prompt (`str` أو `List[str]`، *اختياري*) : الأمر أو الأوامر التي لا ينبغي أن توجه توليد الفيديو. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً من ذلك. يتم تجاهله عند عدم استخدام التوجيه.

height (`int`، القيمة الافتراضية `736`) : ارتفاع الفيديو المولّد بالبكسلات.

width (`int`، القيمة الافتراضية `1280`) : عرض الفيديو المولّد بالبكسلات.

num_frames (`int`، القيمة الافتراضية `121`) : عدد إطارات الفيديو التي سيتم توليدها.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء. تؤدي زيادة عدد خطوات إزالة الضوضاء عادةً إلى فيديو بجودة أعلى على حساب بطء الاستدلال.

timesteps (`List[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء.

num_videos_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد مقاطع الفيديو التي سيتم توليدها لكل موجه.

generator (`torch.Generator` أو `List[torch.Generator]`، *اختياري*) : كائنات مولّد PyTorch للتوليد الحتمي.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا.

prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النص.

negative_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا.

negative_prompt_attention_mask (`torch.FloatTensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النصوص السلبية.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة مخرجات الفيديو المولّد. اختر بين `"pil"` أو `"np"` أو `"latent"`.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [~MotifVideoPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput) بدلاً من tuple عادي.

attention_kwargs (`dict`، *اختياري*) : الحُجج المُمرَّرة إلى مُعالِج الانتباه.

callback_on_step_end (`Callable`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` أو `MultiPipelineCallbacks` تُستدعى في نهاية كل خطوة إزالة ضوضاء.

callback_on_step_end_tensor_inputs (`List`، *اختياري*) : قائمة مدخلات المصفوفات (tensors) لدالة `callback_on_step_end`.

max_sequence_length (`int`، القيمة الافتراضية هي `512`) : الحد الأقصى لطول التسلسل لمُقسِّم النص.

vae_batch_size (`int`, *اختياري*) : حجم الدفعة (Batch size) لفك ترميز VAE. إذا تم تقديمه وكان حجم دفعة الكمون (latents) أكبر، فسيتم تنفيذ فك ترميز VAE على شكل أجزاء (chunks).

**يعيد:** [~MotifVideoPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [~MotifVideoPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput)، وإلا يُعاد `tuple` حيث يكون العنصر الأول قائمة بإطارات الفيديو المولّدة.

دالة الاستدعاء call لخط الأنابيب pipeline لتوليد الفيديو من النص.

أمثلة:
```python
>>> import torch
>>> from diffusers import MotifVideoPipeline
>>> from diffusers.utils import export_to_video

>>> # Load the Motif-Video pipeline
>>> motif_video_model_id = "Motif-Technologies/Motif-Video-2B"
>>> pipe = MotifVideoPipeline.from_pretrained(motif_video_model_id, torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")

>>> prompt = "A woman with long brown hair and light skin smiles at another woman with long blonde hair. The woman with brown hair wears a black jacket and has a small, barely noticeable mole on her right cheek. The camera angle is a close-up, focused on the woman with brown hair's face. The lighting is warm and natural, likely from the setting sun, casting a soft glow on the scene. The scene appears to be real-life footage"
>>> negative_prompt = "worst quality, inconsistent motion, blurry, jittery, distorted"

>>> video = pipe(
...     prompt=prompt,
...     negative_prompt=negative_prompt,
...     width=1280,
...     height=736,
...     num_frames=121,
...     num_inference_steps=50,
... ).frames[0]
>>> export_to_video(video, "output.mp4", fps=24)
```

#### encode_prompt[[diffusers.MotifVideoPipeline.encode_prompt]]

```python
encode_prompt(prompt: typing.Union[str, typing.List[str]], negative_prompt: typing.Union[str, typing.List[str], NoneType] = None, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 512, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/motif_video/pipeline_motif_video.py#L247)

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

prompt (`str` أو `List[str]`، *اختياري*) : الموجه أو الموجهات التي سيتم ترميزها.

negative_prompt (`str` أو `List[str]`، *اختياري*) : الأمر أو الأوامر التي لا ينبغي أن توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً منه. يتم تجاهله عند عدم استخدام التوجيه (أي يُتجاهل إذا كان `guidance_scale` أقل من `1`).

num_videos_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد مقاطع الفيديو التي سيتم توليدها لكل موجه.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النص.

negative_prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النصوص السلبية.

max_sequence_length (`int`، القيمة الافتراضية 512) : الحد الأقصى لطول التسلسل لمُقسِّم النص.

device (`torch.device`، *اختياري*) : الجهاز الذي سيتم وضع المصفوفات عليه.

dtype (`torch.dtype`، *اختياري*) : نوع البيانات للمصفوفات.

**يعيد:** `tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]`

مجموعة (tuple) تحتوي على:
- `prompt_embeds`: تمثيلات النص الخاصة بالموجّه الإيجابي
- `negative_prompt_embeds`: تمثيلات النص للموجّه السلبي (None إذا لم يتم استخدام التوجيه)
- `prompt_attention_mask`: قناع الانتباه للموجّه الإيجابي
- `negative_prompt_attention_mask`: قناع الانتباه للموجبة السلبية (None إذا لم يتم استخدام التوجيه)

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

## MotifVideoImage2VideoPipeline[[diffusers.MotifVideoImage2VideoPipeline]]

#### diffusers.MotifVideoImage2VideoPipeline[[diffusers.MotifVideoImage2VideoPipeline]]

```python
diffusers.MotifVideoImage2VideoPipeline(scheduler: SchedulerMixin, vae: AutoencoderKLWan, text_encoder: T5Gemma2Encoder, tokenizer: PreTrainedTokenizerBase, transformer: MotifVideoTransformer3DModel, guider: BaseGuidance, feature_extractor: SiglipImageProcessorPil)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/motif_video/pipeline_motif_video_image2video.py#L157)

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

transformer ([MotifVideoTransformer3DModel](/docs/diffusers/v0.43.0/ar/api/models/motif_video_transformer_3d#diffusers.MotifVideoTransformer3DModel)) : بنية Transformer شرطية لإزالة الضوضاء من كامنات الفيديو المُرمّزة.

scheduler ([SchedulerMixin](/docs/diffusers/v0.43.0/ar/api/schedulers/overview#diffusers.SchedulerMixin)) : مُجدول يُستخدم بالاقتران مع `transformer` لإزالة الضوضاء من كامنات الفيديو المُرمّزة. يجب أن يكون مثيلًا لفئة ترث من `SchedulerMixin`، مثل [DPMSolverMultistepScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler). إذا لم يُقدَّم، يُستخدم المُجدول المرتبط بالنموذج المُدرَّب مسبقًا.

vae ([AutoencoderKLWan](/docs/diffusers/v0.43.0/ar/api/models/autoencoder_kl_wan#diffusers.AutoencoderKLWan)) : نموذج الترميز التحويلي التبايني (VAE) لتشفير وفك تشفير مقاطع الفيديو إلى تمثيلات كامنة ومنها.

text_encoder (`T5Gemma2Encoder`) : مُشفِّر النص الأساسي لتحويل أوامر النص إلى تمثيلات متجهة.

tokenizer (`PreTrainedTokenizerBase`) : مُرمِّز (Tokenizer) يتوافق مع مُرمِّز النص الأساسي.

feature_extractor (`SiglipImageProcessor`) : معالج صور لمُشفِّر الرؤية SigLIP.

guider ([BaseGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.BaseGuidance)) : طريقة التوجيه المستخدمة. يجب أن تكون نسخة من فئة ترث من `BaseGuidance`، مثل [ClassifierFreeGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance) أو [AdaptiveProjectedGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.AdaptiveProjectedGuidance) أو [SkipLayerGuidance](/docs/diffusers/v0.43.0/ar/api/modular_diffusers/guiders#diffusers.SkipLayerGuidance). إذا لم تُقدَّم، فإن القيمة الافتراضية هي `ClassifierFreeGuidance`.

خط أنابيب لتوليد الفيديو من الصورة باستخدام Motif-Video مع اشتراط الإطار الأول.

يرث هذا النموذج من [DiffusionPipeline](/docs/diffusers/v0.43.0/ar/api/pipelines/overview#diffusers.DiffusionPipeline). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة المُنفَّذة لجميع خطوط الأنابيب (التنزيل، الحفظ، التشغيل على جهاز معين، إلخ).

#### __call__[[diffusers.MotifVideoImage2VideoPipeline.__call__]]

```python
__call__(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], prompt: typing.Union[str, typing.List[str]], negative_prompt: typing.Union[str, typing.List[str], NoneType] = None, height: int = 736, width: int = 1280, num_frames: int = 121, num_inference_steps: int = 50, timesteps: typing.Optional[typing.List[int]] = None, num_videos_per_prompt: typing.Optional[int] = 1, generator: typing.Union[torch.Generator, typing.List[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, output_type: typing.Optional[str] = 'pil', return_dict: bool = True, attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, callback_on_step_end: typing.Union[typing.Callable[[int, int, typing.Dict], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: typing.List[str] = ['latents'], max_sequence_length: int = 512)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/motif_video/pipeline_motif_video_image2video.py#L620)

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

image (`PipelineImageInput`) : الصورة المُدخلة التي تُستخدم كإطار أولي لتوليد الفيديو.

prompt (`str` أو `List[str]`) : الأمر أو الأوامر التي تُوجّه توليد الفيديو.

negative_prompt (`str` أو `List[str]`، *اختياري*) : الأمر أو الأوامر التي لا ينبغي استخدامها لتوجيه توليد الفيديو.

height (`int`، القيمة الافتراضية `736`) : ارتفاع الفيديو المولّد بالبكسلات.

width (`int`، القيمة الافتراضية `1280`) : عرض الفيديو المولّد بالبكسلات.

num_frames (`int`، القيمة الافتراضية `121`) : عدد إطارات الفيديو التي سيتم توليدها.

num_inference_steps (`int`، *اختياري*، القيمة الافتراضية 50) : عدد خطوات إزالة الضوضاء.

timesteps (`List[int]`، *اختياري*) : خطوات زمنية مخصصة لاستخدامها في عملية إزالة الضوضاء.

num_videos_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد مقاطع الفيديو التي سيتم توليدها لكل موجه.

generator (`torch.Generator` أو `List[torch.Generator]`، *اختياري*) : كائنات مولّد PyTorch للتوليد الحتمي.

latents (`torch.Tensor`، *اختياري*) : كامنات ضجيج مُولّدة مسبقًا.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا.

prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النص.

negative_prompt_embeds (`torch.FloatTensor`، *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا.

negative_prompt_attention_mask (`torch.FloatTensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النصوص السلبية.

output_type (`str`، *اختياري*، الافتراضي `"pil"`) : صيغة مخرجات الفيديو المولّد.

return_dict (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [~MotifVideoPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput) بدلاً من tuple عادي.

attention_kwargs (`dict`، *اختياري*) : الحُجج المُمرَّرة إلى مُعالِج الانتباه.

callback_on_step_end (`Callable`، *اختياري*) : دالة أو فئة فرعية من `PipelineCallback` تُستدعى في نهاية كل خطوة إزالة ضوضاء.

callback_on_step_end_tensor_inputs (`List`، *اختياري*) : قائمة مدخلات المصفوفات (tensors) لدالة `callback_on_step_end`.

max_sequence_length (`int`، القيمة الافتراضية هي `512`) : الحد الأقصى لطول التسلسل لمُقسِّم النص.

**يعيد:** [~MotifVideoPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput) أو `tuple`

إذا كان `return_dict` هو `True`، يُعاد [~MotifVideoPipelineOutput](/docs/diffusers/v0.43.0/ar/api/pipelines/motif_video#diffusers.MotifVideoPipelineOutput)، وإلا يُعاد `tuple` حيث يكون العنصر الأول قائمة بإطارات الفيديو المولّدة.

دالة الاستدعاء call لخط الأنابيب pipeline لتوليد الفيديو من الصورة.

أمثلة:
```python
>>> import torch
>>> from PIL import Image
>>> from diffusers import MotifVideoImage2VideoPipeline
>>> from diffusers.utils import export_to_video, load_image

>>> # Load the Motif-Video image-to-video pipeline
>>> motif_video_model_id = "Motif-Technologies/Motif-Video-2B"
>>> pipe = MotifVideoImage2VideoPipeline.from_pretrained(motif_video_model_id, torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")

>>> # Load an image
>>> image = load_image(
...     "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/astronaut.png"
... )

>>> prompt = "An astronaut is walking on the moon surface, kicking up dust with each step"
>>> negative_prompt = "worst quality, inconsistent motion, blurry, jittery, distorted"

>>> video = pipe(
...     image=image,
...     prompt=prompt,
...     negative_prompt=negative_prompt,
...     width=1280,
...     height=736,
...     num_frames=121,
...     num_inference_steps=50,
... ).frames[0]
>>> export_to_video(video, "output.mp4", fps=24)
```

#### encode_prompt[[diffusers.MotifVideoImage2VideoPipeline.encode_prompt]]

```python
encode_prompt(prompt: typing.Union[str, typing.List[str]], negative_prompt: typing.Union[str, typing.List[str], NoneType] = None, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 512, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/motif_video/pipeline_motif_video_image2video.py#L259)

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

prompt (`str` أو `List[str]`، *اختياري*) : الموجه أو الموجهات التي سيتم ترميزها.

negative_prompt (`str` أو `List[str]`، *اختياري*) : الأمر أو الأوامر التي لا ينبغي أن توجّه توليد الصورة. إذا لم يُعرَّف، يجب تمرير `negative_prompt_embeds` بدلاً منه. يتم تجاهله عند عدم استخدام التوجيه (أي يُتجاهل إذا كان `guidance_scale` أقل من `1`).

num_videos_per_prompt (`int`، *اختياري*، القيمة الافتراضية 1) : عدد مقاطع الفيديو التي سيتم توليدها لكل موجه.

prompt_embeds (`torch.Tensor`، *اختياري*) : تمثيلات نصية مُولّدة مسبقًا.

negative_prompt_embeds (`torch.Tensor`, *اختياري*) : تمثيلات نصية سالبة مُولّدة مسبقًا. يمكن استخدامها لتعديل مدخلات النص بسهولة، *مثلًا* وزن الأوامر. إذا لم تُقدَّم، فسيتم توليد negative_prompt_embeds من معامل الإدخال `negative_prompt`.

prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النص.

negative_prompt_attention_mask (`torch.Tensor`، *اختياري*) : قناع انتباه مُولّد مسبقًا لتضمينات النصوص السلبية.

max_sequence_length (`int`، القيمة الافتراضية 512) : الحد الأقصى لطول التسلسل لمُقسِّم النص.

device (`torch.device`، *اختياري*) : الجهاز الذي سيتم وضع المصفوفات عليه.

dtype (`torch.dtype`، *اختياري*) : نوع البيانات للمصفوفات.

**يعيد:** `tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]`

مجموعة (tuple) تحتوي على:
- `prompt_embeds`: تمثيلات النص الخاصة بالموجّه الإيجابي
- `negative_prompt_embeds`: تمثيلات النص للموجّه السلبي (None إذا لم يتم استخدام التوجيه)
- `prompt_attention_mask`: قناع الانتباه للموجّه الإيجابي
- `negative_prompt_attention_mask`: قناع الانتباه للموجبة السلبية (None إذا لم يتم استخدام التوجيه)

يقوم بتشفير الموجه إلى حالات مخفية لمشفّر النص.

## MotifVideoPipelineOutput[[diffusers.MotifVideoPipelineOutput]]

#### diffusers.MotifVideoPipelineOutput[[diffusers.MotifVideoPipelineOutput]]

```python
diffusers.MotifVideoPipelineOutput(frames: Tensor)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/motif_video/pipeline_output.py#L9)

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

frames (`torch.Tensor`، `np.ndarray`، أو List[List[PIL.Image.Image]]) : قائمة من مخرجات الفيديو - يمكن أن تكون قائمة متداخلة بطول `batch_size,` حيث تحتوي كل قائمة فرعية على تسلسلات صور PIL منزوعة الضوضاء بطول `num_frames.` كما يمكن أن تكون مصفوفة NumPy أو متجه Torch بأبعاد `(batch_size, num_frames, channels, height, width)`.

فئة الإخراج لخطوط أنابيب Motif-Video.

