Skip to content

Ovi

Integrate

Model id ovi/image-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ovi/image-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: $0.20 200 API credits Run it on this page

Get API key
Character.AI Image to Video #image-to-audio-video#image-to-video

Animates a still image into a video with audio, guided by a text prompt

Character.AI · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Text instructions that guide video generation.

•required image_url
Drop a file, or

URL of the image used to guide video creation.

Advanced negative_prompt · audio_negative_prompt · num_inference_steps · seed · enable_safety_checker
default jitter, bad hands, bl...

Negative prompt applied when generating a video.

default robotic, muffled, ech...

Negative prompt specifying what to avoid in generated audio.

default 30

Count of steps used for inference.

Seed that makes generation reproducible. Setting it to None selects a seed randomly.

POST /run/ovi/image-to-video?wait=20 quote → $0.20
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ovi/image-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Ovi

Starts from a required `image_url` and `prompt` and generates a video clip that includes an audio track. Video and audio each have a negative prompt, and `num_inference_steps` can be set from 1 to 50 (default 30). A `seed` makes output repeatable. Unlike the text-to-video version, no resolution option is exposed.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptrequired
Typestring
Text instructions that guide video generation.
negative_promptoptional
Typestring
Defaultjitter, bad hands, blur, distortion
Negative prompt applied when generating a video.
num_inference_stepsoptional
Typeinteger
Default30
1 – 50
Count of steps used for inference.
audio_negative_promptoptional
Typestring
Defaultrobotic, muffled, echo, distorted
Negative prompt specifying what to avoid in generated audio.
seedoptional
Typeinteger | null
Seed that makes generation reproducible. Setting it to None selects a seed randomly.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Screening can be relaxed by setting false, provided the caller is authorized.
image_urlrequired image
Typeurl · image
URL of the image used to guide video creation.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "ovi/image-to-video",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 200,
    "usd": "0.20",
    "charged": 200,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "seed": 42
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size} | nullVideo file produced by generation.
seed
integerSeed value applied during generation.

More models: Image to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/ovi/image-to-video.md. All models and guides: https://doitong.com/developers/llms.txt