Use the reference images only for this woman's face, hair, olive linen shirt, terracotta necklace, and identity. New scene, not a portrait studio and not a rainy alley: a sunny glass greenhouse at late morning. She walks two steps along a gravel path, then tips a plain metal watering can over a bed of leafy plants. Camera: medium tracking shot, eye level, one slow lateral move. Lighting: bright greenhouse sun with leaf shadows. Native audio: birds outside the glass, water from the can, footsteps on gravel. Keep identity consistent. No logos, no readable text, no products, no packaging, no prices, no CTA, no advertising, no watermark, no brand marks.
Gemini Omni 1.1 Flash Reference-to-Video API
google/gemini-omni-1.1-flash/reference-to-videoGemini Omni 1.1 Flash(Reference-to-Video)结合文本提示词与 1–7 张参考图片生成视频,支持角色与风格参考、原生音频和 360p 至 4K 输出。将参考图中的外观特征带入新的场景,再通过提示词编排环境、动作与运镜,创作角色故事和品牌短片。
请至少添加一张参考图片。
生成的视频会显示在这里
填写提示词并添加所需素材,确认设置后点击“运行”。
示例
REST API
快速开始
完成 API 认证,提交素材与生成指令,再通过任务 ID 获取视频结果。
连接 Vidgo API
创建 API Key,仅保存在服务端,并发送 Authorization: Bearer VIDGO_API_KEY。
- 接口
- POST
https://api.vidgo.ai/api/generate/submit - 认证
- Authorization: Bearer VIDGO_API_KEY
提交一次生成任务
按请求示例填写当前端点的素材与设置,提交后保存 task_id,用于后续查询生成进度和结果。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "google/gemini-omni-1.1-flash/reference-to-video",
"input": {
"prompt": "Use the reference images only for this woman's face, hair, olive linen shirt, terracotta necklace, and identity. New scene, not a portrait studio and not a rainy alley: a sunny glass greenhouse at late morning. She walks two steps along a gravel path, then tips a plain metal watering can over a bed of leafy plants. Camera: medium tracking shot, eye level, one slow lateral move. Lighting: bright greenhouse sun with leaf shadows. Native audio: birds outside the glass, water from the can, footsteps on gravel. Keep identity consistent. No logos, no readable text, no products, no packaging, no prices, no CTA, no advertising, no watermark, no brand marks.",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"reference_image_urls": [
"https://cdn.vidgo.ai/apis/models/google/gemini-omni-1.1-flash/reference-to-video/v1/01/input-01.webp",
"https://cdn.vidgo.ai/apis/models/google/gemini-omni-1.1-flash/reference-to-video/v1/01/input-02.webp",
"https://cdn.vidgo.ai/apis/models/google/gemini-omni-1.1-flash/reference-to-video/v1/01/input-03.webp"
]
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"等待结果
用 task_id 查询,not_started/running 继续,finished/failed 停止。成功后读取 data.files[].file_url。
查询状态
GET https://api.vidgo.ai/api/generate/status/{task_id}以 2 秒为基准间隔轮询状态,长时间任务可适当拉长间隔。仅在 not_started 或 running 时继续,遇到 finished 或 failed 立即停止。也可以在同一请求中配置 callback_url 接收回调通知。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "running",
"created_time": "2026-09-15T10:00:00Z"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}完整可运行示例
展开后可查看包含 HTTP 与业务码检查、task_id 校验、轮询、终态处理和超时边界的完整脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "google/gemini-omni-1.1-flash/reference-to-video",
"input": {
"prompt": "Use the reference images only for this woman's face, hair, olive linen shirt, terracotta necklace, and identity. New scene, not a portrait studio and not a rainy alley: a sunny glass greenhouse at late morning. She walks two steps along a gravel path, then tips a plain metal watering can over a bed of leafy plants. Camera: medium tracking shot, eye level, one slow lateral move. Lighting: bright greenhouse sun with leaf shadows. Native audio: birds outside the glass, water from the can, footsteps on gravel. Keep identity consistent. No logos, no readable text, no products, no packaging, no prices, no CTA, no advertising, no watermark, no brand marks.",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"reference_image_urls": [
"https://cdn.vidgo.ai/apis/models/google/gemini-omni-1.1-flash/reference-to-video/v1/01/input-01.webp",
"https://cdn.vidgo.ai/apis/models/google/gemini-omni-1.1-flash/reference-to-video/v1/01/input-02.webp",
"https://cdn.vidgo.ai/apis/models/google/gemini-omni-1.1-flash/reference-to-video/v1/01/input-03.webp"
]
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
doneinput 参数
下表列出 input 对象的可用参数、类型与默认值;请求示例同时展示顶层必填字段 model。按当前任务准备素材并配置输出。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | — | 去除首尾空格后为 1–20,000 个字符。 |
| reference_image_urls | string[] | 是 | — | 1 至 7 个公开图片 URL。 |
| duration | integer | 否 | 8 | 4、6、8 或 10,单位为秒。 |
| resolution | string | 否 | 720p | 360p、720p、1080p 或 4k。 |
| aspect_ratio | string | 否 | 16:9 | 16:9 或 9:16。 |
响应字段
提交成功后返回任务 ID;状态查询提供任务进度、输出文件,以及任务失败时的错误详情。
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | 业务结果码;成功响应使用 0 或 200。 |
| message | string | 可读说明或错误详情。 |
| data.task_id | string | 用于状态查询路径的任务 ID。 |
| data.status | string | not_started、running、finished 或 failed。 |
| data.created_time | string | 任务创建时间,date-time 格式。 |
| data.progress | integer | 任务进度,范围为 0–100;仅在响应包含此字段时提供。 |
| data.files[] | array | 成功任务的全部输出文件,按响应顺序返回。 |
| data.files[].file_url | string | 生成视频的公开 URL。 |
| data.files[].file_type | string | 文件类型,例如 video。 |
| data.error_message | string | null | 状态为 failed 时的失败详情。 |
任务生命周期
在 not_started 或 running 状态下继续查询;收到 finished 或 failed 后结束轮询,并分别处理输出文件或错误详情。
not_started任务已接受,等待开始。
running正在生成。继续使用同一 task_id 轮询。
finished生成成功。从 data.files[].file_url 读取视频地址。
failed生成失败。读取 data.error_message 并停止轮询。
轮询与错误
- 认证收到 401 时,检查 Authorization 中的 Bearer API Key,更新凭据后重试。
- 校验收到 400 时,依据响应说明核对必填素材、参数取值与可用积分,完成相应调整后重新提交。
- 网络与超时状态查询遇到网络错误或超时时,保留原 task_id 并重试查询,再根据返回的任务状态处理结果。
- 轮询间隔以 2 秒为基准间隔发起状态查询;如任务耗时较长,可逐步增加查询间隔。
- 终态仅在 not_started 或 running 时继续。遇到 finished 或 failed 立即停止。
- 回调选项可在请求顶层提供 callback_url 接收终态任务对象;投递失败时仍可轮询。
模型规格
| 规格 | 取值 | 说明 |
|---|---|---|
| 输入模式 | 提示词 + 1–7 张图 | 参考图片提供角色、产品或风格依据,提示词描述新的场景、动作和声音。 |
| 输出 | 带原生音频的视频 | 提交后返回异步任务 ID。 |
| 图片文件 | JPEG / PNG / WebP | 每张最大 30 MiB。 |
| 分辨率 | 360p / 720p / 1080p / 4k | 默认 720p。 |
| 时长 | 4 / 6 / 8 / 10 秒 | 默认 8 秒。 |
| 计费依据 | 按次生成 | 360p–1080p:4 秒=45、6 秒=60、8 秒=75、10 秒=90 积分。4k:4 秒=105、6 秒=120、8 秒=135、10 秒=150 积分。 |
Gemini Omni 1.1 Flash Reference-to-Video
Gemini Omni 1.1 Flash Reference-to-Video 将文本提示词与 1–7 张参考图片结合,生成带原生音频的新场景视频。利用图片提供角色外观、产品特征或视觉风格,再通过提示词设计环境、动作与运镜,为角色故事和品牌内容建立清晰的视觉方向。
为什么选择此端点?
角色外观参考用参考图片提供面部、发型与服装等视觉特征,为角色在新环境中的表演建立外观依据。
多角度图片引导同一任务可使用 1–7 张图片,结合正面、侧面和细节视角说明主体的外观与造型。
产品特征参考通过产品图片提供轮廓、材质和配色,再描述新的摆放环境与镜头运动,创作产品场景视频。
视觉风格延续用风格参考图说明色调、光线和艺术方向,将品牌的视觉语言用于新的场景设计。
新场景与动作设计参考图提供视觉依据,提示词描述新的地点、动作和镜头,让角色或产品进入新的故事。
场景声音一并创作在同一条提示词中描述对白、音乐与环境声,为新场景配合原生音频,并选择横屏或竖屏输出。
参数
| 参数 | 要求 | 说明 |
|---|---|---|
| prompt | 必填 | 字符串。为每张参考图分配职责,并定义新场景、运镜和声音;去除首尾空格后为 1–20,000 个字符。 |
| reference_image_urls | 必填 | 包含 1–7 个公开图片 URL 的字符串数组,用于提供角色、产品或视觉风格参考。JPEG、PNG 或 WebP,每张最大 30 MiB。 |
| duration | 可选 | 整数。设置输出时长;体验区默认预选 8 秒。 默认 84610 |
| resolution | 可选 | 字符串。设置输出分辨率;体验区默认预选 720p。 默认 720p360p1080p4k |
| aspect_ratio | 可选 | 字符串。控制画面比例;体验区默认预选 16:9。 默认 16:99:16 |
如何使用
上传参考图片添加 1–7 张 JPEG、PNG 或 WebP 图片,每张最大 30 MiB,用于提供角色、产品或风格参考。
描述图片用途与新场景在提示词中说明各张参考图的作用,再描述目标环境、人物或产品的位置以及主要动作。
补充运镜与声音写出镜头的移动方向、光线和对白、音乐或环境声,围绕目标场景组织视听细节。
选择分辨率选择 360p、720p、1080p 或 4K,默认 720p;按后续剪辑或展示所需的输出规格配置。
选择视频时长选择 4、6、8 或 10 秒,默认 8 秒,根据主要动作和镜头节奏安排片段长度。
选择画面比例选择 16:9 横屏或 9:16 竖屏,默认 16:9,结合展示版式安排主体位置。
确认费用并运行查看运行按钮显示的当前配置费用,完成素材上传和提示词填写后点击“运行”。
预览并下载视频任务完成后,在输出面板预览画面与声音,点击“下载视频”保存结果。
价格
按次计费,费用由视频时长和分辨率档位决定,原生音频包含在生成结果中。1 积分 = $0.005。
| 用量 | 费率 | 说明 |
|---|---|---|
| 360p / 720p / 1080p | 4 秒=45、6 秒=60、8 秒=75、10 秒=90 积分 | 默认 720p / 8 秒为 75 积分($0.375)。 |
| 4k | 4 秒=105、6 秒=120、8 秒=135、10 秒=150 积分 | 4k / 8 秒为 135 积分($0.675)。 |
适用场景
角色故事短片以角色设定图或照片提供外观参考,描述新的地点和动作,制作角色出场与故事片段。
产品场景展示使用产品图片作为视觉参考,为产品设计室内、户外或节日环境,创作品牌展示素材。
品牌风格短片结合品牌风格板与场景提示词,将既定色调和艺术方向用于带声音的视频创意。
多场景创意方案围绕同一组人物或产品参考图分别设计场景,形成用于品牌提案的多个短片方向。
专业建议
- 为每张参考图说明用途,例如第一张提供角色外观、第二张提供服装、第三张提供场景风格。
- 使用同一主体的正面、侧面和细节图片,向模型展示需要参考的外观信息。
- 直接描述目标环境的地点、光线和背景元素,为参考主体建立新的活动空间。
- 将外观参考和动作指令分句表达,例如“采用参考图中的红色外套,人物沿雨夜街道向前行走”。
- 描述与新场景有关的脚步、环境声或配乐,使声音方向与人物动作和场景氛围对应。
使用说明
- Gemini Omni 1.1 Flash Reference-to-Video 结合文本提示词和 1–7 张参考图片生成视频,主要输入为 prompt 和 reference_image_urls。图片提供角色、产品或风格参考,时长、分辨率和画面比例用于配置输出。
- 在提示词中描述对白、音乐或环境声,生成结果包含原生音频。
- API 素材链接使用可公开访问的 HTTP(S) 地址,供服务读取输入文件。
- 通过 API 提交后保存 task_id,用于查询任务进度和获取生成结果。
相关模型
Gemini Omni 1.1 Flash Reference-to-Video API 常见问题
Gemini Omni 1.1 Flash Reference-to-Video API 是什么?
Gemini Omni 1.1 Flash Reference-to-Video 是 Google 研发的多参考生成视频模型。它支持输入 1–7 张参考图片与文本提示词,在新场景中重构具有高度一致性的角色面貌、道具细节或艺术风格,并同步输出带原生音轨的高清视频。基于 Gemini 多模态智能架构,它突破了单图起步的局限,在保持主体关键视觉特征的同时实现多角度叙事与镜头演进。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Gemini Omni 1.1 Flash 参考生视频最多支持几张图片?
单个请求最多可输入 7 张参考图片。你可以同时上传主体的正面、侧面特写以及服饰配件细节,丰富的多视角素材有助于模型建立立体的角色与外观认知,在多变运镜下保持稳定。
Gemini Omni 1.1 Flash 参考生视频能把角色带入全新场景吗?
能。参考生视频的核心优势即是将参考素材中的角色或商品解耦出来,根据提示词直接迁移至全新的时间、地点与光影氛围中,例如将摄影棚中的模特带入赛博朋克雨夜街道。
如何在提示词中为 Gemini Omni 1.1 Flash 指定不同参考图?
在提示词中可以使用分工描述明确各图用途,例如“参考图 1 用于主角面容与发型,参考图 2 用于红色复古风衣,参考图 3 用于手持复古相机”。明确的特征绑定指引能让模型精准分配视觉权重。
Gemini Omni 1.1 Flash 参考生视频生成声音时会参考原图氛围吗?
会。模型会综合所有参考素材的视觉意象与提示词的新场景描述,直接合成匹配新画面的原生音频。例如当新场景设为喧闹集市时,成片会自动伴随人声喧哗与市井声效。
参考图光线不一致会影响 Gemini Omni 1.1 Flash 的生成质感吗?
模型具备强大的光照重光照(Re-lighting)理解力,能将不同光源环境下拍摄的参考图统一融入提示词指定的目标光影中。若提示词中明确了主光源方向与色温,画面光影的一体化质感会更加自然。
有静态起始画面时该选 Gemini Omni 1.1 Flash 图生视频还是参考生视频?
若视频第一帧必须与上传图片在构图、机位上完全吻合,应选择图生视频模式;若仅需要继承人物容貌、服装或商品外观,但第一帧构图与场景需要自由创作,则应选择参考生视频模式。
