
文字生成圖像
根據文字提示詞建立 AI 圖像
使用 Google Gemini Omni 1.2 Flash API 將場景描述轉為短片。為直式或橫式鏡頭指定動作與運鏡。可設定 3–15 秒長度,解析度涵蓋 360p、720p、1080p 與 4K,依創作需求調整輸出。
透過 Best Image AI 的 Gemini Omni 1.2 Flash Text-to-Video API,你可以將一段場景描述轉成短片。 撰寫提示詞時,先交代主體與動作,再描述場景環境和想呈現的視覺風格。 開發者可選擇輸出解析度、片長及橫式或直式構圖,將文字生成影片功能整合至創作工具與內容製作流程, 無須準備原始圖片或影片素材。
從文字建立場景: 將文字構想轉成動態影像,無須預先繪製原圖或準備影片素材。
用提示詞設計場景: 以自然語言描述希望呈現的主體、環境與動作, 並說明畫面的視覺處理方式。
用提示詞指引運鏡: 在場景描述中說明攝影機的移動與取景方式, 引導模型呈現動作。
輸入: 提供提示詞,描述想生成的場景。先寫清楚主要動作, 再補充光線、構圖或運鏡細節。
輸出設定: 選擇橫式或直式構圖、輸出解析度,以及支援範圍內的短片長度。 目前的限制請參閱 API 文件。
輸出: 送出生成工作,待處理完成後即可取得影片。
計費: 依所選解析度及請求的輸出秒數計費。
行銷活動分鏡: 將文字描述的場景構想製成概念短片,供團隊審閱活動提案。
社群短片構思: 配合新品發布訊息或編輯主題,製作橫式或直式短片。
前期製作探索: 在繪製原圖或拍攝素材前,嘗試不同的場景與動作。
創作工具功能: 讓使用者在既有的產品流程中送出場景描述, 並在同一流程中取得生成的短片。
注意 設計動作時,請考量所選片長是否足以呈現該動作。請依創作需求檢視生成結果, 並確認提示詞符合適用的內容政策。
與圖片轉影片比較: 文字轉影片從文字描述開始。若要用現有圖片決定開場畫面, 或想另外提供圖片引導結尾,可選用 Gemini Omni 1.2 Flash Image-to-Video。
與參考素材生成影片比較: 參考素材生成影片需要視覺參考。文字轉影片適合從文字描述開始、 無須提供參考圖片或影片的專案。
與影片編輯比較: 影片編輯修改既有片段,沿用來源影片的時間安排與長寬比。 文字轉影片則依所選片長與畫面方向產生新片段。
在瀏覽器中探索多種 AI 創作工具,快速完成圖像和影片工作流程,再透過 Best Image AI 可用於正式環境的模型 API 擴展成功創意。Best Image AI 為所有模型提供統一 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.2-flash-text-to-video',
prompt: 'A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset',
aspect_ratio: '16:9',
resolution: '1080p',
duration: 12
})
});
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.2-flash-text-to-video',
'prompt': 'A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset',
'aspect_ratio': '16:9',
'resolution': '1080p',
'duration': 12
}
)
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.2-flash-text-to-video",
"prompt": "A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 12
}'
# 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)