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) combines a text prompt with 1–7 reference images to generate video with character and style guidance, native audio, and 360p to 4K output. Bring referenced visual features into new settings, then direct the environment, action, and camera to create character stories and brand clips.
Add at least one reference image.
Your generated video will appear here
Add your prompt and required media, review the settings, then click Run.
Examples
REST API
Quick Start
Authenticate with the API, submit the inputs and instructions, then retrieve the video using the task ID.
Connect to the Vidgo API
Create an API key, keep it only on your server, and send Authorization: Bearer VIDGO_API_KEY.
- Endpoint
- POST
https://api.vidgo.ai/api/generate/submit - Authentication
- Authorization: Bearer VIDGO_API_KEY
Submit one generation task
Fill in the inputs and settings for this endpoint using the request example, then save the returned task_id to query generation progress and results.
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"Wait for the result
Query with task_id, continue for not_started/running, and stop for finished/failed. On success, read data.files[].file_url.
Track status
GET https://api.vidgo.ai/api/generate/status/{task_id}Poll status with a 2-second base interval, and increase the interval for longer tasks. Continue only while status is not_started or running, and stop once finished or failed. You can also specify callback_url in the request payload to receive webhook notifications.
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
}
}Complete runnable example
Expand for a complete script with HTTP and business-code checks, task_id validation, polling, terminal-state handling, and a timeout boundary.
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 parameters
The table lists available input parameters, types, and defaults. Request examples also include the required top-level model field. Prepare the inputs for this task and configure the output.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| prompt | string | Yes | — | 1–20,000 characters after trimming. |
| reference_image_urls | string[] | Yes | — | One to seven public image URLs. |
| duration | integer | No | 8 | 4, 6, 8, or 10, in seconds. |
| resolution | string | No | 720p | 360p, 720p, 1080p, or 4k. |
| aspect_ratio | string | No | 16:9 | 16:9 or 9:16. |
Response Fields
A successful submission returns a task ID. Status queries provide progress, output files, and error details when a task fails.
| Field | Type | Description |
|---|---|---|
| code | integer | Application result code; successful responses use 0 or 200. |
| message | string | Human-readable message or error detail when present. |
| data.task_id | string | Task ID used in the status endpoint path. |
| data.status | string | not_started, running, finished, or failed. |
| data.created_time | string | Task creation time in date-time format. |
| data.progress | integer | Task progress from 0 to 100, when included in the response. |
| data.files[] | array | All output files from a successful task, in response order. |
| data.files[].file_url | string | Public URL for a generated video. |
| data.files[].file_type | string | File type, such as video. |
| data.error_message | string | null | Failure detail when status is failed. |
Task Lifecycle
Continue querying while the status is not_started or running. End polling at finished or failed, then process the output files or error details respectively.
not_startedThe task was accepted and is waiting to begin.
runningGeneration is in progress. Continue polling the same task_id.
finishedGeneration succeeded. Read every video URL from data.files[].file_url.
failedGeneration stopped with an error. Read data.error_message and stop polling.
Polling and Errors
- AuthenticationFor a 401 response, check the Bearer API key in Authorization, update the credentials, and retry.
- ValidationFor a 400 response, use the response details to check required inputs, parameter values, and available credits, then make the indicated adjustments before submitting again.
- Network and timeoutIf a status query encounters a network error or timeout, retain the original task_id and retry the query, then handle the result according to the returned task status.
- Polling intervalPoll status with a 2-second base interval, and gradually increase the interval for longer tasks.
- Terminal statesContinue only for not_started or running. Stop immediately on finished or failed.
- Callback optionProvide callback_url at the request top level to receive the final flat task object; polling remains available if delivery fails.
Endpoint limits
| Specification | Value | Details |
|---|---|---|
| Input mode | Prompt + 1–7 images | Reference images guide characters, products, or style; the prompt describes the new scene, action, and sound. |
| Output | Video with native audio | The endpoint returns an asynchronous task ID. |
| Image files | JPEG / PNG / WebP | Maximum 30 MiB per image. |
| Resolution | 360p / 720p / 1080p / 4k | Default is 720p. |
| Duration | 4 / 6 / 8 / 10 seconds | Default is 8 seconds. |
| Billing basis | Per generation | 360p–1080p: 4s=45, 6s=60, 8s=75, 10s=90 credits. 4k: 4s=105, 6s=120, 8s=135, 10s=150 credits. |
Gemini Omni 1.1 Flash Reference-to-Video
Gemini Omni 1.1 Flash Reference-to-Video combines a text prompt with 1–7 reference images to create a new video scene with native audio. Use images to guide character appearance, product features, or visual style, then describe the setting, action, and camera movement to shape character stories and branded content.
Why Choose This?
Character appearance referencesProvide facial features, hairstyles, and clothing through reference images to establish the visual direction for a character in a new setting.
Multiple reference viewsUse 1–7 images in a task, combining front, side, and detail views to describe the appearance and design of a subject.
Product feature referencesProvide product shape, materials, and colors through images, then describe a new setting and camera movement for a product scene.
Visual style continuityUse style references to communicate color, lighting, and art direction, bringing a brand’s visual language into new scene designs.
New scenes and actionsLet images establish the visual references while the prompt introduces a new location, action, and camera move for a character or product story.
Sound for the new sceneDescribe dialogue, music, and ambient sound in the same prompt to create native audio for the new scene, with landscape or portrait output.
Parameters
| Parameter | Requirement | Description |
|---|---|---|
| prompt | Required | String. Assigns each reference a role and defines the new scene, camera, and sound; 1–20,000 characters after trimming. |
| reference_image_urls | Required | Array of 1–7 public image URLs to guide characters, products, or visual style. JPEG, PNG, or WebP, up to 30 MiB each. |
| duration | Optional | Integer. Sets output length; the Playground preselects 8 seconds. Default 84610 |
| resolution | Optional | String. Sets output resolution; the Playground preselects 720p. Default 720p360p1080p4k |
| aspect_ratio | Optional | String. Controls output framing; the Playground preselects 16:9. Default 16:99:16 |
How to Use
Upload reference imagesAdd 1–7 JPEG, PNG, or WebP images, up to 30 MiB each, to guide the character, product, or visual style.
Describe image roles and the sceneExplain what each reference contributes, then describe the target setting, subject placement, and main action.
Add camera and audio directionSpecify camera movement, lighting, and speech, music, or ambient sound around the scene you want to create.
Choose a resolutionChoose 360p, 720p, 1080p, or 4K, with 720p selected by default, to match the output specifications for editing or presentation.
Choose a durationChoose 4, 6, 8, or 10 seconds, with 8 seconds selected by default, to plan the clip around its main action and pacing.
Choose an aspect ratioChoose 16:9 landscape or 9:16 portrait, with 16:9 selected by default, and frame the subject for the intended layout.
Review the cost and runReview the cost shown on the Run button, complete the required uploads and prompt, then click Run.
Preview and download the videoWhen the task finishes, preview the video and sound in the output panel, then select Download video to save the result.
Pricing
Billed per generation based on video duration and resolution tier, with native audio included in the result. 1 credit = $0.005.
| Usage | Rate | Details |
|---|---|---|
| 360p / 720p / 1080p | 4s=45, 6s=60, 8s=75, 10s=90 credits | Default 720p / 8s costs 75 credits ($0.375). |
| 4k | 4s=105, 6s=120, 8s=135, 10s=150 credits | 4k / 8s costs 135 credits ($0.675). |
Best Use Cases
Character story clipsUse character artwork or photos as appearance references, then describe a new location and action for introductions and story moments.
Product scenesUse product images as visual references and design interior, outdoor, or seasonal settings for branded video assets.
Brand style filmsCombine a brand mood board with scene directions to carry a chosen palette and art direction into video with sound.
Creative scene variationsBuild separate scenes around the same character or product references to develop several short-film directions for a brand pitch.
Pro Tips
- Assign a purpose to each image, such as character appearance from the first, clothing from the second, and scene styling from the third.
- Use front, side, and detail images of the same subject to show the visual features you want to reference.
- Describe the target location, lighting, and background elements directly to establish a new space for the subject.
- Separate appearance references from action directions, such as “Use the red coat from the reference. The person walks along a rainy street at night.”
- Describe footsteps, ambience, or music associated with the new scene to connect the audio direction to its action and atmosphere.
Usage notes
- Gemini Omni 1.1 Flash Reference-to-Video combines a text prompt with 1–7 reference images through prompt and reference_image_urls. Images guide characters, products, or style; duration, resolution, and aspect ratio configure the output.
- Describe speech, music, or ambient sound in the prompt; native audio is included in the result.
- Use publicly accessible HTTP(S) URLs for API media inputs so the service can retrieve the files.
- Save the task_id returned by an API submission to query progress and retrieve the result.
Related Models
Gemini Omni 1.1 Flash Reference-to-Video API frequently asked questions
What is the Gemini Omni 1.1 Flash Reference-to-Video API?
Gemini Omni 1.1 Flash Reference-to-Video is a Google model for generating video from multiple references. It takes 1–7 reference images alongside text prompts to reconstruct consistent character likeness, product details, or artistic aesthetics in brand-new environments with native audio. Built on Gemini's multimodal intelligence architecture, it decouples visual identity from rigid starting frames, enabling multi-angle storytelling and expressive camera direction. You can call it programmatically or try it from the playground above.
How many reference images can I upload to Gemini Omni 1.1 Flash Reference-to-Video?
You can include up to 7 reference images per request. Supplying diverse angles, such as front portraits, profile perspectives, and wardrobe or product close-ups, helps the model build a robust 3D representation that stays consistent across dynamic camera maneuvers.
Can Gemini Omni 1.1 Flash Reference-to-Video place a character into an entirely new scene?
Yes. The primary strength of this workflow is disentangling character identity or product geometry from the reference backgrounds, allowing you to transport subjects into novel environments, lighting conditions, or storylines described in your text prompt.
How do I assign roles to multiple images in Gemini Omni 1.1 Flash Reference-to-Video?
Assign distinct duties in your prompt text, such as specifying that Reference Image 1 guides the protagonist's face and hair, Reference Image 2 defines the trench coat, and Reference Image 3 provides the handheld camera prop. Explicit role tagging ensures precise feature mapping across entities.
Does Gemini Omni 1.1 Flash Reference-to-Video match sound to the target scene?
Yes. The model synthesizes native audio based on the target scene described in your prompt while taking visual cues from the references. For example, placing a character in a crowded outdoor bazaar will generate realistic crowd murmur and ambient street noise.
Will inconsistent lighting across reference photos harm Gemini Omni 1.1 Flash results?
The model features intelligent re-lighting capabilities that harmonize visual features captured under differing photographic conditions into the cohesive lighting scheme specified in your prompt. Mentioning key light directions and color temperatures further refines scene realism.
Should I choose Gemini Omni 1.1 Flash Image-to-Video or Reference-to-Video?
Choose Image-to-Video when the finished video must open exactly on the initial image's camera framing and composition. Choose Reference-to-Video when you want to carry over a character, outfit, or product identity into an entirely new opening camera setup and scene context.
