Skip to main content
如何生成满意的图片 解决的是「这一次没出好,怎么救」。这一篇解决下一个问题:怎么让每一次都稳定地出好 一个反复被问到的现象:freepik.comhiggsfield.ai 这类 C 端出图产品,用的是和你一样的底层模型——同一批 Nano Banana、GPT-Image、FLUX——但出来的图看着就是更「成品」。差距不在模型权重,在模型外面那一层。那一层是可以自己搭的,本文讲怎么搭。

一、C 端出图产品在模型外面套了什么

把这类产品拆开,模型之外大致是这八层。每一层都能在 API 上复刻:
两条必须先说清的平台边界,别按竞品的功能表照抄:
  1. API易 没有超分 / 抠图 / 修脸接口。要大图就在生成时直接选高分辨率档(gpt-image-2 的 4K、Nano Banana Pro 的 4K),不要指望事后放大;要透明底目前只有 seedream-5-0 / seedream-5-0-pro 能靠提示词要求输出带 alpha 通道的 PNG。
  2. API易 不提供 LoRA / 身份训练Soul ID 那种「训练一次、永久锁脸」的能力,用参考图只能逼近:同一角色换场景、换光线时仍会漂移,越接近正脸、越接近原始光照条件,保持得越好。做需要严格一致的商业角色,要预留人工挑图的环节。

二、第一层就能拉开差距:把口语变成结构化提示词

这是投入产出比最高的一层,也是最容易被跳过的一层。

实测:同一个模型,同一个需求,两种提示词

需求是「给咖啡出一张电商产品图」。左边是用户会写的原话,右边是补齐要素之后的版本,都用 gemini-3-pro-image(Nano Banana Pro)、2K1:1,各出一次:
口语提示词生成的咖啡图:木桌、磨豆机、麻布袋等大量道具,画面暖调,杯身被模型自行编造了一个品牌名

口语提示词:「帮我出一张咖啡的产品图,好看一点,要高级感」

结构化提示词生成的咖啡图:浅灰台面上一只哑光黑陶瓷杯,背景干净虚化,光影方向明确,画面留白充足

结构化提示词:主体、环境、光位、镜头、色调、瑕疵、构图逐项写死

左图不难看,但不可用:模型替你做了一堆你没授权的决定——加了磨豆机和麻布袋、把色调定成怀旧暖调,还在杯身上编了一个并不存在的品牌名(这种自动生成的文字在商用场景基本等于废片)。右图是能直接进商详页的图:中性背景、光位可复述、留白够放文案。 「好看」和「可用」是两件事。口语提示词只能约束前者。

六要素:改写层要补齐的东西

改写不是把提示词写长,是把缺失的决策补上。图片提示词的骨架就六项:
分辨率不是第六要素。输出分辨率只由 size / imageSize 这类参数决定,在提示词里写「4K」「8K」不会提高实际像素——详见 图片压缩与输出分辨率说明

把改写层写成代码

用一个便宜快的文本模型做这件事就够了,成本相对出图可以忽略:
注意 system prompt 里那条「不要使用 8K、超高清、杰作、完美 这类空泛的质量词」——原因见第四节。

三、一条可落地的五步流水线

改写层之外,把剩下四层串起来就是一条完整流水线:
1

改写:口语 → 结构化提示词

见第二节。这一步还顺便承担「把用户输入里的敏感内容中和掉」的职责,能显著降低后面被审核拦下的比例。
2

锚定:参考图 + 风格常量

风格靠两样东西固定:一段每次都拼进去的风格常量(你的 preset),和一组固定的参考图各系列的参考图上限差别很大,设计流水线前先确认:两个必须遵守的约定:提示词里的「图1 / 图2」严格按数组顺序对应,要显式写出来指代谁;Grok 的参考图只在 /v1/images/edits 生效,传给 /v1/images/generations 会被静默丢弃并照常计费。
3

采样:并发出 N 张,不要指望 n 参数

C 端产品「一发就中」的观感,本质是它替你抽了好几次卡。服务端的 n 参数在多数图片模型上不生效(Seedream 明确静默忽略)。要多张就在客户端并发发多次请求——站内 skills 页给出的做法是一次最多 5 并发。并发数按渠道调,有的渠道并发 2 就开始 429,加指数退避。
4

择优:用视觉模型当评委

有了 N 张就要自动挑,否则等于把选择成本转嫁给用户。做法是把候选图回传给一个视觉模型打分,走标准的 /v1/chat/completions 图片输入即可,可选模型见 视觉理解。评分维度建议固定成五项、要求返回 JSON:指令符合度、结构与解剖、文字正确性、质感真实度、构图。
不要用 /v1/rerank 做这件事。bge-reranker-v2-m3纯文本重排模型,不接受图片输入。图片打分只能用视觉理解模型。
5

精修与落地

定稿之后再做局部调整,比一次性下达复合指令成功率高得多:
  • 像素级可控的局部重绘:只有官转 gpt-image-2 支持蒙版,见 蒙版局部重绘指南
  • 多轮对话式累积编辑:Nano Banana 系列的原生 Gemini 端点支持(把上一轮的图以 role: "model" 回填),逆向线路不支持;
  • 立刻转存:所有平台返回的 URL 都是临时链接(FLUX 约 10 分钟且无 CORS,Seedream 与 R2 约 24 小时),拿到就下载进自己的对象存储。

串起来的最小实现

四、去 AI 味:让图看起来不像 AI 生成

「AI 味」不是玄学,是一组可以逐条消掉的具体特征

实测对比

同一个模型(gemini-3-pro-image)、同一个题材,两种写法各出两张,各取第一张:
裸提示词生成的人像:人物正对镜头且居中,全画面光线均匀没有明确方向,背景元素齐整,整体是通用图库照片的观感

裸提示词:「一位年轻女性的半身写实人像,在咖啡馆窗边,微笑看向镜头,8K,超高清,超精细,皮肤细腻,唯美,完美光线,杰作」

控制词生成的人像:单一侧向窗光,半边脸落进阴影,可见毛孔与面部绒毛、颊上小痣与碎发,胶片色调,人物偏画面右侧

加了光位、镜头、介质、瑕疵四组控制词之后的同题材出图

左图并不差——底模已经足够强,裸提示词也能出「好看的图」。但它带着一整套典型特征:人物死死居中、光线均匀到找不出光源在哪、每样东西都恰到好处。而且这不是偶然:那一轮出的两张,构图和布光模式几乎一样。 右图换了一套写法之后:光有明确方向、半边脸敢丢进阴影、皮肤上有油光和毛孔、颊上有痣、碎发没梳齐、人物偏在画面右侧。它看起来像某个人在某个具体时刻被拍到了,而不是「一张咖啡馆女性微笑素材」。
这里也说明了流水线真正的价值:它不是把丑图变好看,而是把「碰运气的好看」变成「你指定的、可复述、可复现的好看」。左图换个需求方来看未必更差,但你说不出它为什么长这样,也无法要求下一张跟它保持一致。

症状 → 对策 → 反面写法

8K超高清超精细杰作完美 这类空泛质量词是负资产。它们既不提高分辨率(分辨率只由参数决定),又会把模型推向过锐、过饱和的渲染风格——正好是「AI 味」的核心来源。上面左图的提示词里塞满了这些词,结果就是那个样子。要质量就写具体的光、镜头和介质。

四组可直接复制的控制词块

按需拼进提示词,一般四组各取一到两句就够:

光线

左侧窗光是画面里唯一的光源 / 午后三点的侧后方硬光 / 逆光,发丝出现轮廓光 / 桌面台灯作为画面内实用光源 / 阴天的散射光,没有明显投影

镜头

35mm f/2.0 平视抓拍 / 85mm f/2.8,焦点在近侧眼睛 / 24mm 低机位,边缘有轻微畸变 / 长焦压缩空间,背景层次被压平 / 画面四角有轻微暗角

介质

Kodak Portra 400 胶片质感,细腻颗粒 / 高光偏暖、阴影偏青 / 宝丽来即时成像,反差低、边缘发虚 / 早期 CCD 数码相机的噪点与偏色 / 整体低饱和,不做锐化

瑕疵

自然肤质,可见毛孔与面部绒毛 / 额前几缕碎发没有梳齐 / 毛衣起球,袖口有磨损 / 桌面有水渍、指纹和面包屑 / 构图不居中,边缘被裁掉一部分

三个场景的完整示例

半身人像抓拍:一位二十多岁的女性在咖啡馆窗边,侧身看向窗外,嘴角有一点没收住的笑。窗光是画面里唯一的光源,来自左侧,右半边脸落进阴影,鼻梁下有一小块硬边阴影。85mm 镜头,f/2.8,平视,焦点落在近侧眼睛。柯达 Portra 400 胶片质感,可见细腻颗粒,高光偏暖、阴影偏青,整体低饱和。自然肤质:可见毛孔与面部绒毛,鼻翼有一点油光,左颊有一颗小痣,眉毛有几根杂乱散毛,额前几缕碎发没有梳齐。不做磨皮,不做美颜,不做锐化。构图偏右,左侧留白。
电商主图:一只哑光黑色陶瓷手冲咖啡杯,杯中盛八分满的黑咖啡,表面有一圈细密油脂。放在浅灰色微水泥台面上,背景是同色系墙面并虚化。主光为左上方 45 度柔光箱,右侧用白色反光板补光,杯身右缘留一条细窄的高光;台面上落一道柔和的杯体投影,向右后方延伸。85mm 微距镜头,f/5.6,正面略俯视 15 度,全杯清晰。冷调中性白平衡,整体偏低饱和。陶瓷表面有细微的手工釉面不均和一处极小的窑变斑点,杯沿有一道极浅的使用痕迹。画面留白充足,杯子位于画面左三分之一处。不要出现任何品牌名或文字。
傍晚六点的老城区窄街,刚下过雨,地面积水倒映着两侧店铺的灯箱。唯一的主光是街口一盏偏暖的路灯,其余靠店铺灯光补,天空还剩一点冷调余晖,形成暖冷对比。28mm 镜头,f/4,机位在人的视线高度,略微仰拍。整体低饱和,暗部保留噪点,不做提亮。墙面有水渍、旧海报的撕痕和空调外机,电线在画面上方横过。画面中没有人正对镜头,行人都是背影和运动模糊。

五、几个会打乱流水线设计的事实

设计之前先知道这些,能省掉一轮返工:

六、成本账:什么时候值得上流水线

流水线是拿钱换成功率。出图成本的大头永远是输出gpt-image-2 输出 $30 / 百万 tokens),改写和打分用的文本 / 视觉模型相对可以忽略。所以成本基本等于「你出了几张候选」。 按场景分三档用,不要一刀切: 判断标准很简单:这张图会不会被外部的人看到。会,就值得上标准档以上;只是内部看一眼,草稿档足够。中间还可以加一道闸门——打分低于阈值才追加候选,大部分请求两张就收敛了。

速查总结

  • 差距不在模型权重,在模型外面那八层:改写、预设、锚定、采样、择优、分步编辑、后处理、转存。
  • 改写层性价比最高:补齐主体 / 环境 / 光线 / 镜头 / 色调 / 构图六要素,「好看」才会变成「可用」。
  • 多候选 + 视觉模型打分是 C 端产品高成功率观感的真正来源;n 参数不生效,要客户端并发;/v1/rerank 不能给图片打分。
  • 去 AI 味靠加具体,不靠加形容词:指定唯一光源、给焦段光圈、指定介质与颗粒、主动加瑕疵、把主体挪出画面中心。
  • 8K / 杰作 / 完美光线 这类词是负资产,既不提分辨率又把画面推向渲染感。
  • 别指望 seed 复现,存完整请求体才是复现;图片 API 全同步、断连仍计费,流水线必须配队列。
  • API易 没有超分 / 抠图 / 身份训练接口,涉及这几层要在方案里提前绕开。

相关文档

如何生成满意的图片

单次调用失败怎么救:改提示词、重试、换模型、用测试工具定位

图片 API 调用须知与最佳实践

同步调用、timeout 分档、计费口径、base64 处理、输入图预处理

蒙版局部重绘指南

像素级可控的局部修改,官转 gpt-image-2 专属

多图融合测试指南

参考图上限实测方法与 14 图融合结果

视觉理解

可用于给候选图打分的视觉模型清单与调用方式

自实现异步队列

把同步出图包进任务队列,支撑多候选流水线