Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.unifically.com/llms.txt

Use this file to discover all available pages before exploring further.

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.

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"
  }
}