جرّب واجهة Google Gemini Omni 1.1 Flash API لتحرير اللقطات المصدر بتوجيهات بلغة طبيعية مع الحفاظ على التوقيت عند إجراء تغييرات على المشاهد والشخصيات.
تقدّم Google Gemini Omni 1.1 Flash Video Edit API تحسين الفيديو باللغة الطبيعية ضمن سير عمل ملائم للمطورين. حمّل فيديو موجودًا، وصِف التغيير الذي تريد إجراءه، ثم استخدم Gemini video API لإنشاء نسخة معدّلة مع الحفاظ على المقطع الأصلي كنقطة انطلاق إبداعية. وهي متاحة على Best Image AI، وتساعد الفرق على استكشاف تغييرات مرئية محددة من دون إعادة بناء عملية التحرير من البداية.
تحسين الفيديو بتوجيهات نصية: استخدم تعليمات باللغة الطبيعية لتوجيه التغييرات في المظهر أو الحركة أو الأجواء أو المعالجة الإبداعية لمقطع موجود.
سير عمل للتحرير مدرك للمصدر: ابدأ باللقطات المحمّلة كي يستند التعديل إلى التوقيت والعناصر والسياق المرئي للمواد المصدرية.
توجيه التغييرات بحسب السياق: صِف العناصر المطلوب تعديلها والعناصر المطلوب الاحتفاظ بها، ما يساعد الفرق على التعبير عن التعديلات بوصفها غاية إبداعية بدلًا من عمليات يدوية على المخطط الزمني.
تعديل مرئي سينمائي: استكشف اتجاهات جديدة للإضاءة والمزاج ومعالجة المشهد وإحساس الكاميرا انطلاقًا من إدخال فيديو واحد.
جودة إخراج مرنة: اختر مستوى جودة إخراج يناسب المراجعة الداخلية أو التكرار السريع أو متطلبات التسليم النهائي.
تكرار فعّال لفرق الفيديو: أنشئ بدائل مركزة لمقطع مصدري قصير، ما يجعل الواجهة عملية للتجريب ودعم الإنتاج.
الإدخال: مقطع فيديو موجود إلى جانب تعليمات باللغة الطبيعية تصف التعديل المطلوب.
الإخراج: فيديو معدّل يُنشأ عبر سير عمل Gemini Omni 1.1 Flash video-editing API.
اتجاه التحرير: اشرح التغيير المرئي المقصود، مثل بيئة جديدة أو طابع مرئي مختلف أو حركة العنصر أو معالجة المشهد.
التحكم في الجودة: اختر جودة إخراج مناسبة لمرحلة المراجعة أو التسليم في سير العمل.
الإمكانات: تحرير الفيديو بالتوجيهات النصية، والتحسين المدرك للمصدر، وتغييرات معالجة المشهد، وإعادة تصميم المظهر المرئي، و البدائل الإبداعية السريعة.
توطين الحملات: أنشئ معالجات إبداعية جديدة لمقطع حملة موجود مع الحفاظ على نقطة الانطلاق الإنتاجية الأساسية.
تنويعات فيديو وسائل التواصل: أنشئ مظاهر وأجواء واتجاهات مشهد بديلة لمقاطع الفيديو القصيرة المخصصة لقنوات أو جماهير مختلفة.
دعم ما بعد الإنتاج الإبداعي: استكشف تعديلًا مرئيًا قبل تخصيص الوقت لعملية تحرير يدوية كاملة أو إعادة تصوير.
تحديث فيديوهات المنتجات: حدّث طريقة عرض لقطات المنتجات الموجودة بما يناسب اتجاهات موسمية أو تحريرية أو حملات جديدة.
سير عمل المراجعة الآلي: أضف تحسين الفيديو القائم على التعليمات إلى الأدوات الإبداعية الداخلية وأنظمة الموافقة وعمليات المحتوى.
ملاحظة الفيديو المصدري هو أساس التحرير. استخدم تعليمات واضحة تحدد التغيير المقصود و السمات المرئية التي ينبغي الحفاظ على اتساقها للحصول على النتائج الأكثر موثوقية.
Gemini Omni 1.1 Flash مقابل Google Veo Video Editing: يدعم Google Veo مسارات عمل متقدمة للفيديو المولّد. وتقدم Gemini Omni 1.1 Flash مسارًا موجزًا للتحرير باللغة الطبيعية إلى جانب text-to-video وimage-to-video و التوليد القائم على المراجع ضمن العائلة نفسها.
Gemini Omni 1.1 Flash مقابل Runway Video Editing: تقدم Runway مجموعة واسعة من أدوات التحرير المرئي. أما Gemini Omni 1.1 Flash فتركز على سير عمل يعطي الأولوية لواجهة API، حيث يشكل المقطع المصدري والتعليمات النصية أساسًا لتعديل جديد.
Gemini Omni 1.1 Flash مقابل Adobe Firefly Video: ترتبط Adobe Firefly Video ارتباطًا وثيقًا بمسارات عمل البرامج الإبداعية الراسخة. وتوفر Gemini Omni 1.1 Flash للمطورين خيارًا برمجيًا لوصف تعديلات فيديو محددة وإنشائها.
Gemini Omni 1.1 Flash مقابل Kling Video Editing: توفر Kling أدوات فيديو توليدي للإبداع ذي الطابع المميز. وتفيد Gemini Omni 1.1 Flash عندما تحتاج الفرق إلى تحرير مدرك للمصدر من خلال تكامل مباشر مع واجهة API.
Gemini Omni 1.1 Flash مقابل Pika: توفر Pika إمكانات إنشاء سهلة وتجارب تركز على المؤثرات. أما Gemini Omni 1.1 Flash فهي موجهة نحو تحسين الفيديو بالتعليمات بما يمكن دمجه في سير عمل منتج متصل.
const response = await fetch('https://api.flaq.ai/api/v1/video/task', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model_name: 'gemini-omni-1.1-flash-video-edit',
prompt: 'A small ball rolls into the scene and captures the attention of the cat',
video_url: 'https://example.com/source-video.mp4',
resolution: '1080p'
})
});
const { data } = await response.json();
const taskId = data.task_id;
// Step 2: Poll for results
const taskId = data.task_id;
const pollResult = async (taskId) => {
const res = await fetch(`https://api.flaq.ai/api/v1/video/${taskId}`, {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
return res.json();
};
while (true) {
const pollResultData = await pollResult(taskId);
const status = pollResultData.data.task_status;
if (status === 'succeed') {
console.log(pollResultData.data.task_result.videos[0].url);
break;
}
if (status === 'failed') {
console.error(pollResultData.data.task_status_msg);
break;
}
await new Promise(resolve => setTimeout(resolve, ));
}
import requests
response = requests.post(
'https://api.flaq.ai/api/v1/video/task',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
json={
'model_name': 'gemini-omni-1.1-flash-video-edit',
'prompt': 'A small ball rolls into the scene and captures the attention of the cat',
'video_url': 'https://example.com/source-video.mp4',
'resolution': '1080p'
}
)
result = response.json()
task_id = result['data']['task_id']
curl -X POST https://api.flaq.ai/api/v1/video/task \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model_name": "gemini-omni-1.1-flash-video-edit",
"prompt": "A small ball rolls into the scene and captures the attention of the cat",
"video_url": "https://example.com/source-video.mp4",
"resolution": "1080p"
}'
# Step 2: Poll for results
# Replace {task_id} with the task_id returned from the submit response
curl -X GET "https://api.flaq.ai/api/v1/video/{task_id}" \
-H "Authorization: Bearer YOUR_API_KEY"
# Step 2: Poll for results
task_id = response.json()['data']['task_id']
poll_url = f"https://api.flaq.ai/api/v1/video/{task_id}"
while True:
poll_result = requests.get(poll_url, headers={'Authorization': 'Bearer YOUR_API_KEY'}).json()
status = poll_result['data']['task_status']
if status == 'succeed':
print(poll_result['data']['task_result']['videos'][0]['url'])
break
if status == 'failed':
print(poll_result['data']['task_status_msg'])
break
time.sleep(10)