---
read_when:
    - إنشاء مقاطع فيديو عبر الوكيل
    - إعداد موفري ونماذج توليد الفيديو
    - فهم معلمات أداة `video_generate`
summary: أنشئ مقاطع فيديو من نصوص أو صور أو مقاطع فيديو موجودة باستخدام 14 واجهة مزوّد خلفية
title: توليد الفيديو
x-i18n:
    generated_at: "2026-04-15T07:18:45Z"
    model: gpt-5.4
    provider: openai
    source_hash: c182f24b25e44f157a820e82a1f7422247f26125956944b5eb98613774268cfe
    source_path: tools/video-generation.md
    workflow: 15
---

# توليد الفيديو

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

<Note>
تظهر أداة `video_generate` فقط عند توفر مزوّد واحد على الأقل لتوليد الفيديو. إذا لم ترها ضمن أدوات الوكيل، فقم بتعيين مفتاح API لمزوّد أو اضبط `agents.defaults.videoGenerationModel`.
</Note>

يتعامل OpenClaw مع توليد الفيديو على أنه ثلاثة أوضاع تشغيل:

- `generate` لطلبات النص إلى فيديو التي لا تحتوي على وسائط مرجعية
- `imageToVideo` عندما يتضمن الطلب صورة مرجعية واحدة أو أكثر
- `videoToVideo` عندما يتضمن الطلب مقطع فيديو مرجعيًا واحدًا أو أكثر

يمكن للمزوّدين دعم أي مجموعة فرعية من هذه الأوضاع. تتحقق الأداة من الوضع
النشط قبل الإرسال وتعرض الأوضاع المدعومة في `action=list`.

## البدء السريع

1. عيّن مفتاح API لأي مزوّد مدعوم:

```bash
export GEMINI_API_KEY="your-key"
```

2. اختياريًا، ثبّت نموذجًا افتراضيًا:

```bash
openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
```

3. اطلب من الوكيل:

> أنشئ فيديو سينمائيًا مدته 5 ثوانٍ لكركند ودود يتزلج على الأمواج عند الغروب.

سيستدعي الوكيل `video_generate` تلقائيًا. لا حاجة إلى قائمة سماح للأدوات.

## ماذا يحدث عند إنشاء فيديو

توليد الفيديو غير متزامن. عندما يستدعي الوكيل `video_generate` في جلسة:

1. يرسل OpenClaw الطلب إلى المزوّد ويعيد فورًا معرّف مهمة.
2. يعالج المزوّد المهمة في الخلفية (عادةً من 30 ثانية إلى 5 دقائق حسب المزوّد والدقة).
3. عندما يصبح الفيديو جاهزًا، يوقظ OpenClaw الجلسة نفسها عبر حدث إكمال داخلي.
4. ينشر الوكيل الفيديو المكتمل مرة أخرى في المحادثة الأصلية.

أثناء تنفيذ مهمة، فإن استدعاءات `video_generate` المكررة في الجلسة نفسها تعيد حالة المهمة الحالية بدلًا من بدء عملية توليد أخرى. استخدم `openclaw tasks list` أو `openclaw tasks show <taskId>` للتحقق من التقدم من خلال CLI.

خارج عمليات تشغيل الوكيل المدعومة بجلسة (على سبيل المثال، استدعاءات الأدوات المباشرة)، تعود الأداة إلى التوليد المضمن وتعيد مسار الوسائط النهائي في الدورة نفسها.

### دورة حياة المهمة

يمر كل طلب `video_generate` عبر أربع حالات:

1. **queued** -- تم إنشاء المهمة، وهي بانتظار أن يقبلها المزوّد.
2. **running** -- يعالج المزوّد المهمة (عادةً من 30 ثانية إلى 5 دقائق حسب المزوّد والدقة).
3. **succeeded** -- أصبح الفيديو جاهزًا؛ يوقظ الوكيل نفسه وينشره في المحادثة.
4. **failed** -- خطأ من المزوّد أو انتهاء مهلة؛ يوقظ الوكيل نفسه مع تفاصيل الخطأ.

تحقق من الحالة من خلال CLI:

```bash
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
```

منع التكرار: إذا كانت هناك مهمة فيديو بحالة `queued` أو `running` بالفعل للجلسة الحالية، فإن `video_generate` يعيد حالة المهمة الموجودة بدلًا من بدء مهمة جديدة. استخدم `action: "status"` للتحقق صراحةً من دون تشغيل عملية توليد جديدة.

## المزوّدون المدعومون

| المزوّد              | النموذج الافتراضي               | نص  | مرجع صورة                                            | مرجع فيديو       | مفتاح API                                 |
| -------------------- | ------------------------------- | --- | ---------------------------------------------------- | ---------------- | ----------------------------------------- |
| Alibaba              | `wan2.6-t2v`                    | نعم | نعم (URL بعيد)                                       | نعم (URL بعيد)   | `MODELSTUDIO_API_KEY`                     |
| BytePlus (1.0)       | `seedance-1-0-pro-250528`       | نعم | حتى صورتين (لنماذج I2V فقط؛ الإطار الأول + الأخير)   | لا               | `BYTEPLUS_API_KEY`                        |
| BytePlus Seedance 1.5 | `seedance-1-5-pro-251215`      | نعم | حتى صورتين (الإطار الأول + الأخير عبر role)          | لا               | `BYTEPLUS_API_KEY`                        |
| BytePlus Seedance 2.0 | `dreamina-seedance-2-0-260128` | نعم | حتى 9 صور مرجعية                                     | حتى 3 مقاطع فيديو | `BYTEPLUS_API_KEY`                        |
| ComfyUI              | `workflow`                      | نعم | صورة واحدة                                           | لا               | `COMFY_API_KEY` أو `COMFY_CLOUD_API_KEY`  |
| fal                  | `fal-ai/minimax/video-01-live`  | نعم | صورة واحدة                                           | لا               | `FAL_KEY`                                 |
| Google               | `veo-3.1-fast-generate-preview` | نعم | صورة واحدة                                           | مقطع فيديو واحد  | `GEMINI_API_KEY`                          |
| MiniMax              | `MiniMax-Hailuo-2.3`            | نعم | صورة واحدة                                           | لا               | `MINIMAX_API_KEY`                         |
| OpenAI               | `sora-2`                        | نعم | صورة واحدة                                           | مقطع فيديو واحد  | `OPENAI_API_KEY`                          |
| Qwen                 | `wan2.6-t2v`                    | نعم | نعم (URL بعيد)                                       | نعم (URL بعيد)   | `QWEN_API_KEY`                            |
| Runway               | `gen4.5`                        | نعم | صورة واحدة                                           | مقطع فيديو واحد  | `RUNWAYML_API_SECRET`                     |
| Together             | `Wan-AI/Wan2.2-T2V-A14B`        | نعم | صورة واحدة                                           | لا               | `TOGETHER_API_KEY`                        |
| Vydra                | `veo3`                          | نعم | صورة واحدة (`kling`)                                 | لا               | `VYDRA_API_KEY`                           |
| xAI                  | `grok-imagine-video`            | نعم | صورة واحدة                                           | مقطع فيديو واحد  | `XAI_API_KEY`                             |

تقبل بعض المزوّدين متغيرات بيئة إضافية أو بديلة لمفتاح API. راجع [صفحات المزوّد](#related) الفردية للحصول على التفاصيل.

شغّل `video_generate action=list` لفحص المزوّدين والنماذج وأوضاع التشغيل
المتاحة في وقت التشغيل.

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

هذا هو عقد الأوضاع الصريح الذي تستخدمه `video_generate` واختبارات العقد
وعملية الفحص الحي المشتركة.

| المزوّد | `generate` | `imageToVideo` | `videoToVideo` | مسارات الاختبار الحي المشتركة اليوم                                                                                                      |
| ------- | ---------- | -------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Alibaba | نعم        | نعم            | نعم            | `generate`، `imageToVideo`؛ يتم تخطي `videoToVideo` لأن هذا المزوّد يحتاج إلى عناوين URL لفيديو بعيدة من نوع `http(s)`                  |
| BytePlus | نعم       | نعم            | لا             | `generate`، `imageToVideo`                                                                                                                |
| ComfyUI | نعم        | نعم            | لا             | غير موجود في الفحص المشترك؛ وتوجد التغطية الخاصة بسير العمل ضمن اختبارات Comfy                                                          |
| fal     | نعم        | نعم            | لا             | `generate`، `imageToVideo`                                                                                                                |
| Google  | نعم        | نعم            | نعم            | `generate`، `imageToVideo`؛ يتم تخطي `videoToVideo` المشترك لأن فحص Gemini/Veo الحالي المعتمد على buffer لا يقبل هذا الإدخال          |
| MiniMax | نعم        | نعم            | لا             | `generate`، `imageToVideo`                                                                                                                |
| OpenAI  | نعم        | نعم            | نعم            | `generate`، `imageToVideo`؛ يتم تخطي `videoToVideo` المشترك لأن هذا المسار للمؤسسة/الإدخال يحتاج حاليًا إلى وصول inpaint/remix من جهة المزوّد |
| Qwen    | نعم        | نعم            | نعم            | `generate`، `imageToVideo`؛ يتم تخطي `videoToVideo` لأن هذا المزوّد يحتاج إلى عناوين URL لفيديو بعيدة من نوع `http(s)`                  |
| Runway  | نعم        | نعم            | نعم            | `generate`، `imageToVideo`؛ لا يعمل `videoToVideo` إلا عندما يكون النموذج المحدد هو `runway/gen4_aleph`                                  |
| Together | نعم       | نعم            | لا             | `generate`، `imageToVideo`                                                                                                                |
| Vydra   | نعم        | نعم            | لا             | `generate`؛ يتم تخطي `imageToVideo` المشترك لأن `veo3` المجمّع نصي فقط و`kling` المجمّع يتطلب URL صورة بعيدًا                           |
| xAI     | نعم        | نعم            | نعم            | `generate`، `imageToVideo`؛ يتم تخطي `videoToVideo` لأن هذا المزوّد يحتاج حاليًا إلى URL بعيد لملف MP4                                   |

## معلمات الأداة

### مطلوبة

| المعلمة | النوع  | الوصف                                                                    |
| ------- | ------ | ------------------------------------------------------------------------ |
| `prompt`| string | وصف نصي للفيديو المراد إنشاؤه (مطلوب لـ `action: "generate"`)           |

### مدخلات المحتوى

| المعلمة     | النوع    | الوصف                                                                                                                              |
| ----------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `image`     | string   | صورة مرجعية واحدة (مسار أو URL)                                                                                                    |
| `images`    | string[] | عدة صور مرجعية (حتى 9)                                                                                                             |
| `imageRoles`| string[] | تلميحات role اختيارية لكل موضع بالتوازي مع قائمة الصور المجمعة. القيم القياسية: `first_frame` و`last_frame` و`reference_image`   |
| `video`     | string   | مقطع فيديو مرجعي واحد (مسار أو URL)                                                                                                |
| `videos`    | string[] | عدة مقاطع فيديو مرجعية (حتى 4)                                                                                                     |
| `videoRoles`| string[] | تلميحات role اختيارية لكل موضع بالتوازي مع قائمة الفيديو المجمعة. القيمة القياسية: `reference_video`                              |
| `audioRef`  | string   | مرجع صوتي واحد (مسار أو URL). يُستخدم مثلًا للموسيقى الخلفية أو مرجع الصوت عندما يدعم المزوّد مدخلات الصوت                        |
| `audioRefs` | string[] | عدة مراجع صوتية (حتى 3)                                                                                                            |
| `audioRoles`| string[] | تلميحات role اختيارية لكل موضع بالتوازي مع قائمة الصوت المجمعة. القيمة القياسية: `reference_audio`                                 |

يتم تمرير تلميحات role إلى المزوّد كما هي. تأتي القيم القياسية من
اتحاد `VideoGenerationAssetRole` لكن قد تقبل بعض المزوّدات سلاسل role
إضافية. يجب ألا تحتوي مصفوفات `*Roles` على إدخالات أكثر من
قائمة المراجع المقابلة؛ تؤدي أخطاء الزيادة أو النقصان بمقدار واحد إلى فشل
واضح برسالة خطأ. استخدم سلسلة فارغة لترك موضع من دون تعيين.

### عناصر التحكم في النمط

| المعلمة          | النوع   | الوصف                                                                                  |
| ---------------- | ------- | -------------------------------------------------------------------------------------- |
| `aspectRatio`    | string  | ‏`1:1` أو `2:3` أو `3:2` أو `3:4` أو `4:3` أو `4:5` أو `5:4` أو `9:16` أو `16:9` أو `21:9` أو `adaptive` |
| `resolution`     | string  | ‏`480P` أو `720P` أو `768P` أو `1080P`                                                 |
| `durationSeconds`| number  | المدة المستهدفة بالثواني (تُقرّب إلى أقرب قيمة يدعمها المزوّد)                        |
| `size`           | string  | تلميح للحجم عندما يدعمه المزوّد                                                        |
| `audio`          | boolean | تفعيل الصوت المُولَّد في المخرجات عند دعمه. وهو مختلف عن `audioRef*` (المدخلات)       |
| `watermark`      | boolean | تبديل العلامة المائية الخاصة بالمزوّد عند دعمها                                        |

تُعد `adaptive` قيمة sentinel خاصة بالمزوّد: يتم تمريرها كما هي إلى
المزوّدين الذين يعلنون `adaptive` ضمن قدراتهم (على سبيل المثال، يستخدمها BytePlus
Seedance لاكتشاف النسبة تلقائيًا من أبعاد
صورة الإدخال). أما المزوّدون الذين لا يعلنون عنها فيعرضون هذه القيمة عبر
`details.ignoredOverrides` في نتيجة الأداة بحيث يكون تجاهلها مرئيًا.

### متقدمة

| المعلمة          | النوع  | الوصف                                                                                                                                                                                                                                                                                                                                           |
| ---------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`         | string | ‏`"generate"` (الافتراضي) أو `"status"` أو `"list"`                                                                                                                                                                                                                                                                                             |
| `model`          | string | تجاوز المزوّد/النموذج (مثل `runway/gen4.5`)                                                                                                                                                                                                                                                                                                     |
| `filename`       | string | تلميح لاسم ملف الإخراج                                                                                                                                                                                                                                                                                                                          |
| `providerOptions`| object | خيارات خاصة بالمزوّد ككائن JSON (مثل `{"seed": 42, "draft": true}`). تقوم المزوّدات التي تعلن مخططًا Typed بالتحقق من المفاتيح والأنواع؛ أما المفاتيح غير المعروفة أو عدم تطابق الأنواع فيؤديان إلى تخطي المرشح أثناء التراجع. وتتلقى المزوّدات التي لا تملك مخططًا معلنًا الخيارات كما هي. شغّل `video_generate action=list` لمعرفة ما الذي يقبله كل مزوّد |

لا تدعم جميع المزوّدات جميع المعلمات. يقوم OpenClaw بالفعل بتطبيع المدة إلى أقرب قيمة يدعمها المزوّد، كما يعيد أيضًا تعيين تلميحات الهندسة المترجمة مثل التحويل من الحجم إلى نسبة العرض إلى الارتفاع عندما يوفّر مزوّد التراجع سطح تحكم مختلفًا. أما قيم التجاوز غير المدعومة فعليًا فيتم تجاهلها بأفضل جهد ممكن ويُبلَّغ عنها كتحذيرات في نتيجة الأداة. وتفشل حدود القدرات الصارمة (مثل كثرة المدخلات المرجعية) قبل الإرسال.

تعرض نتائج الأداة الإعدادات المطبقة. عندما يعيد OpenClaw تعيين المدة أو الهندسة أثناء التراجع بين المزوّدين، فإن القيم المعادة في `durationSeconds` و`size` و`aspectRatio` و`resolution` تعكس ما تم إرساله، بينما يلتقط `details.normalization` ترجمة القيم المطلوبة إلى القيم المطبقة.

تحدد المدخلات المرجعية أيضًا وضع التشغيل:

- بدون وسائط مرجعية: `generate`
- أي مرجع صورة: `imageToVideo`
- أي مرجع فيديو: `videoToVideo`
- لا تغيّر مدخلات الصوت المرجعي الوضع المحدد؛ بل تُطبّق فوق أي وضع تختاره مراجع الصور/الفيديو، ولا تعمل إلا مع المزوّدين الذين يعلنون `maxInputAudios`

لا يُعد خلط مراجع الصور والفيديو سطح قدرات مشتركًا مستقرًا.
ويُفضّل استخدام نوع مرجعي واحد لكل طلب.

#### التراجع والخيارات Typed

يتم تطبيق بعض فحوصات القدرات في طبقة التراجع بدلًا من
حدود الأداة حتى يتمكن الطلب الذي يتجاوز حدود المزوّد الأساسي
من العمل على مزوّد تراجع قادر:

- إذا كان المرشح النشط لا يعلن `maxInputAudios` (أو يعلنه
  على أنه `0`)، فسيتم تخطيه عندما يحتوي الطلب على مراجع صوتية، ثم
  تتم تجربة المرشح التالي.
- إذا كانت قيمة `maxDurationSeconds` لدى المرشح النشط أقل من القيمة المطلوبة
  في `durationSeconds` ولم يكن المرشح يعلن قائمة
  `supportedDurationSeconds`، فسيتم تخطيه.
- إذا احتوى الطلب على `providerOptions` وكان المرشح النشط
  يعلن صراحةً مخطط `providerOptions` Typed، فسيتم
  تخطي المرشح عندما لا تكون المفاتيح المرسلة موجودة في المخطط أو عندما لا
  تتطابق أنواع القيم. أما المزوّدات التي لم تعلن مخططًا بعد فتتلقى
  الخيارات كما هي (تمرير متوافق مع الإصدارات السابقة). ويمكن لمزوّد
  أن ينسحب صراحةً من جميع خيارات المزوّد عبر إعلان مخطط فارغ
  (`capabilities.providerOptions: {}`)، مما يؤدي إلى نفس التخطي الناتج عن
  عدم تطابق النوع.

يتم تسجيل أول سبب تخطٍ في الطلب عند مستوى `warn` حتى يرى المشغّلون
متى تم تجاوز المزوّد الأساسي لديهم؛ أما أسباب التخطي اللاحقة فتُسجَّل عند
`debug` للحفاظ على هدوء سلاسل التراجع الطويلة. وإذا تم تخطي كل المرشحين،
فسيتضمن الخطأ المجمّع سبب التخطي لكل واحد منهم.

## الإجراءات

- **generate** (الافتراضي) -- إنشاء فيديو من المطالبة المحددة مع مدخلات مرجعية اختيارية.
- **status** -- التحقق من حالة مهمة الفيديو الجاري تنفيذها للجلسة الحالية دون بدء عملية توليد أخرى.
- **list** -- عرض المزوّدين والنماذج المتاحة وقدراتها.

## اختيار النموذج

عند إنشاء فيديو، يحدّد OpenClaw النموذج بهذا الترتيب:

1. **معلمة الأداة `model`** -- إذا حدّدها الوكيل في الاستدعاء.
2. **`videoGenerationModel.primary`** -- من الإعدادات.
3. **`videoGenerationModel.fallbacks`** -- تُجرَّب بالترتيب.
4. **الاكتشاف التلقائي** -- يستخدم المزوّدين الذين يملكون مصادقة صالحة، بدءًا من المزوّد الافتراضي الحالي، ثم بقية المزوّدين بترتيب أبجدي.

إذا فشل أحد المزوّدين، تتم تجربة المرشح التالي تلقائيًا. وإذا فشل جميع المرشحين، فسيتضمن الخطأ تفاصيل من كل محاولة.

اضبط `agents.defaults.mediaGenerationAutoProviderFallback: false` إذا كنت تريد
أن يستخدم توليد الفيديو فقط إدخالات `model` و`primary` و`fallbacks`
الصريحة.

```json5
{
  agents: {
    defaults: {
      videoGenerationModel: {
        primary: "google/veo-3.1-fast-generate-preview",
        fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
      },
    },
  },
}
```

## ملاحظات حول المزوّدين

| المزوّد              | الملاحظات                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| -------------------- |   |
| Alibaba              | يستخدم نقطة النهاية غير المتزامنة الخاصة بـ DashScope/Model Studio. يجب أن تكون الصور ومقاطع الفيديو المرجعية عناوين URL بعيدة من نوع `http(s)`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| BytePlus (1.0)       | معرّف المزوّد `byteplus`. النماذج: `seedance-1-0-pro-250528` (الافتراضي)، و`seedance-1-0-pro-t2v-250528`، و`seedance-1-0-pro-fast-251015`، و`seedance-1-0-lite-t2v-250428`، و`seedance-1-0-lite-i2v-250428`. لا تقبل نماذج T2V (`*-t2v-*`) مدخلات الصور؛ بينما تدعم نماذج I2V ونماذج `*-pro-*` العامة صورة مرجعية واحدة (الإطار الأول). مرّر الصورة موضعيًا أو اضبط `role: "first_frame"`. يتم التبديل تلقائيًا من معرّفات نماذج T2V إلى إصدار I2V المقابل عند توفير صورة. مفاتيح `providerOptions` المدعومة: `seed` (رقم)، و`draft` (منطقي، ويفرض دقة 480p)، و`camera_fixed` (منطقي). |
| BytePlus Seedance 1.5 | يتطلب Plugin [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark). معرّف المزوّد `byteplus-seedance15`. النموذج: `seedance-1-5-pro-251215`. يستخدم واجهة `content[]` الموحّدة. يدعم بحد أقصى صورتين للإدخال (first_frame + last_frame). يجب أن تكون جميع المدخلات عناوين URL بعيدة من نوع `https://`. اضبط `role: "first_frame"` / `"last_frame"` على كل صورة، أو مرّر الصور موضعيًا. يقوم `aspectRatio: "adaptive"` باكتشاف النسبة تلقائيًا من صورة الإدخال. يتم ربط `audio: true` إلى `generate_audio`. ويتم تمرير `providerOptions.seed` (رقم).                                            |
| BytePlus Seedance 2.0 | يتطلب Plugin [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark). معرّف المزوّد `byteplus-seedance2`. النماذج: `dreamina-seedance-2-0-260128` و`dreamina-seedance-2-0-fast-260128`. يستخدم واجهة `content[]` الموحّدة. يدعم حتى 9 صور مرجعية و3 مقاطع فيديو مرجعية و3 مراجع صوتية. يجب أن تكون جميع المدخلات عناوين URL بعيدة من نوع `https://`. اضبط `role` على كل أصل — القيم المدعومة: `"first_frame"` و`"last_frame"` و`"reference_image"` و`"reference_video"` و`"reference_audio"`. يقوم `aspectRatio: "adaptive"` باكتشاف النسبة تلقائيًا من صورة الإدخال. يتم ربط `audio: true` إلى `generate_audio`. ويتم تمرير `providerOptions.seed` (رقم). |
| ComfyUI              | تنفيذ محلي أو سحابي قائم على سير العمل. يدعم النص إلى فيديو والصورة إلى فيديو من خلال الرسم البياني الذي تم تكوينه.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| fal                  | يستخدم تدفقًا مدعومًا بالطابور للمهام طويلة التشغيل. يدعم صورة مرجعية واحدة فقط.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Google               | يستخدم Gemini/Veo. يدعم صورة مرجعية واحدة أو مقطع فيديو مرجعي واحد.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| MiniMax              | يدعم صورة مرجعية واحدة فقط.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| OpenAI               | لا يتم تمرير سوى تجاوز `size`. أما تجاوزات النمط الأخرى (`aspectRatio` و`resolution` و`audio` و`watermark`) فيتم تجاهلها مع تحذير.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Qwen                 | يستخدم نفس الخلفية DashScope مثل Alibaba. يجب أن تكون المدخلات المرجعية عناوين URL بعيدة من نوع `http(s)`؛ ويتم رفض الملفات المحلية مسبقًا.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Runway               | يدعم الملفات المحلية عبر data URI. يتطلب وضع الفيديو إلى فيديو `runway/gen4_aleph`. تعرض عمليات التشغيل النصية فقط نسب العرض إلى الارتفاع `16:9` و`9:16`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Together             | يدعم صورة مرجعية واحدة فقط.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Vydra                | يستخدم `https://www.vydra.ai/api/v1` مباشرةً لتجنب عمليات إعادة التوجيه التي تُسقط المصادقة. يتم تجميع `veo3` كنموذج نص إلى فيديو فقط؛ بينما يتطلب `kling` عنوان URL بعيدًا لصورة.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| xAI                  | يدعم تدفقات النص إلى فيديو، والصورة إلى فيديو، وتحرير/تمديد الفيديو البعيد.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |

## أوضاع قدرات المزوّد

يتيح عقد توليد الفيديو المشترك الآن للمزوّدين إعلان قدرات خاصة بكل وضع
بدلًا من حدود مجمعة ومسطحة فقط. يجب أن تفضّل
التنفيذات الجديدة للمزوّدين كتل أوضاع صريحة:

```typescript
capabilities: {
  generate: {
    maxVideos: 1,
    maxDurationSeconds: 10,
    supportsResolution: true,
  },
  imageToVideo: {
    enabled: true,
    maxVideos: 1,
    maxInputImages: 1,
    maxDurationSeconds: 5,
  },
  videoToVideo: {
    enabled: true,
    maxVideos: 1,
    maxInputVideos: 1,
    maxDurationSeconds: 5,
  },
}
```

الحقول المجمعة المسطحة مثل `maxInputImages` و`maxInputVideos` ليست
كافية للإعلان عن دعم أوضاع التحويل. يجب على المزوّدين الإعلان عن
`generate` و`imageToVideo` و`videoToVideo` بشكل صريح حتى تتمكن الاختبارات الحية،
واختبارات العقد، وأداة `video_generate` المشتركة من التحقق من دعم الأوضاع
بشكل حتمي.

## الاختبارات الحية

تغطية حية اختيارية للمزوّدين المجمّعين المشتركين:

```bash
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
```

غلاف المستودع:

```bash
pnpm test:live:media video
```

يقوم هذا الملف الحي بتحميل متغيرات بيئة المزوّد غير الموجودة من `~/.profile`، ويفضّل
مفاتيح API الحية/البيئية على ملفات المصادقة المخزنة افتراضيًا، ويشغّل
اختبار smoke آمنًا للإصدار بشكل افتراضي:

- `generate` لكل مزوّد غير FAL ضمن الفحص
- مطالبة كركند مدتها ثانية واحدة
- حد عمليات لكل مزوّد من `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS`
  (`180000` افتراضيًا)

يكون FAL اختياريًا لأن زمن الانتظار في الطابور من جهة المزوّد قد يهيمن على وقت الإصدار:

```bash
pnpm test:live:media video --video-providers fal
```

اضبط `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1` لتشغيل أوضاع التحويل المعلنة أيضًا
التي يمكن للفحص المشترك تنفيذها بأمان باستخدام وسائط محلية:

- `imageToVideo` عندما تكون `capabilities.imageToVideo.enabled`
- `videoToVideo` عندما تكون `capabilities.videoToVideo.enabled` وكان المزوّد/النموذج
  يقبل إدخال فيديو محليًا معتمدًا على buffer في الفحص المشترك

حاليًا يغطي المسار الحي المشترك `videoToVideo` ما يلي:

- `runway` فقط عندما تختار `runway/gen4_aleph`

## الإعداد

عيّن نموذج توليد الفيديو الافتراضي في إعدادات OpenClaw الخاصة بك:

```json5
{
  agents: {
    defaults: {
      videoGenerationModel: {
        primary: "qwen/wan2.6-t2v",
        fallbacks: ["qwen/wan2.6-r2v-flash"],
      },
    },
  },
}
```

أو عبر CLI:

```bash
openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2v"
```

## ذو صلة

- [نظرة عامة على الأدوات](/ar/tools)
- [المهام الخلفية](/ar/automation/tasks) -- تتبع المهام لتوليد الفيديو غير المتزامن
- [Alibaba Model Studio](/ar/providers/alibaba)
- [BytePlus](/ar/concepts/model-providers#byteplus-international)
- [ComfyUI](/ar/providers/comfy)
- [fal](/ar/providers/fal)
- [Google (Gemini)](/ar/providers/google)
- [MiniMax](/ar/providers/minimax)
- [OpenAI](/ar/providers/openai)
- [Qwen](/ar/providers/qwen)
- [Runway](/ar/providers/runway)
- [Together AI](/ar/providers/together)
- [Vydra](/ar/providers/vydra)
- [xAI](/ar/providers/xai)
- [مرجع الإعدادات](/ar/gateway/configuration-reference#agent-defaults)
- [النماذج](/ar/concepts/models)
