快速说明
cstask_xxx 任务 ID。succeeded 后读取结果 URL。鉴权与 SK
sk_live_ 开头,只能调用视频生成接口。sk_img_ 开头,只能调用图片生成接口。Authorization: Bearer sk_live_xxx
Authorization: Bearer sk_img_xxx
视频生成 API
/health 的 defaults.videoProviders 中仍开放的线路;通用地址为 /api/v3。
curl -X POST 'https://canseedream.com/api/v3/contents/generations/tasks' \
-H 'Authorization: Bearer sk_live_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: video-request-001' \
-d '{
"model": "video",
"provider_route": "tc_pool",
"duration": 10,
"prompt": "生成一段 10 秒视频。使用 @Image1 作为主体参考,电影感,动作连贯,画面清晰。",
"image_urls": ["https://example.com/reference.png"],
"audio_urls": [
{ "url": "https://example.com/reference.mp3", "durationSeconds": 8 }
],
"video_urls": [
{ "url": "https://example.com/reference.mp4", "durationSeconds": 6 }
],
"aspect_ratio": "9:16",
"generate_audio": true,
"number_of_runs": 1
}'
当前开放线路
芋泥 Seedance 2.5:480p / 720p
resolution: "480p" 或 "720p";兼容 video_resolution。不传时旧 API 仍默认 720p。480p 未开放或未配置价格时拒绝请求,不会静默改为 720p。{
"prompt": "生成一段自然风景视频",
"duration": 4,
"resolution": "480p",
"aspect_ratio": "16:9"
}
请求头使用 Authorization: Bearer sk_live_你的密钥 和 Content-Type: application/json。参考素材仍使用现有 images、audio_urls、video_urls 等字段;参考顺序和编号规则不变。2.5 时长为 4–30 秒,实际开放模型由服务端配置。
视频超分与补帧
VIDEO_ENHANCE_ENABLED=true 且模式为 user 时,请在提交请求中传入 enhance: true。目标清晰度支持 source、720p、1080p、2k、4k;其中 source 表示保持原清晰度、只做补帧,必须同时传入数字帧率。目标帧率支持 source、24、30、48、60。720p 视频的超分选项从 1080p 开始,但仍可用 source + 数字帧率进行 720p 补帧。独立超分页面和视频生成后的增强使用独立积分配置,具体价格由服务端环境变量决定。
{
"enhance": true,
"enhance_settings": {
"targetResolution": "1080p",
"targetFps": "source"
}
}
| 情形 | 结果与积分 |
|---|---|
| 480p -> 720p | 允许增强;增强成功后返回 720p 结果。 |
| 720p -> 720p | 超分不允许同分辨率;如只需补帧,请使用 source + 数字帧率,原始分辨率保持不变。 |
| 增强失败 | 原始生成视频仍返回给用户;基础视频积分保留;增强积分释放,不会因为增强失败额外扣分。 |
| 基础视频失败 | 增强积分释放;基础视频积分继续按所选线路的失败计费规则处理。 |
| 服务端 force 模式 | 所有视频自动进入增强,客户端不能关闭;最终是否扣增强积分仍以增强任务成功为准。 |
图片生成 API
@Image1、@Image2。curl -X POST 'https://canseedream.com/api/v3/images/generations/tasks' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: image-request-001' \
-d '{
"model": "GPT Image 2",
"prompt": "生成一张橘猫道长,国风电影感,高清细节",
"size": "1024x1024",
"quality": "auto",
"background": "opaque",
"n": 1
}'
{
"prompt": "参考 @Image1 保持主体身份,将服装改为 @Image2 的紫色道袍风格,电影感柔光。",
"images": [
"https://example.com/person.png",
"https://example.com/cloth.png"
],
"size": "1024x1024",
"quality": "auto",
"background": "opaque",
"n": 1
}
{
"prompt": "把画布中的人物改成水彩插画风格。",
"images": [
{ "data_url": "data:image/png;base64,iVBORw0KGgo..." }
],
"size": "1024x1024",
"quality": "auto",
"n": 1
}
Nano2 / Nano2 Pro 专属图片 API
| 模型 | 创建任务 | 查询任务 |
|---|---|---|
| Nano2 | POST /nano2/api/v3/images/generations/tasks | GET /nano2/api/v3/images/generations/tasks/{id} |
| Nano2 Pro | POST /nano2pro/api/v3/images/generations/tasks | GET /nano2pro/api/v3/images/generations/tasks/{id} |
最近任务列表:对对应创建地址发送 GET,可加 ?limit=20。这些是异步接口,不是通用 /v1/images/generations 的 Nano 同步替代入口。
请求参数
| 参数 | 说明 |
|---|---|
prompt | 必填,非空提示词。 |
images | 可选参考图数组,支持公网 URL 或 {"data_url":"data:image/png;base64,..."}。默认最多14张,以当前配置为准。顺序对应 @Image1、@Image2。 |
resolution | 1K / 2K / 4K,建议明确填写;当前 API 省略或无法识别时回落1K。 |
aspect_ratio | 例如 1:1 / 16:9 / 9:16。完整列表见运行配置。当前无效比例回落 Nano2 的 Default 或 Pro 的 auto。 |
n | 默认1,当前默认上限8(可配置)。多张图会创建多个任务,逐个查询 tasks[].id。 |
Idempotency-Key | 推荐请求头。同一请求网络重试保留原键,新任务换新键。也可使用 JSON 字段 idempotency_key。 |
专属路径可省略 model。当前 Nano 接入固定使用 quality=auto、background=opaque、output_format=png,这三个字段不提供自定义控制。
当前服务端配置
/health → defaults.image.providers;未开放的线路不会显示为可用。价格是每张图的配置积分,不是运行中已完成扣费的证明。curl -sS 'https://canseedream.com/nano2/api/v3/images/generations/tasks' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: nano2-text-001' \
-d '{
"prompt": "生成一张橘猫道长,国风电影感,柔和自然光",
"resolution": "2K",
"aspect_ratio": "1:1",
"n": 1
}'
curl -sS 'https://canseedream.com/nano2pro/api/v3/images/generations/tasks' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: nano2pro-edit-001' \
-d '{
"prompt": "参考 @Image1 保持人物外观,参考 @Image2 的服装,生成电影海报",
"images": ["https://example.com/person.png", "https://example.com/clothes.png"],
"resolution": "2K",
"aspect_ratio": "9:16",
"n": 1
}'
替换示例 SK 与图片 URL 后使用。两种模型都支持文生图与图生图,只需替换路径;每次新生成请更换幂等键。多图优先 URL,请求体大小默认32 MiB,受服务器配置限制。
{
"id": "cstask_example",
"object": "image.generation",
"request_id": "csreq_example",
"provider_route": "nano2pro",
"status": "queued",
"tasks": [{
"id": "cstask_example",
"model": "nano2pro",
"provider_route": "nano2pro",
"status": "queued",
"progress": 0,
"content": null,
"error": null
}],
"idempotent": false
}
id 是第一条任务 ID,需遍历 tasks[].id 获取全部结果。创建响应顶层 model 是历史兼容字段,请以 provider_route 和 tasks[].model 判断线路。curl -sS 'https://canseedream.com/nano2pro/api/v3/images/generations/tasks/cstask_example' \
-H 'Authorization: Bearer sk_img_xxx'
将 cstask_example 换成提交返回的任务 ID。Nano2 则使用 /nano2/…。建议每5–10秒查询一次。
| status | 处理 |
|---|---|
queued / running | 继续查询,不重新创建。 |
succeeded | 读取 content.image_url;备份图在 content.backup_image_url,可能为空。 |
failed | 读取 error.code / error.message,停止轮询。HTTP 200 不代表任务成功。 |
提交时冻结积分,最终消费或退还以服务端结算规则为准。幂等重放返回 idempotent: true;不要跨 SK 或线路复用幂等键。查询错误先重试查询。收到429应退避,413应缩小请求体;需要长期保存时及时下载结果,不自行拼接图片 URL。
GPT Img 2.5 专属线路
gptimg-2.5,线路标识 gptimg_2_5。需要服务端启用该线路。Authorization: Bearer sk_img_xxx,共用用户积分及图片 SK 额度限制。旧接口继续可用;不传新模型时保留原默认行为。专属入口可省略 model,但不能传其他模型。Flare/Sunburst 请填在 variant,不要填在 model。专属接口与兼容地址
| 方式 | 方法与路径 | 说明 |
|---|---|---|
| 异步创建 | POST /gptimg-2.5/api/v3/images/generations/tasks | 返回任务 ID;无参考图为文生图,有参考图为图生图。 |
| 异步查询 | GET /gptimg-2.5/api/v3/images/generations/tasks/:taskId | 使用返回的任务 ID,携带图片 SK 查询。 |
| 同步生成 | POST /gptimg-2.5/v1/images/generations | 等待完成,返回图片 URL。 |
| 同步编辑 | POST /gptimg-2.5/v1/images/edits | 至少一张参考图,支持 JSON 或 multipart。 |
https://canseedream.com/gptimg-2.5/v1,Model ID 为 gptimg-2.5。也可使用旧 /v1/images/generations、/v1/images/edits 或 /api/v3/images/generations/tasks,请求体明确传 model: "gptimg-2.5"。同步入口还需服务端开启同步图片 API。参数
| 参数 | 可选值 / 类型 | 说明 |
|---|---|---|
model | gptimg-2.5 | 旧通用入口选用本线路时必传。 |
prompt | 字符串,必填 | 参考图按顺序使用 @Image1 至 @Image16。 |
variant | Flare / Sunburst | 初始默认 Flare,可由服务端调整。 |
quality | auto / low / medium / high / xhigh / max | 初始默认 low。前台显示 Normal,API 仍传 low,不要传 normal。 |
image_size | auto / square_hd / square / portrait_4_3 / portrait_16_9 / landscape_4_3 / landscape_16_9 | 默认 auto;也可用 size 传这些枚举。不支持任意宽高。 |
background | auto / transparent / opaque | 默认 auto;transparent 不可搭配 jpeg。 |
output_format | png / jpeg / webp | 默认 png,控制图片文件格式。 |
image_urls | HTTPS 图片 URL 数组,最多16张 | 不传则文生图;同步 edits 必须有参考图。 |
mask | 可选图片 HTTPS URL / data URL;multipart 可传单个 mask 文件 | 遮罩必须配合参考图,不占16张参考图名额。不传则普通图生图。 |
n | 正整数,默认1 | 生成数量受服务端上限限制;预留积分为每张售价 × n。 |
response_format | 同步入口仅支持 url | 不是 output_format;不支持 b64_json 输出或流式响应。 |
1024x1024 → square_hd、512x512 → square。其他旧尺寸请改用上表枚举,不会自动降级。异步文生图与查询
curl -X POST 'https://canseedream.com/gptimg-2.5/api/v3/images/generations/tasks' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: gpt25-text-001' \
-d '{
"model": "gptimg-2.5",
"prompt": "生成一张茶杯产品图,柔和光线,简洁背景",
"variant": "Flare",
"quality": "low",
"image_size": "landscape_4_3",
"background": "opaque",
"output_format": "png",
"n": 1
}'
curl 'https://canseedream.com/gptimg-2.5/api/v3/images/generations/tasks/cstask_替换为返回的任务ID' \
-H 'Authorization: Bearer sk_img_xxx'
异步响应沿用原图片任务格式:status: succeeded 时读取 content.image_url;失败查看 error。查询必须属于当前用户及图片 SK。
同步图生图(可选遮罩)
curl -X POST 'https://canseedream.com/gptimg-2.5/v1/images/edits' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: gpt25-edit-001' \
-d '{
"model": "gptimg-2.5",
"prompt": "参考 @Image1,将遮罩标记区域编辑为柔和的摄影棚背景",
"image_urls": ["https://example.com/reference.png"],
"mask": "https://example.com/mask.png",
"variant": "Flare",
"quality": "low",
"image_size": "auto",
"background": "opaque",
"output_format": "png",
"response_format": "url",
"n": 1
}'
curl -X POST 'https://canseedream.com/gptimg-2.5/v1/images/edits' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Idempotency-Key: gpt25-file-edit-001' \
-F 'model=gptimg-2.5' \
-F 'prompt=参考图片编辑遮罩标记区域,保持主体一致' \
-F 'image[]=@./reference.png' \
-F 'mask=@./mask.png' \
-F 'variant=Flare' \
-F 'quality=low' \
-F 'image_size=auto' \
-F 'output_format=png' \
-F 'n=1'
{"created": ..., "data": [{"url": "..."}]}。素材 URL 和文件请替换成实际值。独立计费
下面仅是初始预设,每张图片的平台售价,不是上游成本,也不是固定承诺。实际价格和开放档位以服务器配置/图片页面预计积分为准;新模型不沿用旧 img-2 的质量倍率。
| quality | Flare 预设积分/张 | Sunburst 预设积分/张 |
|---|---|---|
| low(Normal) | 8 | 16 |
| medium | 12 | 24 |
| high | 16 | 32 |
| xhigh | 24 | 48 |
| max | 32 | 64 |
| auto | 16 | 32 |
图片特供版(同步)
使用设置了有限积分额度的
sk_img_*。额度为 0 的无限密钥不能调用此接口。Idempotency-Key 建议携带但默认可选。无法添加自定义请求头的 OpenAI 兼容画布可直接调用;相同请求仍在运行时,服务端会复用原任务,防止超时重试重复扣分。画布接入配置
接口格式:OpenAI 兼容
Base URL:https://canseedream.com
API Key:sk_img_xxx
Model ID:gpt-image-2
gpt-img-2、gpt_image_2 和 GPT Image 2,均使用现有 GPT Image 2 图片账号池。quality 支持 auto(正常 ×1)、medium(优秀 ×2)和 high(极优 ×11);省略时保持 auto。文生图
curl -X POST 'https://canseedream.com/v1/images/generations' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: image-sync-001' \
-d '{
"model": "gpt-image-2",
"prompt": "白色背景上的红色马克杯,干净的产品摄影",
"size": "auto",
"quality": "auto",
"response_format": "url",
"n": 1
}'
图生图
curl -X POST 'https://canseedream.com/v1/images/edits' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Idempotency-Key: image-edit-sync-001' \
-F 'model=gpt-image-2' \
-F 'prompt=保留主体,将背景替换为专业摄影棚' \
-F 'quality=high' \
-F '[email protected]' \
-F '[email protected]' \
-F 'response_format=url'
curl -X POST 'https://canseedream.com/v1/images/edits' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: image-edit-url-sync-001' \
-d '{
"model": "gpt-image-2",
"prompt": "保留 @Image1 的主体,参考 @Image2 的服装风格",
"image_urls": [
"https://example.com/reference-1.png",
"https://example.com/reference-2.jpg"
],
"size": "auto",
"quality": "auto",
"response_format": "url",
"n": 1
}'
curl -X POST 'https://canseedream.com/v1/images/edits' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: image-edit-base64-001' \
-d '{
"model": "gpt-image-2",
"prompt": "保留主体,将背景替换为专业摄影棚",
"image_base64": "data:image/png;base64,iVBORw0KGgo...",
"size": "auto",
"quality": "auto",
"response_format": "url"
}'
curl -X POST 'https://canseedream.com/v1/images/edits' \
-H 'Authorization: Bearer sk_img_xxx' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: image-edit-multi-base64-001' \
-d '{
"model": "gpt-image-2",
"prompt": "保留 @Image1 的主体,参考 @Image2 的服装风格",
"image_base64s": [
"data:image/png;base64,iVBORw0KGgo...",
"data:image/jpeg;base64,/9j/4AAQSkZJRg..."
],
"size": "auto",
"quality": "auto",
"response_format": "url",
"n": 1
}'
{
"created": 1784592000,
"data": [
{ "url": "https://canseedream.com/api/local-results/image/123?token=..." }
]
}
size 省略时默认为 auto,也可以显式传入 auto 或支持的固定尺寸。同步接口默认值可通过 IMAGE_SYNC_DEFAULT_SIZE 独立配置。Base64 仅用于输入参考图;返回仍只支持
response_format=url,不支持 b64_json 或流式响应。旧 GPT Image 2 不支持 mask;GPT Img 2.5 的遮罩用法见专属章节。返回地址为带签名的结果链接。生成结果保存到本地服务器后即可返回;读取时优先使用本地文件。本地文件已清理且存在 MinIO 备份时,会自动从备份读取。没有备份时,链接有效期不会超过本地文件保留时间。
本地文件使用 multipart 并重复传入
image 字段;远程图片使用 JSON 的 image_urls;单张 Base64 使用 image_base64,多张使用 image_base64s 数组,推荐每项都传携带 MIME 的完整 Data URL。数组顺序对应 @Image1、@Image2,不能把多张图片拼进同一个 Base64 字符串。HTTPS 与 Base64 可混用;混合输入需要严格保持顺序时,将 URL、Data URL 或 b64_json 对象依次放入同一个 images 数组。最多支持 16 张参考图;单图大小、全部 Base64 解码后的合计大小和 JSON 请求体大小分别受服务端配置限制。Base64 会校验实际图片格式并转存为临时文件,不会写入任务 JSON 或数据库。HTTP 等待超时会返回
504 generation_timeout,后台任务仍会继续。使用完全相同的请求内容重试会继续等待原任务;显式携带 Idempotency-Key 时保护范围更长。同一个
Idempotency-Key 不能用于不同的提示词、参数或参考图;内容变化时会返回 409 idempotency_conflict。查询任务
视频任务
curl 'https://canseedream.com/api/v3/contents/generations/tasks/cstask_xxx' \
-H 'Authorization: Bearer sk_live_xxx'
图片任务
curl 'https://canseedream.com/api/v3/images/generations/tasks/cstask_xxx' \
-H 'Authorization: Bearer sk_img_xxx'
| 状态 | 含义 |
|---|---|
queued | 任务已进入队列,等待资源。 |
running | 任务正在生成或上传结果。 |
succeeded | 任务成功,读取 content.video_url 或 content.image_url。 |
failed | 任务失败,查看 error.code 和 error.message。 |
参数限制
| 模块 | 限制 |
|---|---|
| 视频尺寸/时长 | 清晰度和时长按线路配置;默认线路传参时长固定为 auto;西瓜和西瓜2线路由服务器配置 480p 或 720p,duration 支持 4-15 秒;其他可选时长线路按各自配置执行。西梅、薯条和香蕉按秒线路固定 720p;按秒线路按所选秒数乘以服务器单价冻结积分;桔子线路默认 720p,苹果线路支持服务器配置的 480p 或 720p。 |
| 视频参考素材 | 默认线路:图片 9 张、音频 3 个、视频 3 个、累计素材 10 个;其他线路以服务器开放配置为准。 |
| 桔子提示词 | 桔子线路默认最多 5000 个字符,实际限制以服务器配置为准。 |
| 音频/视频时长 | 音频累计不超过 15 秒,视频累计不超过 15 秒,两者独立计算;视频参考需要提供 durationSeconds。 |
| 图片参考图 | 最多 16 张;没有参考图为文生图,有参考图为图生图。 |
| 图片特供版 | 默认单次最多生成 4 张;JSON 请求体最大 2 MiB,完整请求体最大 96 MiB,单张上传文件最大 20 MiB。实际限制以服务端配置为准。 |
| 图片质量 | 旧 GPT Image 2:auto / medium / high。GPT Img 2.5:auto / low / medium / high / xhigh / max,其中 low 显示为 Normal。 |
| 图片尺寸 | 旧 GPT Image 2:auto、1024x1024、1536x1024、1024x1536、2048x2048、2048x1152、3840x2160、2160x3840。GPT Img 2.5 使用专属尺寸枚举。 |
积分与幂等
Idempotency-Key。相同 key 会返回已有任务,避免客户端重试造成重复提交。错误处理
error.code 分支处理。| 错误码 | 建议处理 |
|---|---|
NoAvailableResource | 当前生成资源不足,可稍后重试或提示用户等待。 |
ModerationFailed | 内容未通过安全检查,请调整提示词或参考素材。 |
ServiceUnavailable | 上游服务暂时不可用,建议延迟重试。 |
TaskFailed | 普通失败,展示友好文案并保留任务 ID 便于排查。 |
NotFound | 任务不存在,确认 SK 类型、用户归属和任务 ID 是否一致。 |
idempotency_conflict | 同一个幂等键对应的请求内容发生变化;请为新请求使用新的 Idempotency-Key。 |
generation_timeout | 同步等待已超时,任务仍在后台继续;请使用原请求内容和原幂等键重试。 |
rate_limit_exceeded | 同步请求并发或频率超过限制,请降低并发并延迟重试。 |
GPT Img 2.5 独立备用版
仅在管理员开放时可用。创建:POST /agtoken-gptimg-2.5/api/v3/images/generations/tasks;查询:同一路径下的 /{本地任务ID}。使用本站图片 SK,不是供应商 Key。
参数:prompt、images、variant=Flare/Sunburst、size=1k/2k/4k、quality、n。最多6张参考图,不支持 mask、透明背景,输出PNG。质量档和价格以服务端配置为准。
此入口与原版 GPT Img 2.5 独立,不静默删除不支持的参数;切回原上游后原版能力保留。2.0、Nano2、Nano2 Pro 的既有接口不需要修改。切换不迁移已提交任务。
大米 A / B 异步视频线路
仅在管理员启用线路后可用。两条线路的模型、清晰度、时长范围及价格各自配置,以服务端返回的线路信息为准。
专属入口:POST /dami_a_pool/api/v3/contents/generations/tasks、POST /dami_b_pool/api/v3/contents/generations/tasks。沿用上方视频 SK 鉴权与请求格式,提交后按返回的本地任务 ID 查询相同入口下的 /{id}。
支持 resolution 和 duration;清晰度未开放、价格未配置或用户积分不足时拒绝创建。按条/按秒价格由后台配置。生成失败不扣用户积分,成功转存后才结算。
接口不接受上游 Key、计费空间、人脸模式或模型 ID 覆盖。参考素材可以使用公网 URL;任务的模型及人脸模式由管理员配置并固定到任务中。提交结果待确认时不要重复提交。
大米 E 异步视频线路
创建:POST /dami_e_pool/api/v3/contents/generations/tasks;查询:同一路径下的 /{本地任务ID}。沿用站内视频 SK 鉴权、积分预占和任务归属检查。
支持文字、图片、音频、视频和混合参考。可以使用 references(对象包含 assetType、url),或 images/audios/videos、image_urls/audio_urls/video_urls。同一素材不要重复放入多个字段。
参考视频 URL 对象需提供正数 durationSeconds。例如 "videos":[{"url":"https://example.com/ref.mp4","durationSeconds":10}]。数量与累计时长以服务端线路配置为准。
清晰度可配置开放 auto/480p/720p;模型由服务器固定,不接受客户端覆盖。视频字段与具体清晰度的上游实际支持情况需由供应商确认。
大米 C 异步视频线路
沿用上方视频 SK 鉴权、请求体和任务查询格式。专属入口:POST /dami_c_pool/api/v3/contents/generations/tasks;查询:GET /dami_c_pool/api/v3/contents/generations/tasks/{本地任务ID}。
模型、时长档位、清晰度、比例及价格以服务端返回的线路配置为准。当前协议只支持文生视频和最多10张图片参考,不支持音频/视频参考。非法时长在本地拒绝,不自动回落上游默认档位。
提交后使用本地任务 ID 查询,不需要上游 Key;成片由服务端鉴权下载并转存,失败释放用户积分。图生视频的实际比例可能随参考图变化,查询回显尺寸并不保证是成片尺寸。