体验 Google Gemini Omni 1.1 Flash API,将提示词转化为运动连贯、构图灵活的视频,满足故事创作与创意内容制作需求,轻松呈现更生动、更具吸引力的视觉构想。
Google Gemini Omni 1.1 Flash Text-to-Video API 为开发者提供从文字创意指令到 精美 AI 视频片段的直接路径。描述主体、动作、镜头运动、光线和氛围,然后使用 Gemini 视频 API 将这些指令转化为连贯的短场景。该 API 可通过 Best Image AI 使用,专为需要 灵活构思视频并可靠地以编程方式交付内容,同时无需维护自有视频生成技术栈的团队打造。
提示词驱动的视频创作: 将详细的自然语言描述转化为具有明确主体、 环境、动作和视觉基调的视频场景。
通过文本进行电影级导演控制: 在定义场景的同一 提示词中控制镜头构图、镜头动感、光线、氛围和节奏。
感知运动的场景合成: 创建将主体运动、环境响应和画面构图 融为一体的视频片段,呈现更连贯的视觉效果。
灵活的交付格式: 生成横屏或竖屏视频,适用于电影级展示位、社交内容和 移动端优先的营销活动。
可调整的输出质量: 选择适合预期制作、审核或发布 工作流的输出质量级别。
短篇叙事控制: 为产品瞬间、叙事节点、社交内容 和快速创意测试设置简短的视频时长。
输入: 使用自然语言提示词描述场景、关键动作、视觉风格、光线和所需的镜头 行为。
输出: 通过 Gemini Omni 1.1 Flash API 工作流返回生成的视频片段。
格式控制: 选择横向或纵向构图,以及适合目标 渠道的输出质量。
视频片段控制: 设置简短的视频时长,并通过提示词细节引导运动、节奏和电影级 氛围。
功能: 文生视频、场景构图、主体运动、镜头感知提示词以及 可用于制作的创意迭代。
社交视频制作: 为短篇社交帖子、产品发布时刻以及 适配渠道的创意内容制作竖屏和宽屏视频概念。
营销活动构思: 在完整制作开始前,将营销活动方案、艺术指导和叙事节点转化为动态 视觉概念。
产品故事讲述: 为营销工作流生成简洁的产品场景、生活方式片段以及以运动为主导的功能 叙事。
创意原型设计: 无需传统拍摄即可探索构图、光线、镜头运动和氛围的多种 方向。
自动化内容管线: 通过 API 将提示词驱动的视频创作添加到应用程序、发布系统和大批量 创意工作流中。
注意 请确保提示词符合 Google 的安全准则。如果请求受到限制或未生成 预期结果,请修改场景描述后重试。
Gemini Omni 1.1 Flash 与 Google Veo 对比: 两者都是 Google 的视频生成选项。如果团队希望在同一 模型系列中同时使用文生视频、图像驱动、参考素材驱动和视频编辑工作流,Gemini Omni 1.1 Flash 是一个出色 选择。
Gemini Omni 1.1 Flash 与 OpenAI Sora 对比: Sora 广泛用于文本驱动的创意视频探索。Gemini Omni 1.1 Flash 在 Best Image AI 上提供提示词驱动的视频工作流,并支持灵活的画面比例和质量选择,适合基于 API 的 制作。
Gemini Omni 1.1 Flash 与 Runway 对比: Runway 提供丰富的创作者视频工具。Gemini Omni 1.1 Flash 专注于将文字场景指令集成到面向产品团队和开发者的精简、程序化生成 流程中。
Gemini Omni 1.1 Flash 与 Kling AI 对比: Kling AI 以富有视觉表现力的生成视频闻名。Gemini Omni 1.1 Flash 为开发者提供提示词驱动的场景创作、镜头感知指导和 API 交付的另一种选择。
Gemini Omni 1.1 Flash 与 Pika 对比: Pika 专为简单易用的创意实验而设计。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-text-to-video',
prompt: 'A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset',
aspect_ratio: '16:9',
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[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-text-to-video',
'prompt': 'A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset',
'aspect_ratio': '16:9',
'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-text-to-video",
"prompt": "A cinematic tracking shot follows a sailboat crossing a glowing ocean at sunset",
"aspect_ratio": "16:9",
"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)