功能与支持模型

Seedream 5.0 Lite、4.5、4.0均可输入单张图片并输出一张结果。本页采用5.0 Lite、2K、PNG。编辑提示词应同时说明“保留什么”和“改变什么”,输出不保证逐像素保留原图。

本页使用 image 字符串完成图生图,不提供独立蒙版字段或透明背景保证。多张参考图请查看多参考图生图。

第一步:设置鉴权

使用请求头 Authorization: Bearer YOUR_API_KEY。把 YOUR_API_KEY 替换为青云TOP API 的 API Key,保留 Bearer 后一个空格。

第二步:调用模型

仍向 https://top.qingyuntop.ai/v1/images/generations 发送 POST JSON。图片内容放在顶层 image,不改为 /v1/images/edits,也不使用 curl -F。

请求参数与素材

字段与类型填写规则、默认值与限制
model;string必填;JSON 顶层。使用本目录模型表的完整 ID,没有推荐默认型号。5.0 Lite 的本站 ID 不带 lite 后缀。
prompt;string必填;JSON 顶层非空文本。说明主体、构图、风格和需要保留或修改的部分;多图可按数组顺序称图1、图2。支持中英文,建议中文不超过300字、英文不超过600词;这是写作建议,不是硬性长度上限。
image;string / string[]文生图省略;编辑或参考生图必填,位于 JSON 顶层。单张用字符串,多张用字符串数组(最多14张)。内容是公网可读 URL 或 data:image/小写格式;base64,内容。没有默认图片;不得传本地路径或裸 Base64。
size;string可选;JSON 顶层。默认2048x2048。填模型允许的分辨率档位或宽x高字符串;两种方式选一种。像素值用 ASCII x,同时满足下表的总像素和宽高比限制。
response_format;string可选;JSON 顶层。url 返回临时图片链接;b64_json 返回图片的纯 Base64 字符串。只改变返回方式,不改变图片编码。 默认 url。
output_format;string可选;JSON 顶层。仅本目录的5.0 Lite可设 png 或 jpeg。4.5、4.0输出JPEG,请省略此字段。请求PNG不等于支持透明背景。 默认 jpeg。
watermark;boolean可选;JSON 顶层布尔值。true 在右下角添加可见的“AI生成”水印,false 关闭该可见水印;不代表清除所有隐式标记。不要传字符串。 默认 true。

每张参考图不超过30MB;宽、高均须大于14px,总像素为196–36000000,宽高比为1/16–16。支持 jpeg、png、webp、bmp、tiff、gif、heic、heif,常规接入推荐PNG或JPEG。限制适用于每张图片本身,不能只检查文件扩展名。

代码示例:公网图片

示例使用官方公开参考图,你可以替换为自己的可直接访问的图片 URL。带登录权限的预览网页不可直接作为图片。

cURL示例使用Bash,需cURL 7.76+与jq;Python需3.10+并安装requests;Node.js需20+,保存为.mjs运行。600秒是示例的客户端超时设置,不是生成耗时承诺;Python的timeout分别控制连接和单次读取等待。代码会覆盖同名request.json或response.json,请按需另存。

set -euo pipefail
cat > request.json <<'JSON'
{
  "model": "doubao-seedream-5-0-260128",
  "prompt": "保留图中人物的身份和服饰,将背景改为清晨的花园,调整光线,使人物与环境自然融合。",
  "image": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_5_imageToimage.png",
  "size": "2K",
  "response_format": "url",
  "output_format": "png",
  "watermark": true
}
JSON
curl --fail-with-body --connect-timeout 30 --max-time 600 "https://top.qingyuntop.ai/v1/images/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @request.json --output response.json
jq -e 'if .error then error(.error | tostring) else
  (.data | type == "array" and length > 0) and
  all(.data[]; (.error | not) and (.url | type == "string" and length > 0)) end' response.json

代码示例:本地 PNG

把待编辑的真实PNG放在程序当前目录并命名为 input.png,或修改代码中的文件路径。代码读取文件、检查PNG签名和30MB上限,再生成 data:image/png;base64,内容。请另行确认图像宽高和像素符合上文要求;文件扩展名本身不能证明格式。示例采用30,000,000字节作为保守上限。

cURL 还需要 base64 和 od(Linux、macOS或Git Bash均可)。不要把图片编码直接粘贴为不带前缀的Base64,也不要把文件路径字符串传给API。

set -euo pipefail
cat > request.json <<'JSON'
{
  "model": "doubao-seedream-5-0-260128",
  "prompt": "保留参考图片的主体,换成干净的浅灰色背景,使用柔和棚拍光线。",
  "image": "LOCAL_PNG_DATA_URI",
  "size": "2K",
  "response_format": "url",
  "output_format": "png",
  "watermark": true
}
JSON
[[ $(wc -c < input.png) -le 30000000 ]] || { echo "PNG超过30MB" >&2; exit 1; }
[[ $(od -An -tx1 -N8 input.png | tr -d ' \n') == 89504e470d0a1a0a ]] || { echo "需要真实PNG文件" >&2; exit 1; }
{ printf 'data:image/png;base64,'; base64 < input.png | tr -d '\r\n'; } > image-uri.txt
jq --rawfile image image-uri.txt '.image = $image' request.json > local-request.json
mv local-request.json request.json
curl --fail-with-body --connect-timeout 30 --max-time 600 "https://top.qingyuntop.ai/v1/images/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @request.json --output response.json
jq -e 'if .error then error(.error | tostring) else
  (.data | type == "array" and length > 0) and
  all(.data[]; (.error | not) and (.url | type == "string" and length > 0)) end' response.json

响应与图片保存

编辑结果与文生图相同,JSON保存到 response.json。检查错误后读取 data[].url,再使用返回结果与图片保存中的下载示例。后续继续编辑时,以新图片URL或重新编码的图片作为下一次 image,每次都是新的生成请求。

常见错误与参考

素材无法下载时检查URL是否公开、是否过期以及返回的是否为图片。data URI失败时检查真实格式、前缀和完整Base64;体积过大时使用合规压缩后的图片或稳定公网URL。其他错误见常见错误。参考:Seedream 图像创作。