图像
图像接口沿用 OpenAI 兼容格式。先在控制台查看图像模型名称,再写进客户端或脚本。
图像任务和普通文本任务不太一样。
很多时候不是地址或 Key 有问题,而是:
- 模型类型选错了
- 尺寸和数量一上来就拉得太大
- 编辑任务没有按
multipart/form-data上传文件
图像任务的费用和等待时间,通常都比普通文本请求更高。第一次测试时,建议先用一张小尺寸图、一条短提示词确认链路,再继续放大尺寸或批量生成。
第一次先确认什么
第一次接图像接口时,先别把目标定成“生成一张非常满意的图”。
更稳的顺序通常是先确认这三件事:
- 当前模型确实是图像模型
- 这条请求已经能返回图片结果
- 你拿到的结果格式,是你后面业务真正想用的格式
这样做的意义,是把“接口能不能出图”和“出图效果好不好”拆开。
前者是链路问题,后者更多是模型选择、提示词和尺寸策略问题。
生成图像 POST
地址:POST https://xiaolan.ainb.plus/v1/images/generations
常用请求参数
model:图像模型名称prompt:描述词size:尺寸n:生成数量response_format:常见是url或b64_json
不同图像模型支持的参数并不完全一样。
第一次接入时,优先只用 model、prompt、size、n 这几个最基础的字段,把“能不能生成出来”先确认清楚;确认成功后,再去加 quality、background、参考图之类的扩展能力。
第一次如果只是想肉眼看结果,response_format 先用 url 最省事。
如果你后面还要把结果继续交给脚本、后端或别的系统处理,再考虑切到 b64_json。
示例请求
先把 MODEL 替换成模型广场里实际可用的图像模型名:
bash
MODEL="替换成模型广场里的图像模型名"
curl https://xiaolan.ainb.plus/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <你的 API Key>" \
-d '{
"model": "'"$MODEL"'",
"prompt": "一个白底极简科技 logo",
"size": "1024x1024",
"n": 1,
"response_format": "url"
}'如果你只是想确认接口是否可用,size 可以先从较小尺寸开始,n 也先保持 1。
先验证返回结构,再继续放大尺寸或增加数量,这样更容易分清是接口没通,还是请求本身太重。
第一次接通时,先确认两件事:
- 当前模型确实是图像模型,不是文本模型
- 返回结构里你已经拿到了可下载的 URL 或可用的 base64 结果
如果第一步就只是为了确认接口通不通,提示词也尽量写得简单一点。
越简单的提示词,越容易把问题锁定在接口层;等你已经证明能稳定出图,再慢慢加风格词、构图词和约束词会更清楚。
使用建议
- 模型名直接从模型广场复制
- 先小图测试,再放大尺寸或批量生成
- 大图或长任务先看余额
- 图像任务通常比文本更贵,批量生成前先小额测试
- 如果返回的是
url,尽快把图片下载保存,部分链接会在一段时间后失效 - 如果你准备把结果继续传给别的程序处理,
b64_json往往比临时 URL 更稳定
如果你准备做批量生成,再多看一层:
同样是 n=4,和连续发 4 次 n=1,你后面做失败重试、结果保存和成本统计的方式并不完全一样。第一次联调时,先从 n=1 开始最稳。
编辑图像 POST
地址:POST https://xiaolan.ainb.plus/v1/images/edits
适合局部修改、风格调整、参考图改写等场景。不同模型支持的参数会有差异,以模型广场和客户端实际能力为准。
这一类请求和普通 JSON 不一样,通常要走 multipart/form-data。
也就是说,你传进去的不只是文字参数,还会把本地图片文件一起上传。
编辑接口第一次建议先拿一张体积小、内容简单的图片测试。
如果原图本身很大、很复杂,你很难在第一次就判断到底是上传层、模型层,还是提示词本身没有描述清楚。
示例:
bash
MODEL="替换成模型广场里的图像模型名"
curl https://xiaolan.ainb.plus/v1/images/edits \
-H "Authorization: Bearer <你的 API Key>" \
-F model="$MODEL" \
-F image="@input.png" \
-F prompt="把背景改成白色极简科技风"常见问题
返回模型不存在
图像模型和文本模型不是一类。回模型广场复制图像模型名。
生成很慢
图像生成通常不是秒级。先用小尺寸测试,再扩大尺寸。
如果小尺寸也明显很慢,再去看:
- 当前模型是不是排队
- 当前网络是否稳定
- 余额是否足够支撑当前任务
返回内容看不到图片
不同模型可能返回 URL、base64 或任务结果。先打印完整响应,再按字段读取。
如果返回的是 URL,但浏览器里已经打不开,先不要急着怀疑接口。
很多图像模型返回的是临时下载地址,过一段时间后自然会失效,最好在第一次拿到结果时就立即保存。
编辑接口返回 400
优先先查这三层:
- 你是不是用了
-F image=@input.png这种文件上传写法 - 图片文件路径是不是实际存在
- 当前模型是不是支持编辑而不只是生成
提示词没问题,但效果很差
先不要急着怀疑接口。优先先看:
- 你是不是用了错误的模型类别
- 图片尺寸是不是过小
- 提示词是否过短、过泛
- 编辑任务里原图本身是否清晰