开场:调通 API ≠ 功能上线
在 Alice(AI Agent 桌面应用)里,调通生图 API 只花了一天。但从那一天到用户真正能用之间,还做了三个月的产品化工作。
调通 API 只是 10%,剩下 90% 是产品化。这篇文章把 AI 生图的产品化讲透:第一个要做的决策是文生图还是垫图,然后是 LLM 翻译层、角色一致性、多模型降级链,最后是一张四维度的产品化清单。
一、第一个决策:文生图 vs 垫图
这是两种完全不同的事。同样是"生成一张 Alice 在书房的图",有没有参考图,产出质量天差地别——这是产品经理在设计生图功能时必须搞清的第一个决策。
文生图(Text-to-Image)
- 输入:只有文字,如「爱丽丝在书房看书,温暖灯光,书架背景,蓝裙白围裙」
- 模型凭想象力生成
- 每次角色长什么样,全靠运气
垫图(Image-to-Image)
- 输入:参考图 + 文字,如「Alice 角色参考图」+「Alice 在书房办公,笔记本电脑,暖色调」
- 以参考图为锚点生成
- 参考图锁定 Alice 的外貌,模型只在这个约束下变换场景和动作
核心区别:文生图是从无到有,模型每次对 Alice 的想象都不同;垫图是以图为锚,参考图锁定了 Alice 的外貌。
什么场景用哪种?
| 场景 | 推荐模式 | 原因 |
|---|---|---|
| 纯背景/环境图 | 文生图 | 不涉及角色,纯场景描述即可 |
| 食物、物品特写 | 文生图 | 无需人物一致性约束 |
| 角色出镜(Alice 做某事) | 垫图 | 必须保证还是 Alice,需要参考图锚定 |
| 角色换装 | 垫图 | 脸不变衣服变,必须有脸部参考 |
| 多场景系列图 | 垫图 | 一组图里角色外貌需一致 |
| 创意发散/概念探索 | 文生图 | 不需要锁定形象,越多变越好 |
在 Alice 这样有固定形象的产品里,绝大多数出图都走垫图——用户不能接受「每次 Alice 长得不一样」。
二、用 AI 给 AI 写 Prompt:翻译层架构
用户说「Alice 在阳台发呆」,生图模型需要的是一长段精确的视觉描述,光这句话远远不够。中间有一个翻译步骤:用 LLM 把人话翻译成生图语言。
以「Alice 在阳台发呆」为例,LLM 翻译成的生图 Prompt 长这样:
A young woman named Alice standing on a sunlit balcony, leaning against the railing, gazing into the distance with a dreamy expression. She has shoulder-length dark hair, wearing a white blouse with a small star necklace. Soft afternoon golden hour lighting, potted plants on the balcony, blurred city skyline in background. Illustration style, warm color palette, peaceful mood. Upper body to full body composition.
为什么需要这一层翻译?
- 用户不会写生图 Prompt:他不知道要指定
golden hour lighting还是illustration style - 生图模型无法理解模糊意图:「发呆」对模型来说不是一个视觉描述
- 每个生图模型的"方言"不同:Midjourney、DALL-E、Stable Diffusion 偏好的 Prompt 风格各异
用户想的和生图模型需要的是完全不同的语言。 在 Alice 里,每一次出图背后都有一个 LLM 在翻译:把用户的一句话扩展成几百 Token 的详细视觉描述。这不是锦上添花,这是必要架构。
三、角色一致性:AI 生图最难的问题
同一个描述「Alice 在不同场景中」,没有参考图时,每次生出来的 Alice 都长得不一样。这是 AI 生图产品最难的问题,也是 Alice 花了最多力气解决的问题。
问题有多严重?
同样的文字描述连续生成四次:脸型每次都不同、发型和长度在变、体态比例不一致、画风也有偏差。结论:纯靠文字无法锁定一个角色的视觉身份。
关键武器:角色参考图
一张标准化的角色参考表(Character Reference Sheet),就是保证一致性的锚定图。每次生图时,这张图会作为参考一起发给模型,让模型看着画。
| 锚定维度 | 作用 |
|---|---|
| 脸型 & 体型 | 锁定五官比例、身材轮廓、发型长度 |
| 表情风格 | 多种表情变体(微笑、思考、惊讶…),让模型理解角色的表情范围 |
| 穿搭风格 | 标志性服装(白衬衫 + 星星项链),换装时只换衣服不换脸 |
换装一致性的效果:同一个 Alice,不同穿搭——脸没变,只是衣服变了。
角色一致性是产品设计问题,调参数解决不了。 Alice 的方案:用标准化的角色参考图作为每次生图的视觉锚点,锁定五官、身材、发型等核心特征。这套参考图锚定策略,是让 AI 角色在无数场景中始终是同一个人的核心。
四、模型挂了,然后呢?
用户说「帮我画一张图」,背后可能 Gemini 超时了、Seedream 限流了、GPT Image 也出错了。用户不关心哪个模型挂了,他只关心:图到底能不能出来?
降级链:Alice 的保险策略
| 环节 | 状态 | 动作 |
|---|---|---|
| 模型 A(Gemini) | 超时 15 秒 | 触发超时熔断 → 自动降级 |
| 模型 B(Seedream) | 返回限流错误 | 并发上限 → 继续降级 |
| 模型 C(GPT Image) | 成功出图 | 用户拿到图片,全程感知不到切换 |
| 兜底 | 全部失败 | 友好降级:「抱歉服务繁忙,已加入队列稍后通知您」 |
最终用户看到的:虽然经历了两次模型失败,依然拿到了图。用户只看到「Alice 正在画…」的等待状态,然后收到结果——背后模型 A 超时、模型 B 限流、模型 C 顶上,这些对用户完全透明。这就是降级链的价值。
三种产品状态
| 状态 | 表现 |
|---|---|
| 思考中 | 「正在生图,请稍候」 |
| 出错了 | 模型返回错误,正在切换备选 |
| 全部失败 | 所有模型不可用,友好降级 |
三个产品思路
- 优先级排序 + 白名单:预设模型优先级,不同场景指定不同组合——角色出镜优先用效果最好的模型,纯背景可以用便宜快速的。
- 探活机制:定时检测每个模型的健康状态,已确认宕机的直接跳过,恢复后自动上线,不浪费用户等待时间。
- 垫图降级:有些模型不支持垫图(image-to-image),降级时若备选不支持,退化为纯文生图——质量降低,但至少能出图。
用户不关心你用的哪个模型,他只关心图能不能出来。 降级链保证了即使主力模型全挂,用户最差也只是多等几秒或收到一句友好提示,永远不会撞上冷冰冰的错误页面。
五、生图的产品化清单:从 Demo 到上线
调通 API 只是 10%,剩下 90% 是产品化。这张清单展示那 90% 的工作量,按四个维度展开:
体验层(用户感知)
- 生成中状态:生图时展示「正在画…」的状态动画,用户不会面对空白屏幕干等
- 进度反馈:预估时间、进度指示,让等待可预期
质量层(结果可靠)
- 多候选生成与优选(让用户挑,或按规则自动挑最佳)
- 提示词质量调优(LLM 翻译层持续优化,让描述更贴合生图模型偏好)
- 角色一致性校验(垫图锚点是否生效、形象是否漂移)
工程层(跑得稳)
- 多模型降级链(超时熔断 + 逐级切换 + 兜底文案)
- 超时与重试(生图耗时,异步任务 + 超时控制)
- 探活机制(模型健康检测,宕机跳过、恢复上线)
- 异步任务队列(生图是慢操作,不能阻塞主流程)
- 全链路日志(模型选择、耗时、Token、成功率,可观测)
安全层(守得住)
- 内容安全过滤(敏感/违规内容拦截,不能只靠模型自带)
- 输入安全(用户文字进 LLM 翻译层,防提示注入污染)
- 版权与合规(参考图来源、生成物使用边界)
调通 API 只是 10%,剩下 90% 是产品化。 这张清单不只适用于生图——任何 AI 功能从 Demo 走向 Production,都需要在体验、质量、工程、安全四个维度做到位。
结语:AI 功能的产品化心法
技术调通是起点,产品化才是分水岭。
回顾全文,AI 生图产品化有四条主线:选对模式(文生图 vs 垫图,按一致性需求决定)、加一层翻译(LLM 把人话变成生图语言,必要架构)、锚定形象(角色参考图解决一致性,调参解决不了)、备好后路(降级链让用户在模型全挂时也不撞错误页)。
最后记住那句最关键的:用户不关心你背后用了几个模型、挂了几次,他只关心图能不能出来、出来的还是不是那个 Alice。 把这四件事做好,你的 AI 功能才算真正"能用"。