Create an Omni video from text, image, or video
Create a beta Omni text-to-video, image-to-video, or reference-video editing task through CometAPI with POST /v1/videos, then poll the task and download the completed MP4 file.
id and poll the task until it reaches a terminal status.
Choose the request content type that matches the input mode. Send text-to-video and image-to-video controls as multipart/form-data fields. Send a reference-video edit as an application/json body.
Choose an input mode
model=omni-fast. The video-to-video examples use model=omni-fast-v2v. Use List available models to confirm that a model ID is visible to your API key.
Animate a reference image
For image-to-video, usemodel=omni-fast and upload one PNG file in the multipart input_reference field. The field remains optional for text-to-video, but it is required when a reference image should drive the generated video.
Focus the prompt on the motion to add and explicitly name the colors, shapes, subjects, or composition that the result should preserve. The code sample selector includes Shell, Python, and JavaScript examples that upload reference.png from the working directory and create the task.
This request shape covers one uploaded PNG. It does not define URL input, other image formats, multiple reference images, or file-size limits.
Edit a reference video
For video-to-video, encode a local MP4 file as base64 and prefix the encoded bytes withdata:video/mp4;base64,. Send the complete data URL in the video field.
Describe the requested changes in prompt. Also name the subjects, objects, composition, or motion that the result should preserve. The code sample selector includes Shell, Python, and JavaScript examples that read reference.mp4 from the working directory.
This request shape covers an inline MP4 data URL. It does not define URL input, other video container formats, or file-size limits.
Set duration, ratio, and resolution
Omni is marked beta because generation stability can vary by input and selected route. Keep the first request small, then inspect the completed video before relying on a specific rendered duration or frame size.aspect_ratio and resolution as generation preferences and verify the downloaded MP4 before depending on final pixels.
Task flow
Create the task
id.Poll the task
status is completed or failed.Download the result
completed, call Retrieve Omni video content to download the MP4 file.Authorizations
Bearer authentication. Use your CometAPI API key.
Body
Omni model ID for this endpoint. Use omni-fast for text-to-video and image-to-video.
"omni-fast"
Text prompt that describes the video to generate. For image-to-video, focus on motion and name the reference content that should be preserved.
"Ocean waves rolling onto a sandy beach at golden hour"
One PNG reference image uploaded as a multipart file. Optional for text-to-video and required for image-to-video. This contract does not define URL input, other image formats, multiple references, or a file-size limit.
Requested clip duration in seconds. The completed video can use a different duration.
"4"
Output aspect ratio preference. 16:9 and 9:16 are the most predictable; 1:1 can be accepted but may render as landscape.
16:9, 9:16, 1:1 "16:9"
Output resolution preference. Start with 720p. A request for 1080p can render at 720p.
"720p"
Response
Task accepted. Store the returned id and poll GET /v1/videos/{task_id}.
Task ID. Use this value with retrieve and content endpoints.
"task_example"
Object type. Video tasks return video.
"video"
Model ID used for the task.
"omni-fast"
Task lifecycle status. Poll until the value is completed, failed, or error.
queued, in_progress, completed, failed, error "queued"
Task progress as a coarse percentage.
0 <= x <= 1000
Task creation time as a Unix timestamp in seconds.
1779938152
Compatibility alias for id when present.
"task_example"
Task completion time as a Unix timestamp in seconds. This field appears on completed tasks.
1779938219
Temporary video delivery URL. This field appears on completed tasks.
"<temporary-video-url>"
Failure details. This field appears when the task fails.