---
title: "Bring a still to life"
method: POST
path: "/ai/live-images"
tags: ["Generation"]
---

# Bring a still to life

`POST /ai/live-images`

## Request

- Base URL: `https://api.vidmoat.com/v1`
- URL: `https://api.vidmoat.com/v1/ai/live-images`
- Auth: HTTP bearer

vidmoat-image-live-1: animate a still. See the model card under Models. Camera moves use depth parallax; ambient, object, face, body and vehicle motion use the generative tier, our own Wan 2.2 model, where it is available. Nothing is added to the picture. Returns a job to poll.

Priced per second: 8 credits a second for camera moves and region cinemagraphs, 2 to 10 seconds (40 for the 5-second default); 24 credits a second for the generative tier, 4 or 5 seconds in 16:9, 9:16 or 1:1, without loop, taking about 2 to 5 minutes. quoteOnly shows which tier a request gets, and the quote is the charge. Setting region, motion, box, strength or direction keeps a request on the cheaper tiers. Anything appearing, pouring, breaking or transforming is refused before charging with a 400 that points to Generate a video, and so are faces, people, vehicles and turning objects where the generative tier is not available. Every clip is measured before delivery; one that does not move, moves outside its region or drifts from the still ends FAILED and is refunded. Video only, no audio track. Uses the ai.video scope so the same key can poll the job.

## Request body

- object
  - `image` object, required: `{ "url": "https://..." }` or `{ "uploadId": "..." }` (an upload in your account). `imageUrl` is accepted instead.
  - `prompt` string, required: The motion, up to 500 characters: "slow push-in", "steam rises from the cup", "the sneaker floats".
  - `durationSec` integer: Whole seconds, 2 to 10 (the generative tier: 4 or 5). Billed on exactly this number.
  - `aspectRatio` 'source' | '16:9' | '9:16' | '1:1' | '4:5' | '5:4' | '4:3' | '3:4': Output is 720p on the short side.
  - `mode` 'auto' | 'camera' | 'ambient' | 'object' | 'face' | 'body' | 'generative': Force the class instead of reading it from the prompt. face, body and generative need the generative tier.
  - `move` 'push' | 'pull' | 'drift' | 'orbit' | 'pan': Camera move.
  - `region` string: What moves in ambient mode: water, waterfall, waves, clouds, smoke, steam, fire, leaves, wheat, grass, hair, flag, curtain and more.
  - `motion` 'float' | 'bob' | 'sway' | 'tilt' | 'drive': Object motion on the cut-out subject.
  - `direction` 'up' | 'down' | 'left' | 'right': Direction of the move or flow.
  - `strength` number: 0.25 to 2.
  - `box` object: `{ x, y, width, height }` as fractions of the frame: where the region or subject is.
  - `loop` boolean: Make the end meet the start. One-way moves (push, pull, drift, pan, drive) cannot loop and are refused.
  - `seed` integer: For a repeatable result.
  - `projectId` string: Project to attach the job to.
  - `maxCredits` number: Never spend more than this.
  - `quoteOnly` boolean: `true` returns the tier, method and price without starting a job.

## Response `202`

Bring a still to life

- object
  - `id` string: The job id. Poll it with Get a generation job.
  - `status` string: `PROCESSING`.
  - `quote` object: `{ credits, tier, motionClass, method }`.
  - `credits` object: `{ charged, remaining, basis }`.
  - `poll` string: The path to poll.

## Other responses

- `400`: `invalid_request`: No image or prompt, an unsupported option, a motion only Generate a video can make, or a quote above maxCredits.
- `402`: `plan_required`: The account is on Hobby. Living images come with Creator and every plan above it. `insufficient_credits`: The balance cannot cover the call. Nothing ran. `remaining` is the balance. `quota_exceeded`: A living image is already being made on the account.
- `422`: `prompt_rejected`: The prompt failed the safety check. Nothing was charged. `field` names the field.
- `501`: `not_configured`: The living-image worker is not available on this deployment.
- `503`: `unavailable`: The generative tier has used its GPU time for the month. Camera moves and region cinemagraphs still work; nothing was charged.

---

[API](https://skmtc.dev/vidmoat/apis/vidmoat-api.md) · [All operations](https://skmtc.dev/vidmoat/apis/vidmoat-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vidmoat/apis/vidmoat-api/revisions/23e24e25c756?raw)
