Ana içeriğe geç
google avatarı

Veo 3.1 First/Last Frame to Video API

google/veo-3.1/first-last-frame-to-video

İlk ve son kare arasındaki ara kareleri hesaplayarak, yüksek sadakatli görüntü ve modelin kendi ürettiği sesle kusursuz 8 saniyelik video geçişleri oluşturun.

üretilen video için saniye başına 0.4

Model girdisi

Input

The text description for the video.

Text describing what not to include in the video.

The initial image to animate (start frame).

The final image for the video to transition to.

The video's aspect ratio.

The video's resolution.

You need to be logged in to run this model and view results.
Log in

Model çıktısı

Output

Loading
Logs (1 lines)

Örnek istekler

Örnekler

Example output 1Example output 2

Veo 3.1 First/Last Frame to Video API

Veo 3.1 First/Last Frame to Video is a image-to-video AI model by google. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.4 per second of video.

POST https://queue.modelrunner.run/google/veo-3.1/first-last-frame-to-video

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/google/veo-3.1/first-last-frame-to-video \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A perfectly folded red paper crane sitting on a dark wooden table magically begins to unfold itself, its creases smoo…",
    "image_url": "https://media.modelrunner.ai/T7jHBnUr3JALc5jVjs4nd.png",
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "last_frame_url": "https://media.modelrunner.ai/z9yHcad6Iv39Nom4byBLd.png",
    "negative_prompt": "shaky camera, blurry, distorted, watermarks, text overlays",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/google/veo-3.1/first-last-frame-to-video/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/google/veo-3.1/first-last-frame-to-video/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("google/veo-3.1/first-last-frame-to-video", {
  input: {
    "prompt": "A perfectly folded red paper crane sitting on a dark wooden table magically begins to unfold itself, its creases smoo…",
    "image_url": "https://media.modelrunner.ai/T7jHBnUr3JALc5jVjs4nd.png",
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "last_frame_url": "https://media.modelrunner.ai/z9yHcad6Iv39Nom4byBLd.png",
    "negative_prompt": "shaky camera, blurry, distorted, watermarks, text overlays"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/google/veo-3.1/first-last-frame-to-video",
    headers=headers,
    json={
      "prompt": "A perfectly folded red paper crane sitting on a dark wooden table magically begins to unfold itself, its creases smoo…",
      "image_url": "https://media.modelrunner.ai/T7jHBnUr3JALc5jVjs4nd.png",
      "resolution": "1080p",
      "aspect_ratio": "16:9",
      "last_frame_url": "https://media.modelrunner.ai/z9yHcad6Iv39Nom4byBLd.png",
      "negative_prompt": "shaky camera, blurry, distorted, watermarks, text overlays"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of Veo 3.1 First/Last Frame to Video
NameTypeRequiredDescription
promptstringyesThe text description for the video.
negative_promptstringnoText describing what not to include in the video.
image_urlstring (uri)yesThe initial image to animate (start frame).
last_frame_urlstring (uri)yesThe final image for the video to transition to.
aspect_ratioenumnoThe video's aspect ratio. One of: 16:9, 9:16. Default: "16:9".
resolutionenumnoThe video's resolution. One of: 720p, 1080p. Default: "720p".

Machine-readable: OpenAPI schema · llms.txt

Use Veo 3.1 First/Last Frame to Video from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Veo 3.1 First/Last Frame to Video becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint google/veo-3.1/first-last-frame-to-video.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run google/veo-3.1/first-last-frame-to-video on ModelRunner to generate video”. MCP setup guide.

Model Detayları

Model Detayları

Veo 3.1, belirli bir başlangıç görseli ile bitiş görseli arasında kusursuz geçen, yüksek sadakatli 8 saniyelik videolar üretmenizi sağlayarak video üretimini yeniden tanımlıyor. Bu "kareye özgü üretim" yeteneği, videonun gidişatı üzerinde tam denetim verir; çıktı tam olarak istediğiniz gibi başlar ve istediğiniz gibi biter. Bir karakterin hareketini canlandırın, bir sahnenin ışığını dönüştürün ya da değişen bir manzarayı anlatın — model, iki girdi arasındaki kareleri betimleyici bir metin prompt’una göre akıllıca doldurur.

Basit bir cross-fade’in ötesine geçer: anlamsal bağlamı ve fiziği kavrar, verdiğiniz görseller arasındaki boşluğu kapatan gerçekçi hareket ve ara durumlar üretir. Sonuç, 720p ya da 1080p çözünürlükte akıcı, sinema kalitesinde bir video; yanında da görüntüdeki olaylarla senkron çalışan, modelin kendi ürettiği ses.

### Kullanım Alanları * **Hikâye anlatımı:** Bir karakterin gözden kaybolmasını, bir aksesuarın yer değiştirmesini ya da bir sahnenin zaman içinde evrilmesini görselleştirmek. * **Yaratıcı geçişler:** Bir nesneyi başka bir nesneye dönüştürmek ya da birbirinden farklı ortamlar arasında geçiş yapmak (örneğin gündüzden geceye). * **Pazarlama:** Bir kutunun açılması ya da bir cihazın çalışmaya başlaması gibi ürün durumları arasında dinamik geçişler kurmak.

### En iyi sonucu almak için * **Prompt yazımı:** İki kare arasında gerçekleşen eylemi, hareketi ya da değişimi `prompt` alanında net biçimde tarif edin (örneğin "Sis koyulaşıp etrafında dönüyor ve o yavaşça siliniyor"). * **Görsel uyumu:** En bütünlüklü sonuç için ilk ve son görselin aynı sanatsal tarzı ve en-boy oranını paylaştığından emin olun. * **Yapılandırma:** Model bu modda varsayılan olarak 8 saniyelik videolar üretir. Girdi görsellerinize ve hedef platformunuza uyması için `16:9` ya da `9:16` en-boy oranını seçin.

ModelRunner javascript client ile çalıştırmak için aşağıdaki kodu kullanın:

```javascript import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe('google/veo-3.1-first-last-frame-to-video', { input: { "prompt": "The fog thickens and swirls around her, and she slowly fades away, vanishing completely.", "negative_prompt": "low quality, blurry, distorted, cartoon", "image_url": "https://storage.googleapis.com/generativeai-downloads/images/ghost_girl.png", "last_frame_url": "https://storage.googleapis.com/generativeai-downloads/images/empty_tree.png", "aspect_ratio": "16:9", "resolution": "720p" } }); ```