試用 Google Gemini Omni 1.1 Flash API,為必要的起始影格製作動畫,並可加入選用的結束影格,精準控制動作與視覺連貫性,呈現自然流暢的畫面轉場與精彩作品。
Google Gemini Omni 1.1 Flash Image-to-Video API 協助開發者將提供的圖片轉化為定向控制的 AI 影片 片段。以靜態圖片作為視覺起點,加入自然語言動作說明,生成依照預定鏡頭調度和動作方式 發展的場景。還可使用選用的結束圖片引導序列的最終畫面, 讓 Gemini 影片 API 成為 Best Image AI 上可控動畫工作流程的實用選擇。
圖片驅動的影片動畫: 從上傳的圖片開始,圍繞其主體、構圖、 燈光和整體視覺方向建立動作效果。
選用的結束影格引導: 當影片片段需要更明確的視覺終點或 兩種狀態之間的引導式轉場時,可加入結束圖片。
自然語言動作控制: 在輸入圖片的同時描述鏡頭運動、主體行為、環境變化和 節奏。
連貫的場景發展: 以輸入圖片作為視覺錨點,同時引導生成與 起始影格保持連貫,而非彼此脫節的序列。
靈活的影片呈現: 為行銷活動素材、社群影片、產品 故事和行動裝置優先的體驗生成橫向或直向輸出。
品質與時長選擇: 調整輸出品質和精簡的影片長度,以符合原型設計、審核、發佈 或製作需求。
輸入: 一張起始圖片,以及描述所需動作、鏡頭行為 和場景發展的自然語言動作提示詞。
選用引導: 可提供結束圖片,為動畫設定可控的最終視覺狀態。
輸出: 透過 Gemini Omni 1.1 Flash 圖片生成影片 API 工作流程交付生成的影片片段。
格式控制: 選擇適合目標 管道的橫向或直向構圖、輸出品質和精簡時長。
功能: 圖片動畫、從起始到結束的視覺引導、提示詞驅動的鏡頭運動、場景發展,以及 創意反覆調整。
產品圖片動畫: 為產品攝影和行銷活動 主視覺加入動作、鏡頭動感和鮮活的環境效果。
社群內容再利用: 將靜態貼文、編輯圖片和發佈素材轉化為精簡的直向或 寬螢幕影片概念。
分鏡開發: 使用概念畫面和主視覺測試視覺創意如何移動,再投入 更大規模的製作。
品牌創意變體: 根據已獲核准的視覺方向建立以動作為主導的變體,同時為工作流程保留明確的 起始圖片。
電商和廣告影片: 使用現有視覺素材製作精簡的產品瞬間、生活風格片段和宣傳 素材。
注意 請使用清晰的高品質來源圖片,並準確描述所需動作。明確指定 主體動作、鏡頭方向和環境行為的提示詞通常能夠提供更實用的動畫指引。
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)