Veo 3.1 Image to Video
Tích hợp
veo3.1/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.ru/v1/run/veo3.1/image-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/veo3.1/image-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": False,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/veo3.1/image-to-video", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/vi/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "veo3.1/image-to-video",
"input": {
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png"
}
}
Gọi mô hình Veo 3.1 Image to Video (veo3.1/image-to-video) qua Doitong API. Tài liệu cho tác nhân: https://doitong.com/vi/developers/models/veo3.1/image-to-video.md
POST https://api.doitong.ru/v1/run/veo3.1/image-to-video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png"
}
Nếu trạng thái phản hồi là "queued" hoặc "running", hãy thăm dò GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 cho đến khi trạng thái là "succeeded"; tệp nằm trong outputs[].url. POST https://api.doitong.ru/v1/quote/veo3.1/image-to-video với cùng nội dung sẽ trả về giá chính xác trước khi chạy.
Yêu cầu này: 0,80 $ 800 tín dụng API · ≈ 86,06 ₽ Chạy trên trang này
Khóa API mới của bạn. Khóa này chỉ hiển thị lúc này và đã được chèn vào mã cũng như trường khóa API bên dưới. Hãy giữ bí mật: không bao giờ đưa khóa này vào mã chạy trong trình duyệt.
Ví dụ
Lời nhắcThe camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)
Tạo một yêu cầu
Các điều khiển được tạo từ lược đồ mô hình. Mã và giá sẽ cập nhật khi bạn thay đổi chúng.
/run/veo3.1/image-to-video?wait=20
báo giá → 0,80 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/veo3.1/image-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/veo3.1/image-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": False,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/veo3.1/image-to-video", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "veo3.1/image-to-video",
"input": {
"prompt": "The camera zooms right into her eye, focuses, then zooms all the way back again (no crossfade)",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_bcpcvkg8xf4nlq4fhu895qvz/0-BmlFvXLfR8RzdjlhNZMyw_l1hXLPeK.png"
},
"wait_seconds": 20
}
}
}
Chạy yêu cầu này
Key của bạn vẫn nằm trong trình duyệt này: key chỉ được gửi đến Doitong API và chỉ được lưu trong localStorage nếu bạn chọn Ghi nhớ. Nhận khóa API
Được tạo trên Doitong
Các tác phẩm công khai được cộng đồng Doitong tạo bằng Veo 3.1. Tái sử dụng một lời nhắc chỉ với một lần nhấp.
Кинематографичная сцена в современном офисном коридоре. Огромная дверь с надписью «Фарм» резко открыта, изнутри виден пиксельный мир в стиле Minecraft: квадратные фермы, зелёные блоки, механизмы, лёгкое зелёное и тёплое свечение. Из двери выходит главный герой — толстый, неприятного вида, немного...
Кинематографичная сцена: главный герой открывает дверь и попадает в бесконечный тёмный мир серверов. Камера медленно движется вперёд, показывая бесконечные серверные стойки, мигающие лампы и холодный неоновый свет. Из темноты появляется глава разработки — абсурдно огромный качок с идеальной...
Главный герой открывает дверь и попадает в розовый сказочный HR-мир. Камера показывает пони, сердечки, блестящие облачка, розовый свет и всё вокруг как будто сделано из милоты. В центре появляется бимбо-глава HR — очень гламурная, в розовом, с идеальной внешностью и ярким макияжем. Она дружелюбно...
Главный герой открывает дверь и оказывается в гигантском мире Minecraft-like. Камера показывает бесконечные фермы, механизмы, падающие ресурсы, мобов, редстоун и автоматизацию. На переднем плане стоит глава отдела фарма — квадратный парень с мотыгой в руках. Он разворачивается к герою и жестом...
Кинематографичная сцена: главный герой открывает дверь и попадает в бесконечный тёмный мир серверов. Камера медленно движется вперёд, показывая бесконечные серверные стойки, мигающие лампы и холодный неоновый свет. Из темноты появляется глава разработки — абсурдно огромный качок с идеальной...
Камера показывает рабочую жизнь HR-отдела: одна сотрудница катается на кресле, кто-то берёт подушку Кати, несколько человек сидят и увлечённо болтают, другие пьют чай и кушают, и всё это происходит так, будто это стратегическая работа мирового уровня. Глава HR стоит посреди этого хаоса и с милой...
Кинематографичная сцена в современном офисном коридоре. Главный герой стоит напротив четырёх огромных дверей, каждая из которых выглядит как вход в отдельную вселенную. Над дверями большими буквами написано: Разработка, Маркетинг, HR, Фарм. Сначала камера показывает героя со спины или в...
Глава фарма ведёт главного героя по своему миру и показывает, как устроены фермы и процессы. Затем он указывает на отдельную часть системы, где визуально показана новая схема выдачи аккаунтов по новым гео. Вокруг двигаются механизмы, работают фермы, падает дроп, всё автоматизировано и работает...
Камера показывает гигантского киберпанк-робота в мире серверов. Робот медленно выходит из темноты, на нём современное худи, широкие штаны, в руке электронка, от него идёт холодное неоновое свечение. Глава разработки с гордостью презентует его главному герою, жестом показывая на робота. Робот...
создай видео для хронометража 00:28 - 00:32 сценарий без букв персонаж не говорит, это только видеоряд Используй референс **[0:28 - 0:32] Блок 8: Кульминация *Видеоряд:* Девушка разворачивается к нам спиной и убегает в платье и шубе в лес, мы видим ее убегающий силуэт Волчица не дает всадником...
создай видео для хронометража 00:28 - 00:32 сценарий примерный, можно отклоняться в safe, без букв персонаж не говорит, это только видеоряд Используй референс **[0:28 - 0:32] Блок 8: Кульминация *Видеоряд:* Девушка разворачивается к нам спиной и убегает в лес, мы видим ее убегающий силуэт Волчица...
создай видео для хронометража 00:28 - 00:32 сценарий примерный, можно отклоняться в safe, без букв персонаж не говорит, это только видеоряд Используй референс **[0:28 - 0:32] Блок 8: Кульминация *Видеоряд:* Девушка разворачивается к нам спиной и убегает в лес, мы видим ее убегающий силуэт Волчица...
создай видео для хронометража 00:28 - 00:32 сценарий примерный, можно отклоняться в safe, без букв персонаж не говорит, это только видеоряд Используй референс **[0:28 - 0:32] Блок 8: Кульминация *Видеоряд:* Девушка разворачивается спиной и убегает в лес Волчица бросается на всадников они отступают
создай видео для хронометража 00:28 - 00:32 сценарий примерный, можно отклоняться в safe, без букв персонаж не говорит, это только видеоряд Используй референс **[0:28 - 0:32] Блок 8: Кульминация *Видеоряд:* Всадники увидели девушку с волчицей и хорьком и окружили их. Девушка выходит из укрытия....
создай видео для хронометража 00:24 - 00:28 сценарий примерный, можно отклоняться в safe, без букв персонаж не говорит, это только видеоряд --- Вот подробный сценарий для вирального короткого видео (Reels/TikTok/Shorts) в эстетике «российской хтони» и дарк-фолка. **Концепция:** Мрачная,...
создай видео для хронометража 00:24 - 00:28 сценарий примерный, можно отклоняться в safe, без букв персонаж не говорит, это только видеоряд --- Вот подробный сценарий для вирального короткого видео (Reels/TikTok/Shorts) в эстетике «российской хтони» и дарк-фолка. **Концепция:** Мрачная,...
Giới thiệu về Veo 3.1 Image to Video
Veo 3.1 biến ảnh tĩnh thành cảnh quay chân thực, giữ chủ thể và khung hình của ảnh, với lời nói, hiệu ứng âm thanh và nhạc được tạo cùng hình ảnh. 4, 6 hoặc 8 giây ở 720p, 1080p hoặc 4K; khung hình theo ảnh hoặc buộc thành 16:9 hay 9:16. Có thể tắt âm thanh để giảm giá.
Tham số
Gửi tên chuẩn hoặc tên gốc, không gửi cả hai. Tên chuẩn
promptbắt buộc
aspect_ratiotùy chọn
durationtùy chọn
negative_prompttùy chọn
resolutiontùy chọn
generate_audiotùy chọn
seedtùy chọn
auto_fixtùy chọn
safety_tolerancetùy chọn
image_urlbắt buộc
image
Các tham số tệp nhận URL https:// công khai, URI data: tối đa 10 MB hoặc file_url của một tệp tải lên. Tệp
Đầu ra
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "veo3.1/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": 800,
"usd": "0.80",
"charged": 800,
"refunded": 0
},
"input": {
"prompt": "The fox turns toward the camera and says \"Have you seen my friends?\" in a soft voice, fireflies drift by",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"duration": 6,
"resolution": "720p"
},
"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.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Các trường đầu ra
- video
- object {url, content_type, file_name, file_size}Video do mô hình tạo ra.
Các biến thể Veo 3.1 khác
Thêm mô hình: Hình ảnh sang video
Dành cho tác nhân AI: trang này ở dạng Markdown tại https://doitong.com/vi/developers/models/veo3.1/image-to-video.md. Tất cả mô hình và hướng dẫn: https://doitong.com/developers/llms.txt