跳到正文
阿里雲開發者社區 AI·· 3 小時前AI 評分46

拆解 AI 圖像生成應用的後端架構:ECS、OSS 與大模型 API 如何協作

拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合

AI 導讀

阿里雲通義萬相文生圖應用以 ECS 處理業務及保管 API Key、以 OSS 儲存圖片並提供簽名 URL,再由萬相 API 生成圖像。圖生圖流程會先將參考圖片存入 OSS;生成任務則由 ECS 非同步處理,前端可透過輪詢查詢狀態。

正文

2026-11-03 2

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介: 本文详解文生图应用后端架构:以阿里云通义万相为例,厘清ECS(业务中转)、OSS(安全存图+签名URL)、万相API(模型生成)三者协作链路,涵盖鉴权安全、异步处理、图生图流程及部署要点,助你避开前端直调API等典型误区。(239字)

AI图像生成后端架构

做一个文生图应用,前端界面好写,真正的问题在后端——用户上传的图存哪、怎么调模型、怎么把结果返回给用户。这篇按阿里云通义万相的技术方案,把 AI 图像生成应用的后端链路拆清楚。

一、整体请求链路

文生图应用的后端流程不复杂,但每个环节都有讲究:

用户输入 Prompt / 上传图片
        │
        ▼
   ECS 接收请求
        │
        ├── 文生图:直接把 Prompt 发给万相 API
        │
        └── 图生图:用户图片先存 OSS,生成签名 URL 发给万相 API
                                        │
                                        ▼
                                  万相模型生成图像
                                        │
                                        ▼
                                  返回图像 URL
                                        │
                                        ▼
                                  存到 OSS,返回给前端

核心是三个组件:ECS 跑业务逻辑、OSS 存图片、万相 API 做实际生成。

二、为什么 ECS 不能少

有人会问:直接前端调万相 API 不就行了?为什么还要一台 ECS?

原因有三个:

1. API Key 不能暴露在前端。 大模型 API 都需要鉴权,Key 放在前端代码里等于公开了,任何人都能盗用你的额度。必须由 ECS 后端持有 Key,前端请求后端,后端再转发给模型。

2. 需要业务逻辑处理。 比如用户上传图片后,你要做格式校验、压缩、加水印、记录生成历史、统计调用次数。这些逻辑放在前端不靠谱,也没法在模型 API 里做。

3. 需要存中间状态。 用户发起生成 → 排队 → 生成中 → 完成,这个状态流转需要后端维护。大模型 API 是同步调用还是异步轮询,你得自己管理。

三、OSS 为什么必须有

文生图应用有两种输入:纯文字 Prompt,或者用户上传参考图(比如图生图、涂鸦转换、人像风格化)。

用户上传的图片不能直接传给模型 API。 万相这类模型服务要求图片通过 HTTP URL 访问,不能直接上传二进制文件。所以流程是:

  1. 用户在前端选图
  2. 前端把图传到你的 ECS
  3. ECS 把图存到 OSS
  4. 生成一个带签名的临时 URL(过期时间可控)
  5. 把这个 URL 连同 Prompt 一起发给万相 API
  6. 万相模型通过这个 URL 下载图片进行处理

OSS 的作用就是做"图片中转站"——用户上传的图、模型生成的结果图,都先存 OSS,再通过 URL 引用。

为什么要用签名 URL? 因为 OSS 存储桶默认是私有的,不能公开访问。签名 URL 相当于一个有时效的临时通行证,模型服务能下载,但过了有效期就访问不了了,安全。

四、调万相 API 的关键细节

调用文生图 API 时,有几个参数直接影响生成效果:

参数 作用 调优建议
prompt 文本描述 越具体越好,加风格、构图、光影描述
negative_prompt 反向描述 排除不想要的元素,比如"模糊""低分辨率"
size 输出尺寸 根据业务场景选,社交图用方形,海报用竖版
n 生成张数 一次生成多张方便用户选,但成本也翻倍
style 风格预设 写实、动漫、水彩等,根据产品定位选

图生图类的接口(人像风格化、涂鸦转换)还需要传参考图 URL 和风格强度参数。

五、异步处理是必须的

文生图不是秒回的——一张图生成通常要几秒到十几秒。如果同步等待,用户会以为卡死了。

正确做法是异步:

  1. 前端发请求,后端立即返回一个任务 ID
  2. 后端后台调万相 API,等模型返回结果
  3. 前端轮询任务状态(或者用 WebSocket 推送)
  4. 生成完成后返回图片 URL

这个状态管理逻辑放在 ECS 上,可以用数据库记录每个任务的状态:pending → processing → done / failed。

六、实际部署清单

从零搭一个文生图后端,需要准备:

  • ECS 实例:跑 Node.js 或 Python Web 服务,配置不用太高,2核4G 够用
  • OSS Bucket:存用户上传图和生成结果图,建议按日期分目录
  • 百炼 API Key:在阿里云百炼平台申请,开通万相模型
  • 域名和 HTTPS:如果是 Web 应用,需要 HTTPS(浏览器要求)
  • 数据库:记录用户、生成历史、调用次数,轻量的 MySQL 就够

整个架构的成本主要是大模型 API 调用次数,基础设施(ECS+OSS)很便宜。

七、写在最后

AI 图像生成应用的后端架构不复杂——ECS 做业务中转、OSS 做图片存储、大模型 API 做实际生成。理解了这条链路,你就知道为什么不能直接前端调 API、为什么需要 OSS、为什么要异步处理。

完整的技术方案和产品组合可以看官方方案页——查看通义万相 AI 绘画创作技术方案。具体能力以页面实际展示为准。

你做过文生图应用吗?后端怎么搭的?评论区交流。

來源:阿里雲開發者社區 AI · developer.aliyun.com