视频与素材

创建视频

提交视频生成任务

POST
/v1/videos/generations

概述

视频生成需要一些时间。创建成功后会返回任务 ID 和 poll_url,通过这个地址查询进度和结果。

查询任务状态

直接请求创建响应中的 poll_url。id 与 task_id 指向同一个任务,也可以通过 GET /v1/tasks/{id} 查询。

音频与媒体输入

音频行为取决于所选模型和操作。没有音频开关,不代表视频必须无声;省略参数也不等于发送 false。

  • veo3.1 和 veo3.1-fast 按 Gemini API 契约始终生成音频。wan-2.6 和 wan-2.7 的视频生成也不支持关闭声音。省略 output_audio;模型详情允许时也可设置为 true。
  • hailuo-h3 和 Grok 视频模型原生生成音频。不要添加所选模型详情未列出的音频开关。
  • Seedance 1.5/2.x 与 viduq3-pro / viduq3-turbo 默认开启音频,并支持无声输出;PixVerse C1/V5.6/V6 默认关闭音频。仅在当前操作列出该字段时使用 output_audio;Vidu 也接受其契约声明的布尔字段 audio。
  • audio_url / audio_urls 用于输入或参考音频,不是输出声音开关。视频编辑、动作迁移和风格转换可能保留输入音轨;保留原音不等于静音。

允许值及音频相关价格以模型详情为准。受支持的兼容字段 outputAudio、generate_audio 和布尔 audio 与 output_audio 同时出现时,值必须一致。不要假定同系列各版本、各操作的声音控制相同。

图片、视频和音频建议使用公网可访问的 https URL。部分模型也接受内联 data: URL;文件较大时,URL 会更稳定。

请求体

modelstring默认值: veo3.1

视频模型 ID。可从 Models API 获取当前可用模型,用 operation 选择文生视频、图生视频等生成方式。

PixVerse

  • 模型: pixverse-c1, pixverse-v6, pixverse-v5.6
  • 操作: text-to-video, image-to-video, start-end-to-video, reference-to-video
  • 音频参数: output_audio, 默认为 false

在 TokenLab 上,上述 PixVerse 模型不接受 operation=video-extension。

HappyHorse

  • 模型: happyhorse-1.0
  • 操作: text-to-video, image-to-video, reference-to-video, video-to-video
  • 音频参数: 不要传入 output_audio
promptstring

要生成视频的文本描述。大多数公开视频模型都要求该字段。

operationstring

生成方式。支持 text-to-video、image-to-video、reference-to-video、start-end-to-video、video-to-video、video-extension、audio-to-video 和 motion-control。省略时会根据输入判断;明确填写可以更早发现不匹配的参数。

image_urlstring

图生视频的起始图片。可传公网 https URL;Seedance 也接受处于 ACTIVE 状态的 TokenLab 素材 URI,例如 asset://asset-YYYYMMDDHHMMSS-xxxxx。

imagestring

以内联 data URL 形式提供的图片(例如 data:image/jpeg;base64,...)。兼容模型支持该方式,但 image_url 的兼容性更广。

reference_imagesarray

参考图列表,数量上限取决于模型。seedance-2.0 和 seedance-2.0-fast 最多支持 9 张参考图、3 段参考视频和 3 段参考音频;图片可以使用公网 https URL 或处于 ACTIVE 状态的 TokenLab 素材 URI。grok-imagine-video 最多接受 7 张参考图,生成时长最高 10 秒;grok-imagine-video-1.5-preview 只支持图生视频。Seedance 的分辨率和素材限制见 Seedance 2.0 视频模型指南。

material_asset_idstring

创建素材返回的 Seedance 素材 ID。素材状态变为 ACTIVE 后,可用于 reference-to-video。作为图生视频首帧时,请改用 image_url: "asset://<material_asset_id>";首尾帧分别使用 start_image 和 end_image。

material_asset_idsarray

多个 Seedance 素材 ID,用于 reference-to-video。它们与 reference_images 共用图片数量上限。作为图生视频首帧时,请将对应素材写入 image_url。

普通图片 URL 作为图片输入,不会自动创建可复用素材。需要复用时先通过素材 API 创建,再使用 TokenLab 素材 ID 或 asset://asset-YYYYMMDDHHMMSS-xxxxx URI。显式素材返回 409 seedance_material_preparing 时,查询响应中的 inactive_asset_ids,待素材变为 ACTIVE 后重试。

reference_image_typestring

可选的参考图角色字段,用于区分 asset 和 style 两类参考图的模型。

kling_elementsarray

仅当所选模型的当前公开详情列出 kling_elements 时使用。请求需包含图片输入和 1–3 个元素;每个元素包含 name、可选 description 和 2–4 个 element_input_urls,并在 prompt 中以 @name 引用。不能与 output_audio=true 组合。

video_urlstring

源视频的公网 URL。video-to-video 和 motion-control 使用该字段;部分续写或扩展功能使用 task_id。

video_urlsarray

用于支持多模态参考条件控制的额外参考视频输入。可传数量取决于模型。对于 seedance-2.0 和 seedance-2.0-fast,TokenLab 当前支持最多 3 段参考视频。

audio_urlstring

所选模型支持的音频驱动或参考音频操作所用的公开音频 URL。

audio_urlsarray

用于支持多模态参考条件控制的额外参考音频输入。可传数量取决于模型。对于 seedance-2.0 和 seedance-2.0-fast,TokenLab 当前支持最多 3 段参考音频。

task_idstring

部分续写、扩展或衍生功能使用的任务 ID。

extend_atinteger

部分 video-extension 模型使用的扩展起点。

extend_timesstring

部分 video-extension 模型使用的扩展次数或倍率。

durationinteger

生成输出视频的时长(秒)。Seedance 1.5/2.0 模型省略时默认 5 秒;传 -1 表示让模型在支持范围内自动选择时长,任务完成前会按保守方式预估费用。

secondsinteger

duration 的兼容别名。若同时传 seconds 和 duration,两者必须完全一致。对 Seedance,seconds=-1 与 duration=-1 一样表示自动时长。

aspect_ratiostring

视频宽高比,例如 adaptive、16:9、9:16、1:1、4:3、3:4 或 21:9。Seedance 省略时默认为 adaptive。

resolutionstring

模型相关的输出分辨率。Seedance 省略时默认 720p;seedance-2.0 支持 480p、720p、1080p 和 4k,seedance-2.0-fast / seedance-2.0-mini 仅支持 480p 和 720p。

output_audioboolean

仅用于声明了该字段的操作。省略时遵循模型默认行为;只有允许时,false 才表示无声输出。参见上方音频说明和所选模型详情。

draftboolean

是否使用 Seedance 1.5 Pro 草稿模式。不要和 draft_task_id 同时传入。

draft_task_idstring

Seedance 1.5 Pro 草稿晋升任务 ID。传入上一次草稿任务 ID 后创建正式视频;这不是通用视频字段。

ratiostring

aspect_ratio 的兼容别名。若同时传 ratio 和 aspect_ratio,两者必须完全一致。

generate_audioboolean

output_audio 的兼容别名。generate_audio、output_audio、outputAudio 同时出现时,所有值必须一致。

execution_expires_afterinteger

兼容视频模型的执行过期时间(秒)。Seedance 省略时默认 172800 秒。

priorityinteger

兼容视频模型的任务优先级,范围 0 到 9。不要把 priority 与 service_tier=flex 组合使用。

safety_identifierstring

兼容视频模型的终端用户安全标识。Seedance 未传该字段时,TokenLab 会使用 user 的值。

service_tierstring

default 对 Seedance 2.0 会按兼容 no-op 处理。只有所选模型明确支持时才可使用 flex。

framesinteger

兼容视频模型的可选帧数。Seedance 2.0 模型和 Seedance 1.5 Pro 不支持该字段。

camera_fixedboolean

兼容视频模型的固定相机开关。Seedance 2.0 模型不支持该字段。

fpsinteger

每秒帧数(1-120),仅在模型公开支持 FPS 控制时生效。

negative_promptstring

希望在视频生成中避免的内容。

seedinteger

用于可复现生成的随机种子。Seedance 省略时使用 -1 表示随机种子。

cfg_scalenumber

提示词遵循强度(0-20),仅在公开模型支持该控制项时生效。

motion_strengthnumber

运动强度(0-1),仅在公开模型支持该字段时生效。

start_imagestring

start-end-to-video 中使用的起始帧图片 URL 或兼容图片输入。

end_imagestring

start-end-to-video 中使用的结束帧图片 URL 或兼容图片输入。

sizestring

兼容视频模型使用的模型相关尺寸档位参数。

watermarkboolean

某些模型暴露的水印开关。Seedance 省略时默认 false。

effect_typestring

部分特效或编辑模型使用的效果类型。

userstring

终端用户的唯一标识符。对 Seedance,如果未传 safety_identifier,TokenLab 会使用该值。

兼容字段

  • 主要字段使用 snake_case:aspect_ratio、output_audio、reference_images 和 reference_image_type。
  • 为了兼容已有调用,TokenLab 也接受 ratio、generate_audio、outputAudio、seconds、referenceImages 和 referenceImageType。
  • 如果主要字段和别名同时出现,两边的值必须一致。
  • 如果省略 operation,TokenLab 会根据输入判断生成方式。

媒体输入

  • image_url、reference_images、video_url 和 audio_url 建议使用公网可访问的 https URL。
  • 同一请求尽量统一使用 URL 或内联 base64,避免混用。
  • 远程媒体 URL 需要在任务开始处理前保持有效。

Seedance 参数

对于 Seedance 1.5/2.0 模型,统一接口以 TokenLab 字段为主,同时接受兼容别名 seconds、ratio 和 generate_audio。省略 Seedance 参数时会使用这些默认值:duration=5、resolution=720p、aspect_ratio=adaptive、output_audio=true、watermark=false、return_last_frame=false、execution_expires_after=172800、priority=0、seed=-1。

duration=-1 或 seconds=-1 表示让 Seedance 在模型支持范围内自动选择输出时长。TokenLab 会在任务完成前按保守方式预估费用,并在可获得完成任务 usage 时按实际结果结算。service_tier=default 对 Seedance 2.0 作为兼容 no-op 接受;service_tier=flex、frames、camera_fixed 会在所选模型不支持时被拒绝。

Seedance 示例

cURL
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A sleek product reveal with cinematic camera movement",
    "operation": "text-to-video",
    "duration": -1,
    "aspect_ratio": "adaptive",
    "resolution": "720p",
    "output_audio": true
  }'

响应

结果、错误、时间戳和模型字段仅在任务提供时返回。

idstring

任务 ID。

task_idstring

与 id 相同的任务 ID。

poll_urlstring

查询任务状态和结果的地址。

billing_transaction_idstring

结算完成后返回的账单交易 ID,与任务 ID 不同。

statusstring

任务状态:pending、processing、completed、failed。

createdinteger

创建任务时的 Unix 时间戳。

modelstring

所使用的模型。

video_urlstring

结果已就绪时可直接使用的视频 URL。

videoobject

可用时返回单个视频对象,包含 url、duration、width 和 height。

videosarray

当任务生成多个输出时,可能出现视频数组。

errorstring | object

任务失败时返回的错误信息或结构化错误对象。

请求

cURL
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1",
    "prompt": "A cat walking through a garden, cinematic lighting",
    "operation": "text-to-video",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'

响应

Response
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "model": "veo3.1",
  "created": 1706000000
}

图生视频

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "hailuo-2.3-standard",
        "prompt": "The scene begins from the provided image and adds gentle natural motion.",
        "operation": "image-to-video",
        "image_url": "https://example.com/image.jpg",
        "duration": 6,
        "resolution": "768p"
    }
)

Kling 3.0 元素引用

仅当所选模型的当前公开详情列出 kling_elements 时使用。请求需包含图片输入和 1–3 个元素;每个元素包含 name、可选 description 和 2–4 个 element_input_urls,并在 prompt 中以 @name 引用。不能与 output_audio=true 组合。

参考图生视频

当模型支持专门的参考条件控制时,请使用 operation=reference-to-video。在 TokenLab 请求中,图片参考素材使用 reference_images,多模态参考视频和参考音频分别使用 video_urls 与 audio_urls。对于 seedance-2.0 和 seedance-2.0-fast,TokenLab 当前支持最多 9 张参考图,外加最多 3 段参考视频和 3 段参考音频。模型选型、4K 边界和 Mini 说明请参考 Seedance 2.0 视频模型指南。duration 只控制生成输出时长,不单独限制参考视频输入时长。 对于 grok-imagine-video,reference-to-video 最多接受 7 个图片参考(reference_images 或 image_urls),且 duration 最高为 10 秒。不要把参考图片与 image_url / image 首帧输入混用。grok-imagine-video-1.5-preview 仅支持图生视频。

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "veo3.1",
        "prompt": "Keep the same subject identity and palette while adding subtle motion.",
        "operation": "reference-to-video",
        "reference_images": [
            "https://example.com/ref-a.jpg",
            "https://example.com/ref-b.jpg"
        ],
        "reference_image_type": "asset",
        "duration": 8,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)

首尾帧控制

使用 start_image 和 end_image 控制首帧和尾帧:

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "viduq2-pro",
        "operation": "start-end-to-video",
        "start_image": "https://example.com/day.jpg",
        "end_image": "https://example.com/night.jpg",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
    }
)

视频转视频

grok-imagine-video 的 video-to-video 接受公网 HTTPS .mp4 URL,可将 resolution 设为 480p 或 720p;该模式不接受 duration 和 aspect_ratio。

使用现有视频作为输入时,将 operation 设为 video-to-video。

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "grok-imagine-video",
        "operation": "video-to-video",
        "video_url": "https://example.com/source.mp4",
        "prompt": "Enhance the clip while preserving the original motion."
    }
)

动作控制

需要主体图片和动作参考视频时,将 operation 设为 motion-control,并分别传入 image_url 和 video_url。

response = requests.post(
    "https://api.tokenlab.sh/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "kling-3.0-motion-control",
        "operation": "motion-control",
        "prompt": "Keep the subject stable while following the motion reference.",
        "image_url": "https://example.com/subject.png",
        "video_url": "https://example.com/motion.mp4",
        "resolution": "720p"
    }
)

模型发现

可用模型和生成方式可能调整。通过 Models API 获取当前信息:

curl "https://api.tokenlab.sh/v1/models?recommended_for=video"

curl "https://api.tokenlab.sh/v1/models/veo3.1"

audio-to-video、video-extension 等功能只在部分模型中提供,以单个模型的详情响应为准。

授权

BearerAuth
AuthorizationBearer <token>

API Key 身份验证。在 Dashboard > API > API Keys 中创建或管理 API Key。

位置: header

请求头

X-TokenLab-Delivery-Policy?string

单次请求的交付策略。覆盖 API 密钥和 Workspace 的默认设置。自动优先尝试 TokenLab Verified,并在输出、请求接受或持久资源创建之前,可能会切换一次至仅限 Official。

可选值

  • "auto"
  • "verified"
  • "official"

请求体

application/json

响应

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json