ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

豆包图片生成 API 提示词与尺寸参数实践指南:从请求构造到图片落地

豆包图片生成 API 提示词与尺寸参数实践指南:从请求构造到图片落地 从一个真实的图片需求说起假设你在开发一个资讯类应用编辑每天需要为热点文章配一张题图。过去人工设计一张图的维护复杂度是十几分钟现在通过豆包图片生成 API基于字节跳动豆包 Seedream 3.0 大模型可以用几秒完成提交一段描述文字拿到图片直链后下载到本地 CDN再回填到文章中。整个链路看起来简单但真正接入时会发现几个关键点提示词写得好不好直接决定出图质量尺寸参数没选对返回的图片可能跟使用场景不匹配图片 URL 有 24 小时时效处理不当会出现「文章发出去了图却裂了」的事故。本文就围绕这几个点结合接口文档给出的参数定义逐层拆解接入过程。适用场景与能力边界先明确这个接口能做什么、不能做什么避免在错误的地方花时间。适合的用法内容配图博客、公众号、社交媒体帖子的插图输入描述即可获得对应图片。营销素材初稿广告图、商品概念图、海报背景的快速产出用于内部评审或灵感参考。设计辅助构图草稿、风格化展示帮助设计师在动手前快速试探不同方向。应用集成聊天机器人配图、自媒体批量配图、AI 应用内的图片生成功能。需要留意的边界接口是同步返回平均 3~4 秒出图素材提供的数据不适合对单次响应时间有亚秒级要求的场景。QPS 限制为 2 / s即每秒最多 2 次请求。突发批量生成时客户端需要自行排队或限流。返回的图片 URL 是字节云 TOS 临时直链24 小时后失效不能直接当作永久资源地址存数据库。接口的核心能力是文生图不支持图生图、局部重绘、图片编辑等操作。核心参数prompt 与 size请求体是一个 JSON 对象包含两个字段其中prompt是唯一的必填参数。prompt决定出图质量的关键属性说明类型string是否必填是长度建议50~300 字符语言支持中英文混合文档给出的推荐结构是主体 风格 构图 光线 氛围。示例一只赛博朋克猫在雨夜的霓虹街头低角度电影感Wong Kar-Wai 风格这个 prompt 的构成拆解如下主体一只赛博朋克猫场景雨夜的霓虹街头构图低角度风格电影感、Wong Kar-Wai 风格写 prompt 的实操建议主体优先。先明确图里必须出现什么主语位置不要放修饰语。风格具体化。不要只写「好看」「精美」而是指定「水墨风」「3D 渲染」「胶片感」这类能被模型识别的风格词。控制长度。50 字符以下往往信息不足300 字符以上可能引入冗余描述。建议在 50~300 字符之间把构图、光线、色调、材质说清楚即可。利用中文理解能力。这个模型原生理解中文语意你不需要先把中文翻译成英文再提交直接写中文描述即可混入少量英文风格词也没有问题。size按输出容器选择分辨率属性说明类型string是否必填否默认值1024x1024可选尺寸共 6 种尺寸比例典型用途1024x10241:1头像、卡片、社媒帖子1792x1024约 16:9文章头图、视频封面1024x1792约 9:16手机海报、Stories1280x72016:9横屏配图720x12809:16竖屏配图1920x108016:9高清横屏大图注意size是字符串传参时不要写成数字1024也不要写成1024*1024必须与文档保持一致使用小写字母x连接。鉴权与请求头请求时必须在 Header 中携带 API KeyHeader必填说明X-API-Key是API Key 鉴权在控制台申请Content-Type否使用 JSON body 时建议设置为application/json注意 Header 是X-API-Key不是Authorization。如果使用 form-urlencoded 或 query string 传参Content-Type可以按实际传参方式设置。curl 接入示例把 API Key 放入环境变量后可以直接复制下面的命令发起请求export APIZERO_API_KEY你的_API_Key curl -sS \ -X POST \ -H X-API-Key: $APIZERO_API_KEY \ -H Content-Type: application/json \ -d { prompt: 一只赛博朋克猫在雨夜的霓虹街头低角度电影感Wong Kar-Wai 风格, size: 1024x1024 } \ https://v1.apizero.cn/api/doubao-image下面是假设请求成功后的响应体字段结构与文档示例一致{ code: 0, data: { created: 1777940499, expires_in: 86400, prompt: 一只赛博朋克猫在雨夜的霓虹街头低角度电影感Wong Kar-Wai 风格, size: 1024x1024, tokens: 4096, url: https://ark-content-generation-v2-cn-beijing.tos-cn-beijing.volces.com/doubao-seedream-3-0-t2i/021777940499xxx_0.jpeg?X-Tos-AlgorithmTOS4-HMAC-SHA256X-Tos-Expires86400X-Tos-Signature... }, msg: 成功, request_id: mqx8x12345abc }如果你在 Node.js 服务端接入可以用以下代码片段基于内置 fetchconst API_KEY process.env.APIZERO_API_KEY; const ENDPOINT https://v1.apizero.cn/api/doubao-image; async function generateImage(prompt, size 1024x1024) { const res await fetch(ENDPOINT, { method: POST, headers: { X-API-Key: API_KEY, Content-Type: application/json, }, body: JSON.stringify({ prompt, size }), }); const json await res.json(); if (!res.ok || json.code ! 0) { throw new Error(请求失败: ${json.msg || res.status}); } return json.data; } // 使用方式 // const data await generateImage(一只赛博朋克猫在雨夜的霓虹街头低角度电影感Wong Kar-Wai 风格, 1792x1024);返回字段逐项解读响应体最外层有三个字段字段类型说明codenumber业务状态码0 表示成功msgstring状态描述成功时为「成功」request_idstring请求唯一标识排查问题时可以提供给服务方data对象内的字段字段类型说明creatednumber图片生成时间戳Unix 秒expires_innumberURL 有效秒数示例中为 86400即 24 小时promptstring实际生效的提示词回显了请求参数sizestring实际生成的图片尺寸tokensnumber本次请求消耗的 token 数urlstring图片临时直链TOS过期后不可访问实际开发中expires_in字段很少被单独依赖因为它在响应体里而你的业务系统不一定每次都会解析响应。更稳妥的做法是拿到 URL 后立刻下载存到自己的存储服务把 URL 当做一个临时交接凭证来用而不是最终资源地址。常见错误与排查路径接口文档的响应示例中没有给出完整的错误码表下面是根据参数定义和鉴权流程推导出的高频问题排查思路具体错误码与提示信息以文档为准参考文档见文末。401 / 鉴权失败现象返回鉴权相关错误信息。排查步骤确认请求头是X-API-Key不是Authorization。确认环境变量里的 Key 没有多出换行符或空格。确认 Key 未过期、未被撤销。400 / 参数错误常见原因prompt缺失或为空字符串。size传了文档以外的值比如1024*1024或1024 × 1024。JSON 格式错误例如prompt和size之间多了尾逗号。排查方法用curl -d原样打印请求体确认实际发送的 JSON 内容。429 / 触发 QPS 限制素材中明确 QPS 为 2 / s也就是说 1 秒内最好不要发起超过 2 次请求。应对策略客户端做本地队列控制请求频率。对 429 响应做退避重试例如等待 500ms 再重试最多重试 2 次。图片 URL 过期现象生成时 URL 可访问几天后同一个 URL 返回 403。原因TOS 临时直链有效期 24 小时。处理方式见下文工程化注意事项。工程化注意事项1. 图片必须转存不能长期引用原直链这是接入这个接口最重要的一条工程约定。把url字段直接存进数据库当永久图片地址是一个在 24 小时后必定爆发的隐患。推荐流程请求接口拿 URL。转存到自己的对象存储OSS/COS/本地磁盘。用自己存储返回的永久 URL 写入业务数据。2. 把 prompt 与 size 作为业务字段持久化响应中的prompt、size、tokens信息建议连同业务 ID 一起入库。好处有两个一是运营人员可以在后台看到「这张图是用什么描述生成的」方便后续优化 prompt 模板二是当生成结果有争议时可以回溯原始请求参数。3. 为不同场景预置 size 模板不要在每个调用方各自拼 size 字符串建议在服务端做一个映射配置const SIZE_TEMPLATES { article_cover: 1792x1024, social_square: 1024x1024, mobile_post: 1024x1792, hd_widescreen: 1920x1080, };这样前端只需要传一个业务用途标识size 由后端统一控制避免前端把尺寸写错。4. 注意 token 消耗与请求合理性素材中的计费说明给出了 token 估算尺寸约消耗 tokens1024x1024约 40961792x1024约 71681920x1080约 71681080p也就是说同样一次请求用1920x1080比1024x1024消耗的 token 多。这在业务上意味着不是所有场景都需要最大尺寸。头像缩略图用1024x1024就够了没必要生成1920x1080而文章头图则建议用1792x1024保证横屏展示时的清晰度。5. 考虑失败重试的维护复杂度每次调用都是有 token 消耗的即便返回了错误也可能因为请求已进入处理流程而产生计费以实际计费为准。因此发送前在客户端完整校验参数不要抱着「反正服务端会报错」的心态。对可重试的错误如网络超时、5xx设置合理的重试次数上限。对秒级并发场景用队列平滑请求避免瞬间打满 QPS 后被限流。参考文档文档页https://apizero.cn/aidocs/doubao-image原始文档https://apizero.cn/aidocs/doubao-image/raw.md
返回列表