1. 三步快速接入
| API Base URL | https://www.chaomoapi.com/v1 |
|---|
| 鉴权 | Authorization: Bearer sk-xxxx |
|---|
| 模型查询 | GET /v1/models |
|---|
先选分组,再调用模型:创建 API Key 时选择分组;分组决定这个 Key 能调用哪些 model 和按什么价格计费。接口请求里不传分组名称,只传 /v1/models 返回的模型 ID。
① 查模型用当前 API Key 调用 GET /v1/models,确认可用 model。
② 提交调用生成或编辑接口,保存返回的 task_id。
③ 轮询下载每 3–5 秒查询任务,completed 后读取 data[0].url。
最小文生图请求
curl https://www.chaomoapi.com/v1/images/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image2-1K",
"prompt": "一只坐在窗边的橘猫,柔和自然光",
"ratio": "1:1",
"n": 1,
"response_format": "url",
"async": true
}'
提交成功
{
"id": "task-...",
"task_id": "task-...",
"object": "image.task",
"status": "running",
"data": []
}
查询任务
curl https://www.chaomoapi.com/v1/images/task-... \
-H "Authorization: Bearer sk-xxxx"
最重要:收到 202 只表示任务已接收。必须保存并轮询 task_id,直到状态变为 completed 或 failed。
2. 接口与参数
| 用途 | 方法与路径 | 请求格式 |
|---|
| 查询可用模型 | GET /v1/models | 无请求体 |
| 文生图 | POST /v1/images/generations | application/json |
| 参考图编辑 | POST /v1/images/edits | multipart/form-data |
| 视频生成 | POST /v1/video/generations 或 POST /v1/videos | application/json |
| 查询图片任务 | GET /v1/images/{task_id} | 无请求体 |
| 查询视频任务 | GET /v1/videos/{task_id} | 无请求体 |
通用参数
| 参数 | 要求 | 说明 |
|---|
model | 必填 | 使用 /v1/models 返回的模型 ID,不填写后台分组名称。 |
prompt | 必填 | 图片描述或编辑要求。 |
ratio | 建议填写 | 宽高比字符串,例如 1:1、16:9;不要在此字段传像素尺寸。 |
size | Low 可选 | Low 系列可直接传 宽x高 像素值并原样提交;同时传入时以 size 为准。 |
n | 固定 | 固定为 1。 |
response_format | 建议 | 异步任务使用 url;Low 同步请求的 url 或 b64_json 会按请求传递。 |
async | 建议 | 长耗时任务建议传 true 并轮询任务状态。 |
image[] | 编辑必填 | 参考图文件,支持 1–9 张;第一张作为主参考图。 |
参考图编辑请求
curl https://www.chaomoapi.com/v1/images/edits \
-H "Authorization: Bearer sk-xxxx" \
-F "model=gpt-image2-2K-Direct" \
-F "prompt=保留主体,把背景改成白色摄影棚" \
-F "ratio=4:3" \
-F "image[]=@./reference-1.jpg" \
-F "image[]=@./reference-2.jpg" \
-F "n=1" \
-F "response_format=url" \
-F "async=true"
参考图 URL 不能直接当文件传入:请先下载到本地,再通过 image[] 上传。
视频生成请求
视频模型只面向 API 调用;需要使用 Seedance2 Video 分组下的 API Key,不会在在线生图页面展示。
纯文本生成视频
curl https://www.chaomoapi.com/v1/video/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2-mini",
"prompt": "a clean product reveal video, soft studio lighting",
"size": "480p",
"seconds": "4"
}'
带参考图生成视频
curl https://www.chaomoapi.com/v1/video/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2",
"prompt": "根据参考图生成一段商品展示视频,镜头缓慢推进,柔和布光",
"size": "720p",
"seconds": "5",
"content": [
{
"type": "image_url",
"role": "reference_image",
"image_url": {
"url": "https://example.com/reference-1.png"
}
}
]
}'
带参考图、参考视频和参考音频生成视频
curl https://www.chaomoapi.com/v1/videos \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance2",
"prompt": "结合参考图、参考视频和参考音频生成一段品牌短片",
"size": "720p",
"seconds": "6",
"content": [
{
"type": "image_url",
"role": "reference_image",
"image_url": {
"url": "https://example.com/image-1.png"
}
},
{
"type": "video_url",
"role": "reference_video",
"video_url": {
"url": "https://example.com/reference.mp4"
}
},
{
"type": "audio_url",
"role": "reference_audio",
"audio_url": {
"url": "https://example.com/reference.mp3"
}
}
]
}'
| 参数 | 要求 | 说明 |
model | 必填 | seedance2、seedance2-fast、seedance2-mini。 |
prompt | 必填 | 视频描述。 |
size | 建议必填 | seedance2 支持 480p、720p、1080p、4k;seedance2-fast 和 seedance2-mini 支持 480p、720p。 |
seconds | 必填 | 字符串格式,例如 "4";当前支持 4 到 15 秒。 |
content | 可选 | 参考素材数组。可传 image_url、video_url、audio_url 三类素材;纯文本视频可不传。 |
| 模型 | 参考图 | 参考视频 | 参考音频 | 说明 |
seedance2 | 最多 9 张 | 最多 3 个 | 最多 3 个 | 完整视频生成模型,支持 480P、720P、1080P、4K。 |
seedance2-fast | 最多 9 张 | 最多 3 个 | 最多 3 个 | 快速视频生成模型,支持 480P、720P。 |
seedance2-mini | 最多 9 张 | 最多 3 个 | 最多 3 个 | 轻量视频生成模型,支持 480P、720P。 |
| 参考素材类型 | content[].type | content[].role | URL 字段 |
| 参考图 | image_url | reference_image | image_url.url |
| 参考视频 | video_url | reference_video | video_url.url |
| 参考音频 | audio_url | reference_audio | audio_url.url |
素材链接要求:参考图、参考视频和参考音频需要使用公网可访问的 HTTPS URL;不要把需要登录、临时 Cookie 或本地路径的链接传给接口。
| 视频模型 | 当前价格 |
seedance2 | 480P:USD 8.085 / 1M;720P:USD 11.55 / 1M;1080P:USD 1.386 / 秒;4K:USD 2.772 / 秒 |
seedance2-fast | 480P:USD 4.62 / 1M;720P:USD 8.085 / 1M |
seedance2-mini | 480P:USD 3.465 / 1M;720P:USD 5.775 / 1M |
4K 原生 API 请求
gpt-image2-4K 只面向 API 调用;需要使用 gpt-image2-4K-Native 分组下的 API Key,不会在在线生图页面展示。
curl https://www.chaomoapi.com/v1/images/generations \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image2-4K",
"prompt": "高端产品海报,白色背景,主体居中,柔和布光,高清质感",
"ratio": "16:9",
"n": 1,
"response_format": "url",
"async": true
}'
4K 原生可选比例:1:1、5:4、9:16、21:9、16:9、4:3、2:3;当前单张价格 RMB 0.095。
4K 原生参数边界
gpt-image2-4K 是本站封装后的 4K 原生 API 通道,不等同于官方图片接口的全量参数透传。本站只保证下表参数稳定可用;未列出的官方扩展参数可能被网关改写、忽略或被服务拒绝。
| 参数 | 本站支持方式 | 说明 |
model | 必填 | 固定使用 gpt-image2-4K。 |
prompt | 必填 | 图片生成或编辑要求。 |
ratio | 建议必填 | 只支持 1:1、5:4、9:16、21:9、16:9、4:3、2:3。 |
size | 兼容字段 | 可用于推断最接近比例,但不会原样透传任意像素尺寸;生产接入请传 ratio。 |
n | 固定 | 固定传 1;多张图请提交多个异步任务。 |
response_format | 固定 | 固定传 url;本站不承诺 b64_json。 |
async | 固定 | 固定传 true,提交后轮询 GET /v1/images/{task_id}。 |
quality | 网关接管 | 4K 原生通道会按服务稳定性要求使用高质量路由;用户传入的 quality 不作为计费或效果承诺。 |
image[] | 编辑接口支持 | /v1/images/edits 上传 1–9 张参考图;URL 请先下载为文件再上传。 |
mask | 实验性透传 | 可随编辑接口上传,但效果以当前实际返回为准。 |
| 其他官方扩展参数 | 不保证 | 例如 background、output_format、moderation、stream、partial_images 等,本站当前不作为稳定能力对外承诺。 |
3. 模型与比例
实际可用模型以当前 API Key 调用 GET /v1/models 的返回结果为准。
| 模型 ID | 用途 | 默认 | 已验证比例 |
gpt-image2-1K | 常规生成与编辑 | 1:1 | 1:1、5:4、9:16、21:9、16:9、3:2、4:3、4:5、3:4、2:3 |
gpt-image2-1K-low | 1K 文生图与图生图;显式 size 原样转发 | 1:1 | 1:1、5:4、9:16、21:9、16:9、3:2、4:3、4:5、3:4、2:3 |
gpt-image2-2K-low | 2K 文生图与图生图;显式 size 原样转发 | 1:1 | 1:1、5:4、9:16、21:9、16:9、3:2、4:3、4:5、3:4、2:3 |
gpt-image2-4K-low | 4K 文生图与图生图;显式 size 原样转发 | 1:1 | 1:1、5:4、9:16、21:9、16:9、3:2、4:3、4:5、3:4、2:3 |
gpt-image2-2K-Direct | 2K 高清生成与编辑 | 16:9 | 1:1、5:4、9:16、21:9、16:9、3:2、4:3、4:5、3:4、2:3 |
gpt-image2-4K-Stable | 4K 稳定生成与编辑 | 16:9 | 1:1、5:4、9:16、21:9、16:9、4:3、2:3 |
gpt-image2-4K-Direct | 4K 多比例生成与编辑 | 16:9 | 1:1、5:4、9:16、21:9、16:9、4:3、2:3、3:2、4:5、3:4 |
gpt-image2-4K | 4K 原生 API 调用 | 16:9 | 1:1、5:4、9:16、21:9、16:9、4:3、2:3 |
seedance2 | 视频生成 API 调用 | 480p | 480p、720p、1080p、4k |
seedance2-fast | 快速视频生成 API 调用 | 480p | 480p、720p |
seedance2-mini | 轻量视频生成 API 调用 | 480p | 480p、720p |
nano-banana-2 | 快速生成与编辑,当前 1K | 1:1 | 1:1、1:4、1:8、2:3、3:2、3:4、4:1、4:3、4:5、5:4、8:1、9:16、16:9、21:9 |
nano-banana-pro | 复杂提示词与高质量编辑,当前 1K | 1:1 | 1:1、5:4、9:16、21:9、16:9、3:2、4:3、4:5、3:4、2:3 |
分组与模型权限
分组只在创建或管理 API Key 时选择;请求接口时不要传分组名。不同 Key 看到的模型可能不同,接入程序应以 GET /v1/models 的返回为准。
| API Key 分组 | 可用模型 ID | 当前单张价格 | 说明 |
| gpt-image2-124K | gpt-image2-1K、gpt-image2-2K-Direct、gpt-image2-4K-Direct | 1K:RMB 0.030;2K:RMB 0.050;4K:RMB 0.050 | 标准聚合分组,覆盖 1K、2K 和 4K Direct。 |
| gpt-image2-124K(VIP专属) | gpt-image2-1K、gpt-image2-2K-Direct、gpt-image2-4K-Direct | 1K:RMB 0.022;2K:RMB 0.035;4K:RMB 0.035 | VIP 聚合分组,模型权限与标准聚合分组一致,按 VIP 价格计费。 |
| gpt-image2-low | gpt-image2-1K-low、gpt-image2-2K-low、gpt-image2-4K-low | 1K / 2K / 4K:RMB 0.015 | Low 标准聚合分组,三个规格均支持文生图、图生图和多比例。 |
| gpt-image2-124K-low(VIP专属) | gpt-image2-1K-low、gpt-image2-2K-low、gpt-image2-4K-low | 1K / 2K / 4K:RMB 0.010 | Low VIP 聚合分组,模型权限一致,按 VIP 价格计费。 |
| gpt-image2-4K-Stable | gpt-image2-4K-Stable | 4K:RMB 0.050 | 4K Stable 标准分组,不包含 1K、2K Direct、4K Direct 或 Banana。 |
| gpt-image2-4K-Stable(VIP专属) | gpt-image2-4K-Stable | 4K:RMB 0.045 | 4K Stable VIP 分组,不包含聚合分组里的 Direct 模型。 |
| gpt-image2-4K-Native | gpt-image2-4K | 4K:RMB 0.095 | 4K 原生 API 专用分组,只保证接口调用,不在在线生图页展示。 |
| Seedance2 Video | seedance2、seedance2-fast、seedance2-mini | 在基础视频价格上加 10% | 视频生成 API 专用分组,不在在线生图页展示。 |
| Nano Banana系列 | nano-banana-2、nano-banana-pro | 以控制台当前分组配置和使用记录为准 | Banana 专用分组,不包含 gpt-image2 模型。 |
Low 系列调用说明:三个模型均支持 POST /v1/images/generations 和 POST /v1/images/edits。可传 ratio 选择页面列出的 10 个常用比例;也可直接传 size="宽x高",该像素值会原样提交,不做裁剪、缩放或二次转换。图生图使用 multipart/form-data 上传 image 或 image[]。quality 未传时默认 high,client_reference 可选。结果 URL 使用本站域名代理返回,不暴露服务来源。
curl https://www.chaomoapi.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image2-2K-low",
"prompt": "一张现代产品摄影,纯净背景,柔和棚拍光",
"size": "2048x1152",
"n": 1,
"response_format": "url"
}'
Low 参考图编辑
curl https://www.chaomoapi.com/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=gpt-image2-2K-low" \
-F "prompt=保留主体,把背景改为纯白摄影棚" \
-F "size=2048x1152" \
-F "image=@./reference.png" \
-F "n=1" \
-F "response_format=url"
权限隔离:聚合分组、4K Stable 分组、4K 原生 API 分组、Seedance2 Video 分组、Nano Banana 分组互相隔离。切换模型前请先调用 GET /v1/models,不要用其他 Key 或文档示例里的模型 ID 直接套用。
价格说明:1K、2K、4K 的实际单张价格按 API Key 所属分组读取;同一个模型在标准分组和 VIP 分组价格可能不同。请以控制台分组配置、提交时预留金额和使用记录中的实际消费为准。
比例说明:ratio="3840x1648" 是错误写法;应选择最接近的受支持比例,例如 ratio="21:9"。任意精确像素请在生成后自行缩放或裁剪。
4. 任务状态与返回值
| 状态 | 含义 | 客户端动作 |
|---|
running | 排队或生成中 | 等待 3–5 秒后继续查询同一个任务。 |
completed | 生成成功 | 读取并及时下载 data[].url。 |
failed | 任务终止 | 读取 error.message,修正后创建新任务。 |
成功响应
{
"id": "task-...",
"task_id": "task-...",
"object": "image.task",
"status": "completed",
"generation_status": "success",
"asset_status": "saved",
"data": [{ "url": "https://www.chaomoapi.com/image-files/...png" }]
}
失败响应
{
"id": "task-...",
"task_id": "task-...",
"object": "image.task",
"status": "failed",
"data": [],
"error": { "message": "image task failed", "type": "image_task_error" }
}
不要把慢任务当失败:只要状态仍是 running,就继续轮询;不要因为客户端等待超时而再次提交,否则可能生成重复图片。
5. 完整 Node.js 18+ 示例
const API_BASE = "https://www.chaomoapi.com/v1";
const API_KEY = process.env.CHAOMO_API_KEY;
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
async function api(path, options = {}) {
const response = await fetch(`${API_BASE}${path}`, {
...options,
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
...(options.headers || {})
}
});
const body = await response.json();
if (!response.ok) throw new Error(JSON.stringify(body));
return body;
}
async function main() {
const accepted = await api("/images/generations", {
method: "POST",
body: JSON.stringify({
model: "gpt-image2-1K",
prompt: "一只大公鸡,写实摄影",
ratio: "1:1",
n: 1,
response_format: "url",
async: true
})
});
while (true) {
await sleep(4000);
const task = await api(`/images/${accepted.task_id}`);
if (task.status === "completed") {
console.log(task.data[0].url);
return;
}
if (task.status === "failed") {
throw new Error(task.error?.message || "image task failed");
}
}
}
main().catch(console.error);
6. 计费与并发
- 提交时按 API Key 所属分组的当前价格预留本次费用。
- 任务最终成功后完成扣费;平台确认失败或超时后释放预留。
- 已提交任务按提交时预留价格结算;后台改价只影响之后的新任务。
- 需要多张图时提交多个
n=1 的异步任务,并分别保存 task_id。 - 遇到
429、server_busy 或 retry_after 时,应退避后重试。
推荐起步:先以 5–10 个并发任务验证自己的队列、轮询和下载逻辑,再逐步提高。最终吞吐还取决于所选模型和服务容量。
7. 错误排查
| 错误或现象 | 原因 | 处理方式 |
400 unsupported_ratio | 比例错误或模型不支持 | 从本页对应模型的比例中选择;Low 精确像素请改用 size。 |
400 missing_image | 编辑接口未上传参考图 | 上传至少一个 image[] 文件。 |
400 too_many_reference_images | 参考图超过 9 张 | 保留最重要的 1–9 张。 |
401 | API Key 缺失、错误或停用 | 检查 Bearer 请求头。 |
403 | 密钥分组没有模型权限 | 检查密钥分组和模型权限。 |
404 model not found | 模型 ID 不正确 | 先调用 GET /v1/models。 |
402 / INSUFFICIENT_BALANCE | 余额或额度不足 | 充值或调整密钥额度。 |
429 / server_busy | 请求过快或服务繁忙 | 根据 retry_after 等待并指数退避。 |
5xx | 临时网络或服务异常 | 短暂等待后重试,不要立即无限重放。 |
长时间 running | 高分辨率、多参考图或排队 | 继续查询同一任务,业务超时建议至少 10 分钟。 |
| 生成重复图片 | 客户端超时后重复提交 | 保存首次 task_id,只轮询,不重复 POST。 |
8. 安全与常见问题
可以直接照搬其他平台的接入文档吗?
不可以。本站只保证本页列出的异步接口、模型 ID 和 URL 返回格式。其他平台的同步返回、Base64、原生 Banana 协议或扩展字段可能无法通过本站鉴权、记录和计费流程。
图片 URL 可以永久保存吗?
不要依赖链接永久有效。任务成功后应及时下载到自己的存储中。
调用接口时需要传分组吗?
不需要。分组只用于 API Key 权限和价格;请求接口时只传 model。如果不确定当前 Key 能用哪些模型,先调用 GET /v1/models。
为什么同一个模型不同 Key 价格不同?
图片价格按 API Key 所属分组读取,例如标准聚合分组和 VIP 聚合分组都能调用 gpt-image2-2K-Direct,但会按各自分组价格计费。管理员调整后会影响新任务;实际价格以控制台和使用记录为准。
API Key 应该放在哪里?
只放在服务端环境变量或安全密钥管理系统中。不要写入浏览器前端、移动端安装包、公开仓库、截图或聊天记录;泄露后应立即停用并重新创建。
安全提醒:示例均使用占位密钥 sk-xxxx,请勿在客户端或公开页面中暴露真实 API Key。