AI Image Online:一个让你在自己服务器上跑 AI 生图的开源工具
你是否遇到过这些问题?
AI 图片生成已经不是什么新鲜事了。DALL·E、Stable Diffusion、Midjourney……各种工具层出不穷。但当你真正想把 AI 生图能力用起来的时候,往往会碰到一连串头疼的事:
想用 API 生图,结果被浏览器 CORS 拦截。 你拿到了一个 OpenAI 兼容的图片 API 密钥,兴冲冲地在浏览器里调接口,结果浏览器直接给你一个红色的 CORS 错误。第三方 API 不支持跨域,你没法直接从前端调用。要么搭个 Nginx 反向代理,要么写个后端转发——就为了一个简单的图片生成请求。
第三方在线工具不放心。 网上确实有不少 AI 生图网站,但你得把 API Key 交给别人的服务器。你的密钥、你的提示词、你生成的图片,全经过别人的手里。对于注重隐私的用户来说,这不是一个可以接受的方案。
想在家里 NAS 上部署,折腾半天环境。 很多人买了群晖、飞牛之类的 NAS,想在上面跑点 AI 应用。但现有的方案要么依赖 Python 环境,要么需要 GPU,要么配置复杂到让人放弃。
现有工具功能单一,体验割裂。 有的只能文生图,不能图生图。有的没有历史记录,生成的图片关了页面就没了。有的只能在 PC 上用,手机上完全没法看。
AI Image Online 是什么
AI Image Online 是一个开源的、可自托管的 AI 图片生成 Web 应用。它解决的核心问题很简单:让你在自己的服务器上,通过浏览器,方便地使用任何 OpenAI 兼容的图片生成 API。
不需要 GPU,不需要 Python,不需要复杂的配置。一个 Docker 容器,一个 API Key,就能跑起来。
项目地址:GitHub - IronManCantFix/ai-image-online

它解决了什么问题
1. 彻底解决 CORS 难题,前端直接调 API
这是 AI Image Online 最核心的技术设计。大多数图片生成 API(包括 OpenAI 官方和各种兼容服务)都不支持浏览器跨域请求。传统方案需要额外部署 Nginx 或写后端接口来转发。
AI Image Online 内置了一个轻量级的 Go 反向代理,和前端打包在同一个 Docker 容器里。前端构造好请求后,通过代理透明转发到目标 API,代理层完全不感知具体的 API 协议。
浏览器 → Go 代理(同源) → 第三方图片 API
↓ 自动处理 CORS ↓ 原样转发请求
这意味着:
- 零配置 CORS:不需要 Nginx,不需要改 API 服务端的跨域配置
- 协议无关:代理只做透明转发,新增任何图片 API 适配器时,代理层零改动
- 安全透明:代理不解析、不存储请求内容,API Key 只在请求过程中经过代理
2. API Key 掌握在自己手里
AI Image Online 是一个纯前端 + 轻代理的架构。用户的 API Key 保存在浏览器的 localStorage 中,永远不会上传到任何第三方服务器。
当你点击"生成图片"时,请求流程是:
你的浏览器 → 你的服务器(代理转发) → 你配置的 API
全程没有中间商。你的密钥、提示词、生成的图片,都只在你自己的基础设施上流转。
3. 一个 Docker 命令,5 分钟部署
整个应用打包成一个 Docker 镜像,镜像体积小,不需要 GPU,任何能跑 Docker 的设备都可以部署:
docker run -d -p 8080:8080 ghcr.io/ironmancantfix/ai-image-online:main
打开浏览器访问 http://你的IP:8080,配置 API 地址和 Key,立刻就能用。
特别适合部署在:
- 家用 NAS(飞牛、群晖等)
- 云服务器(轻量级,1 核 1G 就够)
- 局域网内的任何设备
项目还提供了飞牛 NAS 的 .fpk 安装包,可以像安装普通应用一样一键安装。
4. 文生图 + 图生图,一个界面搞定
很多开源的 AI 生图工具只支持文生图(输入文字,输出图片)。AI Image Online 同时支持:
- 文生图(Text-to-Image):输入描述性文字,生成对应图片
- 图生图(Image-to-Image):上传一张参考图,结合文字描述,生成新图片
两个模式在同一个页面通过 Tab 切换,各自独立保存生成结果,互不干扰。
5. 生成结果不会丢失
每次生成的图片都会自动保存到浏览器本地的 IndexedDB 中,形成一个完整的历史画廊。你可以:
- 浏览所有历史生成记录
- 按模式(文生图/图生图)筛选
- 单张或批量下载
- 单张或批量删除
- 查看每次生成的原始 API 响应数据(方便调试)
关掉页面再打开,历史记录还在。
6. 多 API 提供商,随时切换
你可以配置多个 API 提供商,比如:
- OpenAI 官方 API
- 国内的 OpenAI 兼容服务(如 Dreamfield 等)
- 自建的图片生成服务
在设置页面添加、编辑、删除提供商配置,一键切换当前使用的提供商。每个提供商可以独立配置 API 地址、Key 和模型名称。
7. PC 和手机都能用
界面采用响应式设计,TailwindCSS + Naive UI 组件库,自动适配不同屏幕尺寸:
- PC 端:左右分栏,参数面板和结果并排显示
- 手机端:上下布局,操作区域和结果区域纵向排列
还支持浅色/深色主题切换,跟随系统偏好或手动选择。
技术架构一览
| 层级 |
技术选型 |
说明 |
| 前端框架 |
Vue 3 + TypeScript |
组件化开发,类型安全 |
| 构建工具 |
Vite |
快速热更新,优化构建产物 |
| 状态管理 |
Pinia |
轻量级,支持 Composition API |
| UI 组件 |
Naive UI + TailwindCSS |
开箱即用的组件 + 灵活的工具类 |
| 本地存储 |
localStorage + IndexedDB |
配置持久化 + 图片持久化 |
| 后端代理 |
Go |
单二进制,低资源占用,透明转发 |
| 部署方式 |
Docker |
单容器,包含前端静态文件和 Go 代理 |
整个架构的设计原则是简单:
- 代理层不感知 API 协议,只做透明转发
- 前端通过适配器模式对接不同 API,扩展新协议只需新增一个适配器文件
- 数据全部存在客户端,服务端无状态
适用场景
- 个人使用:在自己的 NAS 或云服务器上部署一个私有的 AI 生图服务
- 团队共享:部署在内网,团队成员共用一个 API Key 配额,各自独立使用
- 开发者调试:查看原始 API 响应数据,方便调试图片生成接口
- API 评测:快速切换不同提供商,对比生成效果和响应速度
快速开始
# 1. 拉取镜像
docker pull ghcr.io/ironmancantfix/ai-image-online:main
# 2. 启动容器
docker run -d -p 8080:8080 --name ai-image-online \
ghcr.io/ironmancantfix/ai-image-online:main
# 3. 打开浏览器访问
# http://localhost:8080
# 4. 在设置页面配置 API 地址和 Key
# 5. 开始生成图片
写在最后
AI Image Online 不是一个大而全的 AI 平台,它只做一件事:让你方便地在自己的服务器上使用 AI 图片生成 API。 没有复杂的依赖,没有臃肿的功能,没有隐私顾虑。
如果你有一台闲置的 NAS 或云服务器,如果你需要一个轻量级的 AI 生图工具,如果你在意数据安全和隐私——可以试试这个项目。
开源地址:https://github.com/IronManCantFix/ai-image-online
欢迎 Star、Issue 和 PR。