模型简介

grok-video-3.5 是图生视频模型:上传一张首帧图,配合提示词生成最长 15 秒的视频,视频自带音频。接口采用 OpenAI Sora 风格的异步任务流程:先提交任务,再轮询结果。

快速信息

项目说明
模型名称grok-video-3.5
价格0.5 元/秒,按 seconds 计费(例如 10 秒 = 5 元)
生成方式仅支持图生视频,必须传一张首帧图
时长seconds:"1" – "15"
分辨率resolution:480p / 720p
出片时间通常 1–3 分钟
Base URLhttps://deepseektavern.com/v1

获取 API Key

登录 DeepSeek Tavern 控制台,在「令牌管理」中创建 API Key。详细步骤参考:API 密钥获取指南。

Base URL 统一为 https://deepseektavern.com/v1,认证方式:Authorization: Bearer <你的API密钥>。下文示例中的 YOUR_API_KEY 请替换为你自己的 Key。

调用流程

  1. POST /v1/videos 提交生成任务,返回任务 id
  2. GET /v1/videos/{id} 轮询任务状态,建议每 5–10 秒一次,直到 status 为 completed
  3. 用返回体中的 url 字段下载视频
注意

/v1/videos/{id}/content 端点暂时不可用,请直接使用查询结果里的 url 字段下载视频。视频链接请及时保存。

第一步:提交任务

POST https://deepseektavern.com/v1/videos

参数类型必填说明
modelstring是grok-video-3.5
promptstring是视频内容描述:动作、镜头运动、氛围、声音等
imagesarray是["首帧图URL 或 data URI"],放一张图即可
secondsstring否视频时长,"1" – "15",按秒计费
sizestring否如 1280x720(横屏)/ 720x1280(竖屏)/ 720x720(方形)
aspect_ratiostring否也可直接传画幅:16:9、9:16、1:1、3:2、2:3(与 size 二选一)
resolutionstring否480p / 720p

也可以用 multipart/form-data 提交:字段 input_reference 上传首帧图片文件,其余参数作为表单字段。

curl 示例:JSON(首帧图 URL)

curl https://deepseektavern.com/v1/videos \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "grok-video-3.5",
    "prompt": "少女回头微笑,樱花花瓣随风飘落,镜头缓慢推近,背景有轻柔的风声",
    "images": ["https://example.com/first-frame.png"],
    "seconds": "8",
    "size": "1280x720",
    "resolution": "720p"
  }'

curl 示例:multipart 上传首帧图

curl https://deepseektavern.com/v1/videos \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F model=grok-video-3.5 \
  -F prompt="猫咪伸懒腰后跳下窗台" \
  -F seconds=6 \
  -F aspect_ratio=9:16 \
  -F resolution=720p \
  -F input_reference=@first-frame.jpg

返回示例(字段以实际返回为准):

{
  "id": "video_xxxxxxxx",
  "object": "video",
  "model": "grok-video-3.5",
  "status": "queued"
}

第二步:轮询结果

GET https://deepseektavern.com/v1/videos/{id},建议每 5–10 秒查询一次。status 变为 completed 后,返回体里的 url 就是视频下载地址。

curl https://deepseektavern.com/v1/videos/video_xxxxxxxx \
  -H "Authorization: Bearer YOUR_API_KEY"

完整 Python 示例:提交 + 轮询 + 下载

import base64
import time
import requests

API_KEY = "YOUR_API_KEY"
BASE = "https://deepseektavern.com/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}


def to_data_uri(path):
    """本地图片转 data URI;如果首帧图本身是公网 URL,可直接传 URL"""
    mime = "image/png" if path.lower().endswith(".png") else "image/jpeg"
    with open(path, "rb") as f:
        return f"data:{mime};base64," + base64.b64encode(f.read()).decode()


# 1. 提交任务
payload = {
    "model": "grok-video-3.5",
    "prompt": "骑士拔出长剑,披风在风中翻飞,远处雷声隆隆,镜头环绕",
    "images": [to_data_uri("first-frame.png")],
    "seconds": "10",          # 按秒计费:10 秒 = 5 元
    "aspect_ratio": "16:9",
    "resolution": "720p",
}
r = requests.post(f"{BASE}/videos", json=payload, headers=HEADERS, timeout=120)
r.raise_for_status()
video_id = r.json()["id"]
print("任务已提交:", video_id)

# 2. 轮询,每 8 秒一次,最多等 10 分钟
deadline = time.time() + 600
while True:
    time.sleep(8)
    info = requests.get(f"{BASE}/videos/{video_id}", headers=HEADERS, timeout=60).json()
    status = info.get("status")
    print("状态:", status, info.get("progress", ""))
    if status == "completed":
        break
    if status in ("failed", "cancelled", "error"):
        raise RuntimeError(f"生成失败: {info}")
    if time.time() > deadline:
        raise TimeoutError("等待超时,可稍后用同一个 id 继续查询")

# 3. 用 url 字段下载(/content 端点暂不可用)
video_url = info["url"]
with requests.get(video_url, stream=True, timeout=300) as resp:
    resp.raise_for_status()
    with open(f"{video_id}.mp4", "wb") as f:
        for chunk in resp.iter_content(1 << 16):
            f.write(chunk)
print("已保存:", f"{video_id}.mp4")

提示词建议

  • 动作:首帧里的主体接下来做什么,写清楚先后顺序
  • 镜头:推近、拉远、环绕、跟随、固定机位
  • 声音:视频自带音频,可描述环境音、背景音乐氛围或人物台词
  • 时长匹配:动作越多需要的秒数越长,短视频里塞太多动作容易变快

计费说明

项目价格
每秒视频0.5 元
5 秒 / 10 秒 / 15 秒2.5 元 / 5 元 / 7.5 元