Omni Video

omni-fast-v2v Reference Video Generation

Call `omni-fast-v2v` via `POST /v1/videos` to edit, extend, or regenerate a reference video.

POSThttps://zx1.deepwl.net/v1/videos
Request
curl -X POST https://zx1.deepwl.net/v1/videos \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '
{
  "model": "omni-fast-v2v",
  "prompt": "Edit the attached video into a visibly new version while preserving the original camera path, timing, subject motion, and shot continuity. Add a rainy cinematic night look with neon reflections. Output a newly generated video, not the uploaded source clip or its preview.",
  "video": "https://example.com/source.mp4",
  "seconds": "8",
  "aspect_ratio": "16:9",
  "resolution": "720p"
}'
Response
{
  "id": "video_abc123",
  "task_id": "video_abc123",
  "object": "video",
  "model": "omni-fast-v2v",
  "status": "queued",
  "progress": 0,
  "created_at": 1735689600,
  "video_url": ""
}

omni-fast-v2v submits asynchronous video tasks with a JSON request body, suitable for editing, extending, or regenerating an existing MP4 as a reference video.

  • Asynchronous processing mode; returns id or task_id after submission.
  • The reference video field supports video, video_url, and input_video.
  • The reference video supports a public MP4 URL or data:video/mp4;base64,....
  • The reference video is up to 15MB.
  • When a reference video is not needed, prefer omni-fast.

Request Headers

Authorizationstring必填

Authentication header. Uses a Bearer token, e.g. Bearer YOUR_API_KEY.

Content-Typestring必填

Request content type, must be application/json.

Request Body

modelstring必填

Fixed value omni-fast-v2v. Example: "omni-fast-v2v".

promptstring必填

Video editing or generation prompt. It is recommended to state which motion, camera, or subject to preserve, and explicitly request a newly generated video. Example: "Edit the attached video into a visibly new version".

videostring

Reference video. Supports a public MP4 URL or data:video/mp4;base64,.... Choose one of video, video_url, input_video. Example: "https://example.com/source.mp4".

video_urlstring

Compatibility field for video. Can be used when video is not provided. Example: "https://example.com/source.mp4".

input_videostring

Compatibility field for video. Can be used when neither video nor video_url is provided. Example: "https://example.com/source.mp4".

secondsstring

Output duration. Recommended as a string; recommended range is 4 to 30 seconds. Example: "8".

aspect_ratiostring

Aspect ratio. Example values: "16:9", "9:16".

resolutionstring

Resolution field. Example values: "720p", "1080p", "2k", "4k".

first_image_urlstring

First frame image field compatible with omni-fast. When there is no reference video, prefer omni-fast. Example: "https://example.com/first-frame.jpg".

imagesarray<string>

Multi-reference image field compatible with omni-fast, up to 5. When there is no reference video, prefer omni-fast.

Request Examples

Response Examples

Response Fields

idstring

Video task ID. Can be used later for GET /v1/videos/{task_id} queries.

task_idstring

Compatibility field for the video task ID. Usually the same as id.

objectstring

Object type, usually video.

modelstring

The model used for this task, for example omni-fast-v2v.

statusstring

Task status. Common values are queued, in_progress, completed, failed.

progressnumber

Task progress, commonly in the range 0 to 100.

video_urlstring

The video URL after completion.

errorobject

The error object returned when a task fails or an API error occurs, usually containing message and code.

Use Cases

Public MP4 Reference Video

{
  "model": "omni-fast-v2v",
  "prompt": "Extend this clip into a new cinematic shot with the same camera path.",
  "video": "https://example.com/source.mp4",
  "seconds": "8",
  "aspect_ratio": "16:9",
  "resolution": "720p"
}

Local MP4 to data URI

import base64
from pathlib import Path

source = Path("source.mp4")
if source.stat().st_size > 15 * 1024 * 1024:
    raise ValueError("Reference video must be at most 15MB")

video = "data:video/mp4;base64," + base64.b64encode(source.read_bytes()).decode("ascii")

Using the input_video alias

{
  "model": "omni-fast-v2v",
  "prompt": "Regenerate the attached clip with brighter lighting and smoother motion.",
  "input_video": "https://example.com/source.mp4",
  "seconds": "8",
  "aspect_ratio": "16:9",
  "resolution": "720p"
}

Notes

  • omni-fast does not support reference video; V2V must use omni-fast-v2v.
  • The reference video is up to 15MB; when too large, compress it first or convert to a public URL.
  • video, video_url, input_video are the same kind of reference-video input; prefer video.
  • For data:video/mp4;base64,..., the actual request body grows larger, so allow for network timeout.
  • After completion, retrieve the generated MP4 from the returned video_url.