جرّب واجهة Google Gemini Omni 1.1 Flash API لتحريك إطار أول مطلوب باتجاه إطار نهاية اختياري، مع حركة مضبوطة واستمرارية بصرية لنتائج جذابة ومميزة.
تساعد واجهة Google Gemini Omni 1.1 Flash Image-to-Video API المطورين على تحويل صورة مقدمة إلى مقطع فيديو بالذكاء الاصطناعي موجّه بدقة. استخدم صورة ثابتة كنقطة انطلاق بصرية، وأضف وصفًا للحركة باللغة الطبيعية، وأنشئ مشهدًا يتطور من خلال حركة كاميرا وحركة مقصودة. ويمكن لصورة نهاية اختيارية توجيه وجهة التسلسل، مما يجعل واجهة Gemini للفيديو مفيدة لمسارات عمل التحريك المضبوط على Best Image AI.
تحريك الفيديو انطلاقًا من الصورة: ابدأ بصورة مرفوعة وابنِ الحركة حول موضوعها وتكوينها وإضاءتها واتجاهها البصري العام.
توجيه اختياري لإطار النهاية: أضف صورة نهاية عندما يحتاج المقطع إلى وجهة بصرية أكثر تحديدًا أو انتقال موجّه بين حالتين.
التحكم في الحركة باللغة الطبيعية: صِف حركة الكاميرا وسلوك الموضوع وتغيرات البيئة والإيقاع إلى جانب الصورة المدخلة.
تطور مترابط للمشهد: استخدم الصورة المدخلة كمرتكز بصري عند توجيه تسلسل يبدو متصلًا بدلًا من أن يكون منفصلًا عن إطار البداية.
عرض مرن للفيديو: أنشئ إخراجًا أفقيًا أو رأسيًا لأصول الحملات وفيديوهات التواصل الاجتماعي وقصص المنتجات والتجارب المصممة للأجهزة المحمولة أولًا.
خيارات الجودة والتوقيت: عدّل جودة الإخراج ومدة المقطع الموجزة لتلائم إعداد النماذج الأولية أو المراجعة أو النشر أو احتياجات الإنتاج.
الإدخال: صورة بداية مع مطالبة للحركة باللغة الطبيعية تصف الحركة المطلوبة وسلوك الكاميرا وتطور المشهد.
توجيه اختياري: يمكن تقديم صورة نهاية لمنح التحريك حالة بصرية نهائية مضبوطة.
الإخراج: مقطع فيديو مُنشأ يتم تسليمه عبر سير عمل Gemini Omni 1.1 Flash لتحويل الصورة إلى فيديو.
التحكم في التنسيق: اختر تكوينًا أفقيًا أو رأسيًا وجودة إخراج ومدة موجزة تلائم القناة المستهدفة.
الإمكانات: تحريك الصور والتوجيه البصري من البداية إلى النهاية وحركة الكاميرا الموجّهة بالمطالبات وتطور المشاهد والتكرار الإبداعي.
تحريك صور المنتجات: أضف الحركة وديناميكية الكاميرا والحيوية البيئية إلى صور المنتجات والمرئيات الرئيسية للحملات.
إعادة توظيف محتوى التواصل الاجتماعي: حوّل المنشورات الثابتة والصور التحريرية وأعمال الإطلاق الفنية إلى أفكار فيديو رأسية أو عريضة الشاشة وقصيرة.
تطوير لوحة القصة: استخدم إطارات التصور والأعمال الفنية الرئيسية لاختبار طريقة تحرك فكرة بصرية قبل الالتزام بإنتاج أكبر.
تنويعات المحتوى الإبداعي للعلامة التجارية: أنشئ تنويعات قائمة على الحركة انطلاقًا من توجه بصري معتمد مع الاحتفاظ بصورة بداية واضحة لسير العمل.
فيديوهات التجارة الإلكترونية والإعلانات: أنشئ لحظات موجزة للمنتجات وتسلسلات لأنماط الحياة وأصولًا ترويجية من المواد البصرية الموجودة.
ملاحظة استخدم صورًا مصدرية واضحة وعالية الجودة، وصِف الحركة المقصودة بدقة. توفر المطالبات التي تحدد حركة الموضوع واتجاه الكاميرا وسلوك البيئة عادةً توجيهًا أكثر فائدة للتحريك.
Gemini Omni 1.1 Flash مقابل Google Veo Image-to-Video: يوفر Google Veo مسارات عمل راسخة لتحويل الصور إلى فيديو. ويضيف Gemini Omni 1.1 Flash مسارًا مترابطًا لتحريك الصور وإنشاء النصوص والفيديو القائم على المراجع وتحرير الفيديو ضمن عائلة نماذج واحدة.
Gemini Omni 1.1 Flash مقابل Runway Image-to-Video: يقدم Runway مجموعة واسعة من أدوات المبدعين للحركة المُنشأة. أما Gemini Omni 1.1 Flash فمصمم للمطورين الذين يريدون تحريكًا قائمًا على الصور وتوجيهًا بالمطالبات ضمن سير عمل قائم على API.
Gemini Omni 1.1 Flash مقابل Kling Image-to-Video: يُعد Kling خيارًا شائعًا لتحريك الصور بأسلوب تعبيري. يدعم Gemini Omni 1.1 Flash مسارًا عمليًا من الصورة المصدر ووصف الحركة إلى الإخراج مع توجيه اختياري لإطار النهاية.
Gemini Omni 1.1 Flash مقابل Pika Image-to-Video: يركز Pika على التجارب البصرية سهلة الاستخدام. ويُناسب Gemini Omni 1.1 Flash فرق المنتجات التي تحتاج إلى تحريك مضبوط للصور ضمن تكامل قابل للتوسع.
Gemini Omni 1.1 Flash مقابل Luma Dream Machine: يشتهر Luma Dream Machine بسرعة ابتكار الأفكار البصرية. ويتميز Gemini Omni 1.1 Flash بالتحكم القائم على الصور والتوجيه الاختياري بصورة النهاية ومسارات عمل الفيديو ذات الصلة والمتاحة من خلال عائلة API نفسها.
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-image-to-video',
prompt: 'The girl walks toward the camera while the city lights shimmer behind her',
image_url: 'https://example.com/start-frame.jpg',
image_end_url: 'https://example.com/end-frame.jpg',
aspect_ratio: '9:16',
resolution: '1080p',
duration: 8
})
});
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[].);
;
}
(status === ) {
.(pollResultData..);
;
}
( (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-image-to-video',
'prompt': 'The girl walks toward the camera while the city lights shimmer behind her',
'image_url': 'https://example.com/start-frame.jpg',
'image_end_url': 'https://example.com/end-frame.jpg',
'aspect_ratio': '9:16',
'resolution': '1080p',
'duration': 8
}
)
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-image-to-video",
"prompt": "The girl walks toward the camera while the city lights shimmer behind her",
"image_url": "https://example.com/start-frame.jpg",
"image_end_url": "https://example.com/end-frame.jpg",
"aspect_ratio": "9:16",
"resolution": "1080p",
"duration": 8
}'
# 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)