Skip to content

Veo3.1 First Last Frame to Video

Integrate

Model id veo3.1/first-last-frame-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/veo3.1/first-last-frame-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",
    "end_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: $3.20 3,200 API credits Run it on this page

Get API key
Google Image to Video Native audio4K output4–8 sup to 4k

Veo 3.1 clip that transitions between a supplied first and last frame, with optional audio

Made on Doitong

Public works made with Veo 3.1 by the Doitong community. Reuse a prompt in one click.

Public works shown: 16
Анна невероятно быстро печатает, ее глаза бегают по строкам кода, на лице появляется уверенная и ... Video

Анна невероятно быстро печатает, ее глаза бегают по строкам кода, на лице появляется уверенная и азартная улыбка. Голографические графики вокруг нее начинают стремительно расти и менять форму под синхронными движениями ее рук. Камера совершает плавный круговой облет на 360 градусов, создавая...

Art style: Modern Webtoon Illustration. Нари спокойно лежит с закрытыми глазами. Внезапно она рез... Video

Art style: Modern Webtoon Illustration. Нари спокойно лежит с закрытыми глазами. Внезапно она резко открывает оба глаза, выражая испуг и осознание, что проспала. Быстрое, чёткое комедийное движение. Голова, волосы, подушка и одеяло остаются практически неподвижными. Камера статична. Сохранить...

Art style: Реалистичный кулинарный блог. Камера совершает медленный наезд на ведущую. Она продолж... Video

Art style: Реалистичный кулинарный блог. Камера совершает медленный наезд на ведущую. Она продолжает говорить, используя выразительную жестикуляцию рук. Ее движения плавные и открытые. Она слегка наклоняется вперед, создавая более тесный контакт со зрителем. На заднем плане можно заметить детали...

Art style: Реалистичный кулинарный блог. Камера медленно пролетает над противнем по диагонали. Па... Video

Art style: Реалистичный кулинарный блог. Камера медленно пролетает над противнем по диагонали. Пальцы ведущей совершают щепотку, и семена кунжута веером рассыпаются над булочками, медленно падая и прилипая к блестящей поверхности. Видно, как под весом семян слой желтка слегка прогибается....

Video

Slow pan across the trees with icons, focusing on the man's hopeful face as he looks up. Off-screen voiceover (all characters have their mouths closed, no one is speaking on screen): Narrator: "Останавливаясь у икон, развешанных прямо на деревьях вдоль тропы, Андрей искренне просил о встрече с...

Video

Женщина громко смеется вместе с друзьями, но внезапно ее смех обрывается, и она с тревогой смотрит вниз. Камера фокусируется на изменении ее настроения от радости к испугу. Off-screen voiceover (all characters have their mouths closed, no one is speaking on screen): Voice: Мужской голос,...

Video

Камера медленно и драматично приближается к плачущему мальчику, стоящему в центре кадра. Мальчики-хулиганы вокруг него активно жестикулируют, жестоко смеются и агрессивно тычут в него пальцами. Проливной дождь льет без остановки, тяжелые капли эффектно разбиваются об асфальт, создавая брызги....

Art style: 3D Anthro. Mr. Pomegranate lifts the portraits: "Two grooms. The famous Leo Lime... an... Video

Art style: 3D Anthro. Mr. Pomegranate lifts the portraits: "Two grooms. The famous Leo Lime... and a man nobody has ever seen." Mia jumps up and points at the Lime portrait, bratty voice: "The famous one is mine! Give the mystery guy to the ghost." Grana sits still. SPOKEN LINE — AUTHORITATIVE,...

Build a request

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

•required 88 / 20000

Text description of the desired video for generation.

duration 8 s

Length of the output video.

aspect_ratio default auto

Aspect ratio for the output video.

resolution default 720p

Resolution used for the output video.

•required first_frame_url

URL pointing to the video's opening frame.

•required last_frame_url

URL pointing to the video's final frame.

Advanced negative_prompt · safety_tolerance · seed · auto_fix

Negative prompt used to steer video generation.

safety_tolerance default 4

Set content-moderation tolerance between the least restrictive level, 6, and the strictest level, 1, which blocks most content.

Seed value that initializes random-number generation.

POST /run/veo3.1/first-last-frame-to-video?wait=20 quote → $3.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/veo3.1/first-last-frame-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",
    "end_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 Veo3.1 First Last Frame to Video

Creates a video connecting `first_frame_url` to `last_frame_url`, steered by a `prompt` of up to 20000 characters. Choose 4s, 6s or 8s duration, 720p, 1080p or 4k resolution, and auto, 16:9 or 9:16 aspect ratio. It can generate audio, accepts a `negative_prompt` and `seed`, and is the standard, non-fast version.

Parameters

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

NameType DefaultAllowed Description
promptrequired
Typestring
≤ 20,000 characters
Text description of the desired video for generation.
aspect_ratiooptional
Typeenum
Defaultauto
auto16:99:16
Aspect ratio for the output video.
durationoptional
Typeenum
Default8s
4s6s8s
Length of the output video.
negative_promptoptional
Typestring | null
Negative prompt used to steer video generation.
resolutionoptional
Typeenum
Default720p
720p1080p4k
Resolution used for the output video.
generate_audiooptional
Typeboolean
Defaulttrue
Controls whether the video includes generated audio.
seedoptional
Typeinteger | null
Seed value that initializes random-number generation.
auto_fixoptional
Typeboolean
Defaultfalse
Automatic rewriting of prompts to try to resolve failures in content-policy checks or other validation.
safety_toleranceoptional
Typeenum
Default4
123456
Set content-moderation tolerance between the least restrictive level, 6, and the strictest level, 1, which blocks most content.
first_frame_urlrequired image
Typestring
URL pointing to the video's opening frame.
last_frame_urlrequired end_image
Typestring
URL pointing to the video's final frame.
required Canonical name, also accepted

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "veo3.1/first-last-frame-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": 3200,
    "usd": "3.20",
    "charged": 3200,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "first_frame_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
    "last_frame_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
    }
  },
  "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}Video produced by the model.

More models: Image to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/veo3.1/first-last-frame-to-video.md. All models and guides: https://doitong.com/developers/llms.txt