Skip to content

Omni V2V Video Editing API

Omni V2V edits an existing video from natural-language instructions. Each request accepts one source video and optionally one or two reference images. The endpoint is asynchronous: submit the job, poll its ID, then download the completed video.

  • People and characters: retain identity from a reference, change clothing, hair, or accessories, or introduce a referenced person.
  • Scene and background: change location, season, weather, time of day, or set dressing while preserving source motion.
  • Props and products: add, replace, remove, or hide an object and use a product image to constrain its appearance.
  • Visual style: transform footage into anime, cinematic film, vintage footage, clay animation, monochrome, or another coherent look.
  • Lighting and color: change light direction, color temperature, grading, rain, fog, or snow.
  • Local details: change sign text or one specified element while retaining the remainder of the clip.
  • Camera and timing: describe framing, camera motion, cuts, and events at specific times.
  • Audio: request ambience, music, and sound effects. Voice editing is not currently supported by the upstream model.
POST https://api.4allapi.com/v1/videos/edits
Authorization: Bearer YOUR_API_KEY
Content-Type: multipart/form-data
FieldRequiredDescription
modelyesomni_flash_v2v
promptyesState what to change and what must remain unchanged
videoyesExactly one source video
input_referencenoRepeat this field for one or two image references
secondsnoUses source duration when omitted; values above 10 are capped at 10
resolutionnoFor example 720p, when supported by the active channel
aspectRationo16:9 or 9:16, when supported

Invalid or excess reference images are ignored. Only the first two valid images are used, so a valid source video request does not fail merely because an extra image was supplied.

Terminal window
curl https://api.4allapi.com/v1/videos/edits \
-H "Authorization: Bearer $API_KEY" \
-F "model=omni_flash_v2v" \
-F "prompt=Use reference image 1 for the character and reference image 2 for the handbag. Change the street to a rainy neon city at night. Keep the face, original body motion, camera path, timing and framing the same. Add natural rain ambience and soft cinematic music." \
-F "video=@source.mp4;type=video/mp4" \
-F "input_reference=@character.png;type=image/png" \
-F "input_reference=@handbag.jpg;type=image/jpeg" \
-F "seconds=8" \
-F "resolution=720p"

Use a list of tuples for repeated fields in Python:

with (
open("source.mp4", "rb") as video,
open("character.png", "rb") as character,
open("handbag.jpg", "rb") as prop,
):
response = requests.post(
"https://api.4allapi.com/v1/videos/edits",
headers={"Authorization": f"Bearer {API_KEY}"},
data={"model": "omni_flash_v2v", "prompt": prompt, "seconds": "8"},
files=[
("video", ("source.mp4", video, "video/mp4")),
("input_reference", ("character.png", character, "image/png")),
("input_reference", ("handbag.jpg", prop, "image/jpeg")),
],
)
response.raise_for_status()
video_id = response.json()["id"]

Poll GET /v1/videos/{video_id} until status is completed or failed. Download a completed result from GET /v1/videos/{video_id}/content with the same API key.

Use video for the source and repeat referenceImages for up to two images:

Terminal window
curl "https://api.4allapi.com/v1beta/models/omni_flash_v2v:predictLongRunning?key=$API_KEY" \
-F "prompt=Use reference image 1 for the person and image 2 for the room. Keep motion and camera timing unchanged." \
-F "video=@source.mp4;type=video/mp4" \
-F "referenceImages=@person.png;type=image/png" \
-F "referenceImages=@room.jpg;type=image/jpeg" \
-F "durationSeconds=8" \
-F "resolution=720p"

Native JSON uses instances[0].video and instances[0].referenceImages.

Editing works best with focused instructions. Identify the role of each reference, state the change, then explicitly list what to preserve. For a local edit, include Keep everything else the same and name critical invariants such as face, motion, camera path, timing, framing, and physics. Audio and timed events can be described directly, for example After 3 seconds... or [0-3s] ....

Uploaded source clips should be no longer than 10 seconds for this gateway. Complex occlusion, rapid motion, reflections, hands, and dense small text can remain difficult. Results and inputs are subject to model safety checks.

Capability background: Google’s official Gemini Omni Flash documentation. Endpoint fields, the two-image limit, and overflow behavior on this page describe the current 4All API gateway.