如何搭建 AI 图像生成应用:API、存储、成本与安全
要搭建 AI 图像生成应用,你需要从模型提供商处选择一个图像生成 API,用自己的密钥从服务器调用它,将每个结果保存到文件存储中,并把它包装成一个针对特定用途的工作流:产品图、社交媒体帖子、头像、符合品牌风格的插画等。与文本应用相比,你需要额外考虑三件事:生成速度较慢、每次生成的成本较高,以及需要为用户可以创建的内容制定规则。界面反而是最简单的部分。
先确定用途,而不是“一个图像生成器”
通用的图像生成器已经内置在聊天助手和设计工具中。一个新应用只有在做好某一件具体工作时才值得使用:
- 风格统一: 每张图片都符合某个品牌的色彩和风格,用户无需写很长的提示词。
- 结构化输入: 商品图工具会询问商品图片和场景;书封工具会询问书名、类型和氛围。
- 合适的输出: 为市场列表或广告版位输出正确的尺寸,文字叠加由你的应用完成,而不是交给模型。
- 完整的工作流: 生成多个方案,挑选其中一个,进行编辑、下载,并保存到素材库中。
应用由哪些部分组成
| 部分 | 作用 |
|---|---|
| 输入表单 | 提示词、风格预设、尺寸、可选的参考图片上传 |
| 提示词构建器 | 在服务器端,将你隐藏的风格指令与用户输入的内容合并 |
| 图像 API 调用 | 服务器使用你的密钥发送请求,并等待结果 |
| 进度状态 | 生成可能需要几秒甚至更久;要让用户看到系统正在处理 |
| 文件存储 | 保存每张生成完成的图片,避免丢失 |
| 数据库 | 记录谁生成了什么、使用了哪些提示词和设置,以及文件存放的位置 |
| 图库 | 用户过去生成的图片,支持下载和删除 |
| 限制与计费 | 按用户设置的上限;如果收费,还需要套餐或积分 |
搭建前需要做的决定
选择哪家图像模型提供商
有多家提供商提供图像生成 API,既有大型 AI 实验室,也有通过一个 API 托管多种开源模型的平台。请用你自己的测试提示词比较它们在以下方面的表现:
- 适用于你的用途的质量: 摄影风格的商品、插画、图片中的文字、人脸。
- 速度: 有些模型几秒钟就能返回,有些则需要更长时间。
- 所需尺寸下的单张价格。 请查看提供商自己的定价页面,因为价格会变化。
- 编辑功能: 有些模型支持编辑上传的图片或填充图片的局部,很多用途都需要这一点。
- 条款: 是否允许商业用途、内容规则,以及你发送的提示词和图片会如何被处理。
建议把提供商封装在一个服务器函数后面,以便日后更换模型。我们关于如何使用大模型 API的指南涵盖了 API 密钥和按量计费,这些同样适用于图像模型。
等待结果
文本回复可以逐字流式显示,而图片通常是一次性返回的。对于速度较快的模型,浏览器可以等待服务器的响应。对于较慢的模型,更好的做法是:创建一条状态为待处理的“生成”记录并立即返回,待提供商完成后,服务器将其更新为已完成并写入图片地址,页面则每隔几秒检查一次状态。部分提供商支持 webhook,即任务完成时向你的服务器发送的消息。参见什么是 webhook。
存储
提供商的响应通常包含临时链接或原始图片数据。应立即将图片复制到你自己的文件存储中,并把其地址保存到数据库。对于免费用户,你需要决定保留图片的时长,因为存储会产生持续的费用。我们关于为应用添加文件上传的指南介绍了存储的基础知识。
成本与限制
提供图像生成是较为昂贵的 AI 功能之一。上线前请做好以下准备:
- 在提供商的控制台中设置每月消费上限。
- 在服务器端强制执行每位用户每天的图片数量上限。
- 默认使用标准尺寸和质量;高分辨率渲染则收取更多费用,或改用积分。
- 只有成功生成的图片才计入用户的额度。
内容安全与权利
- 提供商规则。 大多数提供商会屏蔽部分内容,如果有人反复违反其规则,还会暂停账户。用户的行为由你负责,因此你的条款应与提供商的条款保持一致。
- 内容审核。 使用提供商提供的安全设置,并考虑在发送前检查提示词。如果用户可以公开分享图片,请添加举报图片的功能。
- 真实人物。 生成可识别的真实人物图片,尤其是在色情、暴力或误导性的语境中,会造成真实的伤害,并且在许多地方是违法的。应明确禁止。
- 上传的参考图片。 如果用户上传照片,只允许他们使用其有权使用的图片,并且不要保存超过所需时间的文件。
- 归属与标注。 关于 AI 生成图片的归属,以及是否必须标注,各国规定不同且会变化。请阅读提供商的条款,如果这对你的业务很重要,请寻求专业意见。
给 AI 构建工具的第一条提示词
搭建一个名为 ShelfShot 的网页应用,为小型网店生成生活场景风格的商品照片。用户登录后,上传一张商品照片,选择场景预设(厨房台面、户外野餐、极简摄影棚、温馨客厅)和尺寸(正方形或 4:5),然后点击生成。服务器将预设中隐藏的风格指令与商品信息合并,并使用私密的 IMAGE_API_KEY 调用图像生成提供商。将每张生成完成的图片保存到文件存储中,并在数据库中记录用户、提示词、预设、尺寸和文件地址。等待期间显示进度状态,完成后展示结果,并提供下载和删除按钮。“图库”页面显示用户过去生成的图片,每位用户只能看到自己的图片。在服务器端限制每位用户每天最多生成 20 张图片。绝不要把密钥发送到浏览器。
分步搭建
- 先单独测试提供商: 用十个真实输入进行测试,然后选定模型。
- 搭建核心流程: 表单、服务器调用、进度状态、屏幕上显示结果。
- 保存到存储中, 并在数据库中记录每次生成;第二天检查图片是否仍能正常加载。
- 添加账户和图库, 然后用两个账户测试,确认两人都无法通过猜测网址打开对方的图片。
- 添加限制和错误处理: 超时、被拦截的提示词以及提供商的错误,都应显示清晰的提示,并且不应消耗用户的额度。
- 添加安全措施: 提供商的安全设置、屏蔽词、使用条款,以及在图片可以被分享时提供举报按钮。
- 如果收费,添加计费功能; 参见如何为应用添加支付。
- 上线前进行安全审查。 AI 构建应用安全检查清单是一份很好的参考清单。
常见错误
- 从浏览器调用图像 API,这会暴露你的密钥。
- 只保存提供商的临时链接,结果几天后图库就会失效。
- 没有每位用户的上限,一个用户或机器人就可能耗尽你的预算。
- 让模型直接绘制文字。 许多模型仍会在图片中拼错单词。标题和价格应由你的应用在图片上叠加。
- 在提供商暂停账户之前忽视内容规则。
- 公开的图库没有任何审核。
什么时候现成的产品更合适
如果你或你的团队只是需要图片,直接使用现有设计工具或 AI 助手中的图像功能即可;为了制作自己的图片而专门开发一个应用,通常并不划算。当你要为特定群体提供可重复的工作、需要每次都应用统一的品牌风格,或者希望把图像生成作为更大产品中的一个步骤时(例如一个既写文案又生成照片的商品列表工具),才值得自己搭建。
使用 Mythex 搭建
Mythex 是一款 AI 应用构建工具:你在聊天中描述图像应用,它会在实时预览中构建表单、服务器端 API 调用、图库和使用限制,然后发布到一个公开网址。你应用中的图像生成使用的是你自己的提供商密钥,将作为项目密钥保存,并计入你自己的提供商账户。Mythex 不为你应用的用户提供图像生成用量。
这与 Mythex 自身的图像生成功能不同。后者用于为你正在构建的网站制作图片(例如首页大图或图标),并消耗 Mythex 积分。当你的应用需要保存图片时,Mythex 会为项目启用文件存储,并为生成记录提供 Postgres 数据库。如果想从较小的起点入手,请参阅如何为应用添加 AI 功能,它介绍了如何在现有产品中添加单个 AI 操作。
常见问题
搭建 AI 图像生成器需要 GPU 吗?
如果你使用图像生成 API,就不需要。模型由提供商在其硬件上运行,你的应用发送提示词并接收图片。自己运行模型则需要 GPU 服务器,是一个大得多的项目。
为什么 AI 图像应用比文本应用更贵?
通常每生成一张图片的成本明显高于一段简短的文字回复,分辨率越高或质量设置越高,成本又会增加。请查看提供商当前的单张图片定价,并限制每位用户可以生成的图片数量。
生成的图片应该存放在哪里?
存放在文件存储中(对象存储桶),并将文件地址以及提示词等详细信息保存在你的数据库里。不要依赖提供商提供的临时图片链接,它们可能会过期失效。
AI 图像生成器生成的图片归谁所有?
这取决于提供商的条款,以及你和用户所在地区的法律。请阅读提供商的条款,在你自己的服务条款中把相关规则告知用户;如果版权归属对你的业务很重要,请寻求专业意见。