Grok Imagine Video · Edit Video
統合
xai/grok-imagine-video/edit-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/xai/grok-imagine-video/edit-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",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}'
# 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/xai/grok-imagine-video/edit-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}),
});
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": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/xai/grok-imagine-video/edit-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/ja/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": "xai/grok-imagine-video/edit-video",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
}
Doitong APIを通じてGrok Imagine Video · Edit Videoモデル(xai/grok-imagine-video/edit-video)を呼び出します。エージェント向けドキュメント: https://doitong.com/ja/developers/models/xai/grok-imagine-video/edit-video.md
POST https://api.doitong.ru/v1/run/xai/grok-imagine-video/edit-video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
レスポンスのステータスが"queued"または"running"の場合、"succeeded"になるまでGET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20をポーリングしてください。ファイルはoutputs[].urlにあります。同じボディでPOST https://api.doitong.ru/v1/quote/xai/grok-imagine-video/edit-videoを実行すると、実行前の正確な価格が返されます。
例と同様のファイル: $0.64 640 APIクレジット · ≈ ₽68.68 実行前にファイルを計測します このページで実行
新しいAPIキーです。 これは今だけ表示され、コードと下記のAPIキー欄にすでに入力されています。秘密にしてください。ブラウザで実行されるコードに決して含めないでください。
Doitongで作成
DoitongコミュニティがGrok Imagineで作成した公開作品です。ワンクリックでプロンプトを再利用できます。
The camera starts with a close-up on the Uterus's face showing pure exhaustion, then slowly tilts down to reveal the tiny, injured Sperm hobbling into the frame. The Sperm stops and tries to puff out its chest heroically while waving a crutch in the air. As he speaks, he loses his balance and...
Камера плавно панорамирует слева направо, открывая вид на просыпающуюся деревню. Жители выходят из домов, обмениваясь приветствиями, пар от их дыхания виден в морозном воздухе. Мальчики похлопывают лошадей по шее, а девочки играют, подбрасывая снег. Движение размеренное, создающее ощущение начала...
Устойчивая, статичная камера. Классическая диалоговая последовательность "кадр-контркадр". Без резких движений, подчеркивающих формальность и окончательность ситуации. On-screen dialogue (characters speak with lip-sync): Юрист (voice: Женский голос. Теплый, мелодичный меццо-сопрано с уверенным,...
Пальцы Аиши быстро, но немного неуклюже бегают по клавишам, совершая ошибку. Она резко останавливается, сжимая кулаки. Камера совершает быстрый круговой облет вокруг неё, передавая чувство головокружения и фрустрации. Затем она снова кладет руки на клавиши, её взгляд становится жестким и...
Тигр медленно поворачивает голову к напарнику, произнося фразу с холодной уверенностью. Камера плавно приближается к лицу тигра. Лёгкий дождь усиливает блики на асфальте. Атмосфера растущей напряжённости. On-screen dialogue (characters speak with lip-sync): Барс (voice: Низкий грубый бас,...
Camera slowly pushes in, the boys wave enthusiastically and smile, dynamic and joyful movement. On-screen dialogue (characters speak with lip-sync): Роберт (voice: Звонкий, чистый детский голос с мягким тембром, спокойной интонацией и легкой, дружелюбной энергией.): "Всем привет!"; Рафаэль...
Искры от костра взлетают вверх, смешиваясь со звездами. Анастасия Георгиевна мягко гладит Юру по голове и что-то шепчет ему. Камера медленно приближается к их лицам, передавая интимность момента. Огонь мерцает, создавая живые тени на их лицах и на стене строящейся школы за их спинами. Это момент...
Палец Елены уверенно прокручивает список товаров в приложении, останавливаясь на продуктах категории «Здоровье». Камера совершает плавный боковой проезд вокруг рук, создавая динамику. На заднем плане мягко переливается свет, имитируя уютную домашнюю обстановку. В конце сцены на экране появляется...
Камера медленно наклоняется (tilt up) от фотографии к лицу Артёма. Мы видим его глаза, полные слез и нежности. Он подносит фотографию ближе к лицу и на мгновение прижимает ее к щеке. Кадр наполнен глубоким чувством раскаяния и любви. Освещение лампы создает мягкие тени, подчеркивая интимность и...
Девушка плавно идет по коридору, ее шаги почти бесшумны. Камера медленно следует за ней сбоку, сохраняя средний план. Солнечные лучи пересекают ее путь, создавая ритмичную игру света и тени на одежде. В воздухе медленно кружатся мелкие пылинки, подсвеченные золотом. Движение передает легкость и...
Котоклизм медленно закрывает глаза, подставляя мордочку морскому бризу, затем открывает их и понимающе кивает зрителю. Камера плавно отъезжает назад, пока его фигура не становится маленькой светящейся точкой на фоне гаснущего заката. Легкий ветер шевелит его звездную шерсть. Чувство глубокого...
Малыш сидит на пушистом ковре в тихой детской, смотрит вокруг с легким удивлением, затем внезапно его плечики начинают трястись от смеха, ручки хлопают по ковру. Камера медленно приближается с низкого угла, плавно поднимаясь к лицу. Солнечные лучики играют на ковре, игрушки в фоне слегка...
Общий план площадки, затем крупный план на отчаянное лицо Сергея, пытающегося вытащить коляску. Камера слегка трясется, передавая его напряжение. On-screen dialogue (characters speak with lip-sync): Сергей (бормочет себе под нос): "И почему все мамы на площадке выглядят такими спокойными? Что я...
Плавное движение камеры (dolly shot) вдоль рабочего стола Анны, показывая ее за работой. Она делает пометки, улыбается коллеге. Все выглядит спокойно и упорядоченно. On-screen dialogue (characters speak with lip-sync): Коллега (за кадром): "Анна, отличная работа! С возвращением в строй!" No...
Камера медленно облетает Викторию по дуге, переводя фокус с интерактивной карты России на ее лицо. Точки на карте пульсируют золотистым светом. Виктория делает приглашающий жест рукой. Видео заканчивается плавным затемнением, оставляя ощущение надежности и масштабности организации. On-screen...
Очень быстрая смена кадров. Сообщения появляются и исчезают с высокой скоростью. Эффект 'скроллинга' чата, который невозможно остановить. Динамичная анимация, передающая накал страстей в чате. On-screen dialogue (characters speak with lip-sync): Нина: "Днём здесь ругаются из-за мусора. Вечером...
リクエストを作成
コントロールはモデルスキーマから生成されます。値を変更するとコードと価格が更新されます。
/run/xai/grok-imagine-video/edit-video?wait=20
見積もり → $0.64
# 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/xai/grok-imagine-video/edit-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",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}'
# 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/xai/grok-imagine-video/edit-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}),
});
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": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/xai/grok-imagine-video/edit-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": "xai/grok-imagine-video/edit-video",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
},
"wait_seconds": 20
}
}
}
Grok Imagine Video · Edit Videoについて
`video_url`で指定した既存動画に、最大4,096文字のテキスト編集指示を適用します。入力は最大854x480ピクセルの面積に縮小され、8秒にカットされます。`resolution`はauto、480p、720pに対応します。結果は単一の編集済み動画です。
パラメータ
正式名称またはネイティブ名のいずれか一方を送信してください。両方は送信しないでください。 正式名称
prompt必須
video_url必須
video
resolution任意
enable_safety_checker任意
ファイルパラメータには、公開されたhttps:// URL、10 MBまでのdata: URI、またはアップロードしたファイルのfile_urlを指定します。 ファイル
出力
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "xai/grok-imagine-video/edit-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": 640,
"usd": "0.64",
"charged": 640,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
},
"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,
"width": 1024,
"height": 768,
"fps": 1.0,
"duration": 5,
"num_frames": 1
}
},
"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"
}
}
出力フィールド
- video
- object {url, content_type, file_name, file_size, width, height, fps, duration, num_frames}モデルが生成した動画。
その他のGrok Imagineバリアント
その他のモデル: 動画変換
AIエージェント向け:このページのMarkdown版はこちらです: https://doitong.com/ja/developers/models/xai/grok-imagine-video/edit-video.md. すべてのモデルとガイド: https://doitong.com/developers/llms.txt