API Reference

视频与图片生成 API 文档

上传素材文件,通过统一接口创建视频或图片生成任务、查询任务状态,并查看请求参数、响应结构、状态含义和错误示例。

重要提醒:图片生成也调用 POST /v1/video/generations,图片和视频任务都调用 GET /v1/video/generations/{task_id} 查询。接口相同,请求体不同,请分别参考下方视频和图片生成文档。上传素材、创建任务和查询任务都需要携带 Authorization: Bearer <API Key>;生成参数通过 metadata.payload JSON 字符串传递。各模型时长、素材数量、支持比例和分辨率等参数以模型广场上的模型说明为准。

概览

完整调用流程:

1. 上传素材POST https://files.sudashuiapi.com
返回素材 URL 和文件元数据。
2. 创建任务POST /v1/video/generations
提交视频或图片生成任务,使用对应的请求体。
3. 查询任务GET /v1/video/generations/{task_id}
图片与视频共用此接口,轮询任务状态和结果。
4. 获取结果data.result_url 或 data.data.creations[0].url
任务成功后获取视频或图片地址。

上传素材文件

POSThttps://files.sudashuiapi.com

上传图片、音频或视频。响应中的 url 可用于 imageUrls、audioUrls、videoUrls、firstFrameUrl 或 lastFrameUrl;其余字段用于描述已上传文件。

curl --location 'https://files.sudashuiapi.com' \
  -H 'Authorization: Bearer 你的_API_Key' \
  --form 'file=@"/D:/Users/24553/Pictures/004.jpg"'
const form = new FormData();
form.append("file", fileInput.files[0]);

const response = await fetch("https://files.sudashuiapi.com", {
  method: "POST",
  headers: {
    "Authorization": "Bearer 你的_API_Key"
  },
  body: form
});
const data = await response.json();
import requests

with open(r"D:/Users/24553/Pictures/004.jpg", "rb") as f:
    response = requests.post(
        "https://files.sudashuiapi.com",
        headers={"Authorization": "Bearer 你的_API_Key"},
        files={"file": f},
    )
print(response.json())
<?php
$ch = curl_init("https://files.sudashuiapi.com");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer 你的_API_Key"],
  CURLOPT_POSTFIELDS => [
    "file" => new CURLFile("D:/Users/24553/Pictures/004.jpg")
  ]
]);
echo curl_exec($ch);
{
  "url": "https://files.sudashuiapi.com/proxy/uploads/20260826/1787710210571-665e406a-2c82-4753-b0bc-9c4a0b0d2b31-03e6015fdd3ab97aa764f5221799d69a.png",
  "key": "uploads/20260826/1787710210571-665e406a-2c82-4753-b0bc-9c4a0b0d2b31-03e6015fdd3ab97aa764f5221799d69a.png",
  "size": 899870,
  "contentType": "image/png",
  "expiresAt": "2026-08-26T04:10:10.571Z"
}
字段类型说明
urlstring素材访问 URL,创建视频任务时放入对应的素材字段。
keystring素材在文件存储中的对象键,一般无需在视频请求中传入。
sizeinteger文件大小,单位为字节。
contentTypestring文件 MIME 类型,例如 image/png。
expiresAtstring响应中的时间字段,使用 ISO 8601 格式。

文件类型与限制

类型MIME Type扩展名上传大小
图片image/jpeg.jpeg, .jpg单张小于 30 MB
图片image/png.png单张小于 30 MB
图片image/webp.webp单张小于 30 MB
视频video/mp4.mp4单个小于 50 MB
视频video/quicktime.mov单个小于 50 MB
音频audio/mpeg.mp3单个小于 15 MB
音频audio/wav.wav单个小于 15 MB

创建视频生成任务

POSThttps://api.sudashuiapi.com/v1/video/generations

本节参数规则仅针对视频生成。图片虽然使用同一接口,但请求体不同,请参考图片生成,不要套用视频的 duration、aspectRatio 和 mode 参数规则。

获取可用模型

可用模型和模型能力会持续更新。本页面不固定展示模型列表,请通过模型接口或模型广场查看最新可用模型及详细参数。
通过 API 获取GET https://api.sudashuiapi.com/v1/models
返回当前 API Key 可使用的模型。
通过模型广场查看https://www.sudashuiapi.com/pricing
查看最新模型、价格和单模型参数说明。
curl https://api.sudashuiapi.com/v1/models \
  -H "Authorization: Bearer 你的_API_Key"

不要额外传 resolution,分辨率由模型名决定。

基础参数

字段类型必填说明
modelstring是必须是 /v1/models 或模型广场中当前可用的模型名,分辨率由模型名决定。
promptstring建议填写提示词,支持 @image1、@audio1、@video1 等引用。
durationnumber是通用文档范围为 4 到 15 秒;具体可用时长以模型广场中的单模型说明为准。
metadata.payloadstring是JSON 字符串,不能直接传 JSON 对象。
不要在外层传 images、imageUrls、videoUrls、audioUrls、firstFrameUrl、lastFrameUrl、aspectRatio、mode、resolution。

metadata.payload 参数

metadata.payload 是一个 JSON 字符串。它内部的 JSON 对象支持以下字段:

字段类型必填说明
aspectRatiostring是画面比例
modestring是生成模式:references 或 frames
imageUrlsstring[]否图片 URL 数组,references 模式使用;可用数量以模型广场中的模型说明为准
videoUrlsstring[]否视频 URL 数组,references 模式使用;可用数量以模型广场中的模型说明为准
audioUrlsstring[]否音频 URL 数组,references 模式使用;可用数量以模型广场中的模型说明为准
firstFrameUrlstring条件必填首帧图片 URL,frames 模式必填
lastFrameUrlstring条件必填尾帧图片 URL,frames 模式必填
不同模型支持的时长、参考图片、参考视频、参考音频数量可能不同。下表保留通用调用范围,实际请求请根据模型广场中的模型说明调整。
aspectRatio 可选值1:1 3:4 4:3 9:16 16:9 21:9 adaptive
mode 可选值references frames

参数规则

  • mode=references:用于文生视频、图片参考、视频参考、音频参考,以及多素材组合参考。
  • mode=frames:用于首尾帧视频。
  • mode=frames 时必须传 firstFrameUrl 和 lastFrameUrl。
  • mode=frames 时不能传 imageUrls、videoUrls、audioUrls。
  • mode=references 时不能传 firstFrameUrl、lastFrameUrl。
  • metadata.payload 内不能传 model、resolution、duration、prompt。

素材顺序对应

数组字段数组位置prompt 引用
imageUrlsimageUrls[0] / imageUrls[1]@image1 / @image2
audioUrlsaudioUrls[0] / audioUrls[1]@audio1 / @audio2
videoUrlsvideoUrls[0] / videoUrls[1]@video1 / @video2

@image1 对应第一张图片,不是文件名中的数字。图片、音频、视频的编号互不影响。

生成任务素材限制

素材类型数量限制大小限制时长限制其他限制
图片以模型广场说明为准单张小于 30 MB-支持 jpg / jpeg / png / webp
音频以模型广场说明为准单个小于 15 MB以模型广场说明为准支持 mp3 / wav
视频以模型广场说明为准单个小于 50 MB以模型广场说明为准像素和格式要求以模型广场说明为准
imageUrls、audioUrls、videoUrls 的可用数量由具体模型决定,请以模型广场上对应模型的详细说明为准。

创建任务响应

创建成功响应

创建成功后会返回任务对象。请保存 task_id,用于后续查询。

{
  "id": "task_DrwbCgmERlqqvftqyf2o59FaWynwJPDN",
  "task_id": "task_DrwbCgmERlqqvftqyf2o59FaWynwJPDN",
  "object": "video",
  "model": "sd-api-2-fast-720p",
  "status": "queued",
  "progress": 0,
  "created_at": 1780990464
}

创建失败响应

参数不合法、鉴权失败或其他请求错误时,会返回失败响应。常见参数错误示例:

{
  "code": "fail_to_fetch_task",
  "message": "{\"state\":\"failed\",\"err_code\":\"invalid_request\",\"message\":\"duration must be from 4 to 15 seconds.\",\"creations\":[]}",
  "data": null
}

创建任务场景示例

文生视频

无素材
curl https://api.sudashuiapi.com/v1/video/generations \
  -H "Authorization: Bearer 你的_API_Key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sd-api-2-fast-720p",
    "prompt": "一只可爱的小猫,电影感镜头",
    "duration": 4,
    "metadata": {
      "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"references\"}"
    }
  }'
const response = await fetch("https://api.sudashuiapi.com/v1/video/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer 你的_API_Key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "sd-api-2-fast-720p",
    prompt: "一只可爱的小猫,电影感镜头",
    duration: 4,
    metadata: {
      payload: JSON.stringify({ aspectRatio: "16:9", mode: "references" })
    }
  })
});
const data = await response.json();
import json
import requests

response = requests.post(
    "https://api.sudashuiapi.com/v1/video/generations",
    headers={
        "Authorization": "Bearer 你的_API_Key",
        "Content-Type": "application/json",
    },
    json={
        "model": "sd-api-2-fast-720p",
        "prompt": "一只可爱的小猫,电影感镜头",
        "duration": 4,
        "metadata": {
            "payload": json.dumps({"aspectRatio": "16:9", "mode": "references"})
        },
    },
)
print(response.json())
<?php
$payload = [
  "model" => "sd-api-2-fast-720p",
  "prompt" => "一只可爱的小猫,电影感镜头",
  "duration" => 4,
  "metadata" => [
    "payload" => json_encode(["aspectRatio" => "16:9", "mode" => "references"])
  ]
];

$ch = curl_init("https://api.sudashuiapi.com/v1/video/generations");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer 你的_API_Key",
    "Content-Type: application/json"
  ],
  CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE)
]);
echo curl_exec($ch);

单图参考生视频

@image1
{
  "model": "sd-api-2-fast-720p",
  "prompt": "让 @image1 里的小猫动起来,电影感镜头",
  "duration": 4,
  "metadata": {
    "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"references\",\"imageUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/cat.jpg\"]}"
  }
}

多图参考生视频

@image1 + @image2
{
  "model": "sd-api-2-fast-720p",
  "prompt": "让 @image1 里的角色进入 @image2 的场景中,自然运镜,电影感镜头",
  "duration": 4,
  "metadata": {
    "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"references\",\"imageUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/character.jpg\",\"https://files.sudashuiapi.com/proxy/xxx/scene.jpg\"]}"
  }
}

图片 + 音频参考

@image1 + @audio1
{
  "model": "sd-api-2-fast-720p",
  "prompt": "让 @image1 里的角色跟着 @audio1 的节奏做动作",
  "duration": 4,
  "metadata": {
    "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"references\",\"imageUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/character.jpg\"],\"audioUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/music.mp3\"]}"
  }
}

视频参考

@video1
{
  "model": "sd-api-2-fast-720p",
  "prompt": "参考 @video1 的动作,把主体变成可爱小猫,动画风格",
  "duration": 4,
  "metadata": {
    "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"references\",\"videoUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/reference.mp4\"]}"
  }
}

图片 + 视频 + 音频参考

@image1 + @video1 + @audio1
{
  "model": "sd-api-2-fast-720p",
  "prompt": "让 @image1 里的角色参考 @video1 的动作,并跟随 @audio1 的节奏,生成电影感视频",
  "duration": 4,
  "metadata": {
    "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"references\",\"imageUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/character.jpg\"],\"videoUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/action.mp4\"],\"audioUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/music.mp3\"]}"
  }
}

多图 + 多音频 + 多视频参考

多素材组合
{
  "model": "sd-api-2-fast-720p",
  "prompt": "让 @image1 的角色在 @image2 的场景中,参考 @video1 的动作,配合 @audio1 的节奏,结尾参考 @video2 的镜头运动",
  "duration": 6,
  "metadata": {
    "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"references\",\"imageUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/character.jpg\",\"https://files.sudashuiapi.com/proxy/xxx/scene.jpg\"],\"videoUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/action.mp4\",\"https://files.sudashuiapi.com/proxy/xxx/camera.mp4\"],\"audioUrls\":[\"https://files.sudashuiapi.com/proxy/xxx/music.mp3\",\"https://files.sudashuiapi.com/proxy/xxx/effect.wav\"]}"
  }
}

首尾帧生成视频

frames

首尾帧模式使用 firstFrameUrl 和 lastFrameUrl,不要再传 imageUrls。

{
  "model": "sd-2-1080p",
  "prompt": "从第一张图自然过渡到第二张图,电影感镜头",
  "duration": 6,
  "metadata": {
    "payload": "{\"aspectRatio\":\"16:9\",\"mode\":\"frames\",\"firstFrameUrl\":\"https://files.sudashuiapi.com/proxy/xxx/first.jpg\",\"lastFrameUrl\":\"https://files.sudashuiapi.com/proxy/xxx/last.jpg\"}"
  }
}

创建图片生成任务

图片生成与视频生成使用同一个接口:POST /v1/video/generations。不要因生成的是图片而改用其他路径;两者的区别是 model 和请求体中的生成参数。

请求头携带 Authorization: Bearer 你的_API_Key 和 Content-Type: application/json。以下示例使用 jy-gpt-image-2;也可根据当前模型可用情况选择 jy-nano-banana-2 等图片模型,具体能力和限制以模型广场为准。

图片请求参数

字段类型说明
modelstring图片模型名称,例如 jy-gpt-image-2 或 jy-nano-banana-2。
promptstring图片生成提示词,例如“图1和图2在校园里散步,电影海报风格”。
metadata.payloadstring生成参数的 JSON 字符串,不能直接传 JSON 对象。

metadata.payload 内部 JSON 对象使用以下图片参数:

字段类型说明
ratiostring图片比例,例如 16:9、9:16;支持范围以具体模型说明为准。
resolutionstring图片分辨率,例如 4k、2k;支持范围以具体模型说明为准。
imageUrlsstring[]参考图片 URL 数组。示例中的“图1”“图2”按数组顺序对应;素材可先通过上传接口获取 URL,数量限制以模型说明为准。
图片示例使用 ratio,不是视频的 aspectRatio;resolution 放在 metadata.payload 字符串内部。无需照搬视频示例中的 duration 或 mode。

参考图生成图片

图1 + 图2
{
  "model": "jy-gpt-image-2",
  "prompt": "图1和图2在校园里散步,电影海报风格",
  "metadata": {
    "payload": "{\"ratio\":\"16:9\",\"resolution\":\"4k\",\"imageUrls\":[\"https://files.sudashuiapi.com/proxy/uploads/20260714/1783992654249-85a0f712-8e64-4b33-9d84-3fa1e096f34f-03e6015fdd3ab97aa764f5221799d69a.png\",\"https://files.sudashuiapi.com/proxy/uploads/20260714/1783992675451-964e7736-da18-492b-9283-c9fa2566c97e-59a2287c9b1fb4fce02ba547f7e0064f.png\"]}"
  }
}

图片任务提交响应

以下提交响应及后面的生成中、成功响应来自一个 jy-nano-banana-2 任务;失败响应来自另一个 jy-gpt-image-2 任务。提交后请保存顶层 task_id 用于查询,queued 仅表示任务已排队,不代表图片已生成。

{
  "id": "task_0B1TG8dELxmKgPaXaNEylCuQx7yFZVed",
  "task_id": "task_0B1TG8dELxmKgPaXaNEylCuQx7yFZVed",
  "object": "video",
  "model": "jy-nano-banana-2",
  "status": "queued",
  "progress": 0,
  "created_at": 1792549940
}

由于复用视频任务接口,图片任务提交响应的 object 也可能是 video,这是正常的兼容结构,不表示实际生成视频。

查询图片生成任务

GEThttps://api.sudashuiapi.com/v1/video/generations/{task_id}

图片任务轮询也与视频完全相同。将提交响应中的 task_id 拼接在 /v1/video/generations/ 后,并携带同一个 API Key。不要使用响应内层 data.data.task_id 或 payload 中的上游任务 ID。

例如查询下面的失败任务:https://api.sudashuiapi.com/v1/video/generations/task_fs52kLJLzP8bLZjo2V4FLWY3VkNRzjLz。实际调用时请替换为本次提交返回的任务 ID。

curl --location 'https://api.sudashuiapi.com/v1/video/generations/task_fs52kLJLzP8bLZjo2V4FLWY3VkNRzjLz' \
  -H 'Authorization: Bearer 你的_API_Key'

其他语言的查询方式与通用任务查询示例一致,只需替换任务 ID。可间隔数秒轮询一次,在任务成功或失败后停止轮询。

图片任务状态

阶段状态字段处理方式
提交成功提交响应 status: queued保存顶层 task_id,开始查询。
排队或生成中查询响应 data.status: NOT_START / SUBMITTED / IN_PROGRESS继续轮询。生成中示例同时包含 NOT_START 和 data.data.state: processing。
生成成功data.status: SUCCESS,data.data.state: success停止轮询,获取图片 URL。
生成失败data.status: FAILURE,data.data.state: failed停止轮询,读取错误详情。
顶层 code: "success" 只表示查询请求成功,不表示生成成功。请根据 data.status 和 data.data.state 判断任务结果;progress: "100%" 也可能出现在失败任务中。

生成中示例

生成中响应的 data.data.images 是参考图片,不是最终生成结果。

{
  "code": "success",
  "message": "",
  "data": {
    "id": 2289491,
    "created_at": 1792549940,
    "updated_at": 1792549940,
    "task_id": "task_0B1TG8dELxmKgPaXaNEylCuQx7yFZVed",
    "platform": "52",
    "user_id": 1,
    "group": "ssvip",
    "channel_id": 17,
    "quota": 60000,
    "action": "textGenerate",
    "status": "NOT_START",
    "fail_reason": "",
    "submit_time": 1792549940,
    "start_time": 0,
    "finish_time": 0,
    "progress": "0%",
    "properties": {
      "input": "",
      "upstream_model_name": "jy-nano-banana-2",
      "origin_model_name": "jy-nano-banana-2"
    },
    "data": {
      "model": "jy-nano-banana-2",
      "ratio": "9:16",
      "state": "processing",
      "images": [
        "https://files2.sudashuiapi.com/ceshi/004.jpg",
        "https://files2.sudashuiapi.com/ceshi/20260827-232002.png"
      ],
      "prompt": "图1和图2幸福的生活在一起,电影海报风格",
      "payload": "{\"id\":\"task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r\",\"status\":\"processing\",\"model\":\"jy-nano-banana-2\",\"ratio\":\"9:16\",\"resolution\":\"2k\",\"provider\":\"jingyu-image\"}",
      "task_id": "task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r",
      "created_at": "2026-10-21T02:32:20.059Z",
      "resolution": "2k"
    }
  }
}

图片生成成功示例

确认任务成功后,读取 data.result_url 或 data.data.creations[0].url 获取图片。data.data.payload 是 JSON 字符串,解析后也可读取 publicImageUrl;通常直接使用前两个字段即可。

{
  "code": "success",
  "message": "",
  "data": {
    "id": 2289491,
    "created_at": 1792549940,
    "updated_at": 1792549970,
    "task_id": "task_0B1TG8dELxmKgPaXaNEylCuQx7yFZVed",
    "platform": "52",
    "user_id": 1,
    "group": "ssvip",
    "channel_id": 17,
    "quota": 60000,
    "action": "textGenerate",
    "status": "SUCCESS",
    "fail_reason": "",
    "result_url": "https://files.sudashuiapi.com/proxy/outputs/jyi/task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r.jpg",
    "submit_time": 1792549940,
    "start_time": 0,
    "finish_time": 1792549970,
    "progress": "100%",
    "properties": {
      "input": "",
      "upstream_model_name": "jy-nano-banana-2",
      "origin_model_name": "jy-nano-banana-2"
    },
    "data": {
      "state": "success",
      "credits": 0,
      "message": "",
      "payload": "{\"id\":\"task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r\",\"status\":\"completed\",\"provider\":\"jingyu-image\",\"publicImageUrl\":\"https://files.sudashuiapi.com/proxy/outputs/jyi/task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r.jpg\",\"progress\":\"100%\"}",
      "err_code": "",
      "creations": [
        {
          "id": "task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r",
          "url": "https://files.sudashuiapi.com/proxy/outputs/jyi/task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r.jpg",
          "cover_url": "https://files.sudashuiapi.com/proxy/outputs/jyi/task_img_jyi_task_ETWpGo65gmDRZGWZDRfm8M1f9B98dg4r.jpg"
        }
      ]
    }
  }
}

图片生成失败示例

失败时优先查看 data.data.message 获取详细原因,并保留 data.data.err_code 和 data.fail_reason。此例为上游没有可用渠道;result_url 是错误码 request_failed,不是可下载的图片地址。

{
  "code": "success",
  "message": "",
  "data": {
    "id": 2289169,
    "created_at": 1792549627,
    "updated_at": 1792549666,
    "task_id": "task_fs52kLJLzP8bLZjo2V4FLWY3VkNRzjLz",
    "platform": "52",
    "user_id": 1,
    "group": "ssvip",
    "channel_id": 17,
    "quota": 60000,
    "action": "textGenerate",
    "status": "FAILURE",
    "fail_reason": "request_failed",
    "result_url": "request_failed",
    "submit_time": 1792549627,
    "start_time": 0,
    "finish_time": 1792549666,
    "progress": "100%",
    "properties": {
      "input": "",
      "upstream_model_name": "jy-gpt-image-2",
      "origin_model_name": "jy-gpt-image-2"
    },
    "data": {
      "state": "failed",
      "credits": 0,
      "message": "No available channel for model gpt-image-2 under group svip (distributor) (request id: 202610210227130829365208268d9d6UO54sqaS)",
      "payload": "{\"id\":\"task_img_jyi_task_nghis7VUEsPl3cFBFNxSzICNccJcRYd7\",\"status\":\"failed\",\"provider\":\"jingyu-image\",\"error_code\":\"request_failed\",\"error\":\"No available channel for model gpt-image-2 under group svip (distributor) (request id: 202610210227130829365208268d9d6UO54sqaS)\"}",
      "err_code": "request_failed",
      "creations": []
    }
  }
}

通用任务查询

GEThttps://api.sudashuiapi.com/v1/video/generations/{task_id}

视频与图片任务均使用此接口查询,以下是视频任务的多语言查询和响应示例。图片响应示例见图片任务查询。

curl https://api.sudashuiapi.com/v1/video/generations/task_DrwbCgmERlqqvftqyf2o59FaWynwJPDN \
  -H "Authorization: Bearer 你的_API_Key"
const response = await fetch(
  "https://api.sudashuiapi.com/v1/video/generations/task_DrwbCgmERlqqvftqyf2o59FaWynwJPDN",
  { headers: { "Authorization": "Bearer 你的_API_Key" } }
);
const data = await response.json();
import requests

response = requests.get(
    "https://api.sudashuiapi.com/v1/video/generations/task_DrwbCgmERlqqvftqyf2o59FaWynwJPDN",
    headers={"Authorization": "Bearer 你的_API_Key"},
)
print(response.json())
<?php
$ch = curl_init("https://api.sudashuiapi.com/v1/video/generations/task_DrwbCgmERlqqvftqyf2o59FaWynwJPDN");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer 你的_API_Key"]
]);
echo curl_exec($ch);

状态说明

外层状态内层 state含义
NOT_STARTprocessing(图片示例)任务尚未结束,继续查询
SUBMITTEDqueueing已提交,排队中
IN_PROGRESSprocessing生成中
SUCCESSsuccess生成成功
FAILUREfailed生成失败

成功示例

{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "task_DrwbCgmERlqqvftqyf2o59FaWynwJPDN",
    "status": "SUCCESS",
    "result_url": "https://files.sudashuiapi.com/proxy/generating/output.mp4",
    "progress": "100%",
    "data": {
      "state": "success",
      "message": "",
      "err_code": "",
      "creations": [
        {
          "id": "6a27c2007f67cc1d1c5bdcc7",
          "url": "https://files.sudashuiapi.com/proxy/generating/output.mp4",
          "cover_url": "https://files.sudashuiapi.com/proxy/generating/first.jpg"
        }
      ]
    }
  }
}

失败示例

{
  "code": "success",
  "message": "",
  "data": {
    "task_id": "task_mDlJcHGjpem3n6aR4I0DeiYMOqvtWAA6",
    "status": "FAILURE",
    "fail_reason": "Real human faces are not supported.",
    "result_url": "Real human faces are not supported.",
    "progress": "100%",
    "data": {
      "state": "failed",
      "message": "Real human faces are not supported.",
      "err_code": "Real human faces are not supported.",
      "creations": []
    }
  }
}

错误响应

参数错误

{
  "code": "fail_to_fetch_task",
  "message": "{\"state\":\"failed\",\"err_code\":\"invalid_request\",\"message\":\"duration must be from 4 to 15 seconds.\",\"creations\":[]}",
  "data": null
}

常见错误原因

错误原因说明
duration must be from 4 to 15 seconds时长不在 4-15 秒范围内。
metadata.payload.aspectRatio must be one of...画面比例不合法。
metadata.payload.mode must be one of...生成模式不合法。
Do not pass top-level images...媒体参数不能放外层。
unauthorized缺少或使用了无效 API Key。