Skip to main content
Edit an existing uploaded video with Google’s Gemini Omni Flash video edit model. Provide exactly one source video URL in reference_video_urls.

Model

google/gemini-omni-flash-video-edit

Parameters

ParameterTypeRequiredDefaultDescription
reference_video_urlsstring[]Yes-Publicly reachable source video URL. Must contain exactly one URL. Uploaded source videos must meet the limits below.
promptstringYes-Edit instruction. Use @Video1 to refer to the source video and @ImageN/@CharacterN for extra references.
reference_image_urlsstring[]No-Publicly reachable image URLs used as edit references. They count toward the total reference limit.
reference_charactersarrayNo-Character references for the edit. Max 3 character items. Each character may include 1-10 image_urls. Supports per-character voice or custom_voice. See available voices.
seedintegerNoRandomSeed sent with the edit request. If omitted, a seed is generated automatically and returned when available.
start_frameintegerNo0First source frame index included in the edit range.
end_frameintegerNoSource endLast source frame index included in the edit range. If omitted, the service uses the detected final frame when available.
allow_audio_filteredbooleanNofalseWhen true, the generation runs without audio instead of failing when the audio track is filtered.

Limits

LimitValue
Video references1
Character references3
Total video + image + character references7
Uploaded source video sizeUp to 1 GB
Uploaded source video lengthUp to 30 seconds

Character References

Each character must be an object with image_urls. Even one-image characters must use an array. Gemini Omni Flash edit also supports per-character preset voices and custom tuned voices.

Preset Voice

{
  "image_urls": [
    "https://example.com/character.png"
  ],
  "name": "Ada",
  "description": "warm, sharp, curious",
  "voice": "achernar"
}

Custom Tuned Voice

{
  "image_urls": [
    "https://example.com/character.png"
  ],
  "name": "Ada",
  "description": "warm, sharp, curious",
  "custom_voice": {
    "voice": "achernar",
    "name": "Ada voice",
    "voice_performance": "calm, bright, expressive",
    "sample_dialogue": "Hello, I am Ada.",
    "speaker": "Ada"
  }
}
FieldTypeRequiredDescription
image_urlsstring[]Yes*Publicly reachable character image URLs. Use 1-10 images for a character entity.
namestringNoDisplay name for the character. Used as the temporary character handle/name.
descriptionstringNoCharacter notes/personality text.
voicestringNoPreset voice for this character. Do not combine with custom_voice on the same character.
custom_voiceobjectNoTuned voice config for this character. Use this instead of voice when you want to modify a base voice.
custom_voice.voicestringYesPreset voice used as the base voice for tuning. See available voices.
custom_voice.namestringYesDisplay name for the tuned voice.
custom_voice.voice_performancestringYesDirection for the tuned voice delivery, such as tone, energy, accent, pacing, or acting notes.
custom_voice.sample_dialoguestringYesSample line used for tuning. Max 120 characters.
custom_voice.speakerstringNoSpeaker label for the tuned voice. Defaults to the custom voice name when omitted.
*image_urls must contain at least one URL.

Example

curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "google/gemini-omni-flash-video-edit",
    "input": {
      "reference_video_urls": [
        "https://example.com/source-video.mp4"
      ],
      "prompt": "Make @Video1 look like it was filmed underwater, and replace the main person with @Character1.",
      "reference_image_urls": [
        "https://example.com/underwater-style.png"
      ],
      "reference_characters": [
        {
          "image_urls": [
            "https://example.com/ada-front.png",
            "https://example.com/ada-profile.png"
          ],
          "name": "Ada",
          "description": "confident explorer",
          "voice": "achernar"
        }
      ],
      "seed": 4734,
      "start_frame": 0,
      "end_frame": 122
    }
  }'

Prompt References

TokenRefers to
@Video1The source video for edit requests
@Image1, @Image2Items from reference_image_urls only
@Character1, @Character2Items from reference_characters only

Rejected Combinations

InputWhy rejected
task_idEdit requests must use reference_video_urls; source task IDs are not supported.
Missing or empty reference_video_urlsAn edit needs exactly one source video URL.
More than one reference_video_urls itemVideo edit accepts one source video.
end_frame lower than start_frameFrame range must move forward.
More than 7 total video + image + character itemsGemini Omni Flash edit reference limit.
image_url on a characterUse image_urls instead, even for one image.
Plain string character entriesCharacter entries must be objects with image_urls.
Empty image_urlsA character needs at least one image.
More than 10 image_urls on one characterCharacter entity image limit.
voice and custom_voice on the same characterUse a preset voice or a tuned voice, not both.

Response

{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "pending"
  }
}