image2api 是一个面向图片生成和 OpenAI 兼容接口的 AIGC 聚合平台。项目包含用户创作端, 管理后台, OpenAI 兼容 API, 后台任务 Worker, 账号池和计费运营能力。
本仓库是独立维护的二开版本, 项目显示名统一为 image2api, Docker 镜像名统一以 image2api 开头。当前公开发布不等于自由开源授权, 许可证见 LICENSE.
- 图片生成: 支持文生图, 图生图, 异步任务, 历史记录, 预览和下载.
- 原生高清: 支持上游原生
gpt-image-2Responses/Image generation 路线, 保留 1K/2K/4K 原生结果, 不做虚假放大. - OpenAI 兼容 API:
GET /v1/modelsPOST /v1/chat/completionsPOST /v1/images/generationsPOST /v1/images/editsGET /v1/images/generations/:task_idPOST /v1/video/generationsGET /v1/video/generations/:task_id
- 后台运营: 用户, 账单, CDK, 优惠码, 模型价格, Token/API Key 账号池, 代理, 请求日志, 上游日志.
- 账号池: 支持 API key 类型账号和会话类账号, 支持检测, 熔断, 轮换和失败记录.
- 部署: 支持本地开发, 单机 Docker Compose, Nginx/Caddy 反向代理.
- 后端: Go 1.24, Gin, GORM, MySQL, Redis.
- 前端: React 18, Vite, TypeScript, Tailwind CSS.
- 部署: Docker, Docker Compose, Nginx, Caddy.
.
├── backend/ # Go 后端: API / Admin / OpenAI 兼容 / Worker
├── frontend/ # 用户前台 + 管理后台
├── deploy/ # Docker Compose, Nginx, Caddy, 环境变量模板
├── docs/ # API, 部署, 上游账号, 图片生成说明
├── scripts/ # 本地开发辅助脚本
└── tools/ # 账号与数据转换工具
17080: 用户前台.17088: 管理后台.17200: OpenAI 兼容 API.
17180: 用户后端 API.17188: 管理后台 API.17200: OpenAI 兼容 API.23306或13306: MySQL, 取决于 Compose 文件.16379: Redis.18191: FlareSolverr.
本仓库内 Compose 默认使用以下镜像名:
image2api/backend:dev
image2api/backend:latest
image2api/user-web:dev
image2api/user-web:latest
image2api/admin-web:dev
image2api/admin-web:latest
如发布到 GitHub Container Registry, 推荐使用:
ghcr.io/BFanSYe/image2api-backend
ghcr.io/BFanSYe/image2api-user-web
ghcr.io/BFanSYe/image2api-admin-web
| 场景 | Compose 文件 | 入口 | 说明 |
|---|---|---|---|
| 本机验证 / 外部反代 | docker-compose.server.yml + docker-compose.no-edge.yml |
127.0.0.1:17080, 127.0.0.1:17088 |
推荐新服务器首次部署使用. |
| 内置 Nginx TLS | docker-compose.yml |
17080, 17088, 17200 |
需要提前准备证书和真实域名. |
| 本地依赖开发 | docker-compose.dev.yml |
MySQL / Redis | 业务进程在宿主机运行. |
| 全容器开发 | docker-compose.dev-full.yml |
17080, 17088 |
无需宿主机安装 Go/Node. |
完整部署步骤见 部署快速开始.
全新数据库初始化后默认管理员为:
username: admin
password: admin123
首次登录后立即修改密码。
git clone https://github.com/BFanSYe/image2api.git
cd image2apicp deploy/env/.env.example deploy/env/.env.local必须修改以下生产密钥:
IMAGE2API_MYSQL_ROOT_PASSWORDIMAGE2API_MYSQL_PASSWORDIMAGE2API_DB_DSNIMAGE2API_JWT_SECRETIMAGE2API_JWT_REFRESH_SECRETIMAGE2API_AES_KEYIMAGE2API_CORS_ORIGINS
密钥生成示例:
openssl rand -hex 32cd deploy
docker compose -f docker-compose.dev-full.yml up -d --build检查状态:
docker compose -f docker-compose.dev-full.yml ps
docker logs -f image2api-api-dev
docker logs -f image2api-admin-dev
docker logs -f image2api-openai-dev
docker logs -f image2api-worker-dev如果已经准备好 deploy/certs/*.crt 和 deploy/certs/*.key, 可直接使用带 Nginx TLS 入口的生产栈:
cd deploy
docker compose --env-file ./env/.env.local -f docker-compose.yml up -d --build如果先在新服务器本机验证, 或前面另有 Caddy/Nginx 反代, 可使用 no-edge 栈:
cd deploy
docker compose -f docker-compose.server.yml -f docker-compose.no-edge.yml up -d --build访问入口:
带 Nginx TLS 入口时:
- 用户前台:
https://你的域名:17080 - 管理后台:
https://你的域名:17088/admin/ - OpenAI 兼容 API:
https://你的域名:17200/v1
no-edge 本机验证时:
- 用户前台:
http://127.0.0.1:17080 - 管理后台:
http://127.0.0.1:17088/admin/
只启动 MySQL 和 Redis:
cd deploy
docker compose -f docker-compose.dev.yml up -d后端:
cd backend
go test ./...
go run ./cmd/api前端:
cd frontend
corepack enable
pnpm install
pnpm --filter @image2api/user dev
pnpm --filter @image2api/admin dev- 后台添加 API key 类型上游账号时,
base_url应指向支持 Responses/Image generation 的上游. - 需要原生 2K/4K 时, 上游必须真实支持
gpt-image-2对应分辨率. - 不支持原生高清的账号不会被当作高清账号使用.
- 上游失败原因可在后台生成日志和上游日志中查看.
更多说明见:
- 不要提交
.env.local, 数据库 dump, Redis dump, 上传文件, 生成图片缓存, 用户数据和真实上游 token. - 公开仓库前必须运行敏感信息扫描.
- 本仓库当前默认许可证为保留权利, 公开开源前需要重新确认 LICENSE.
当前为保留权利版本, 见 LICENSE. 如后续需要公开开源, 请先确认上游授权和所有第三方素材/代码许可证。