ChatGPT2API 主要是对 ChatGPT 官网相关能力进行逆向整理与封装,提供面向 ChatGPT 图片生成、图片编辑、多图组图编辑场景的 OpenAI 兼容图片 API / 代理,并集成在线画图、号池管理、多种账号导入方式与 Docker 自托管部署能力。
WARNING
免责声明:
本项目涉及对 ChatGPT 官网文本生成、图片生成与图片编辑等相关接口的逆向研究,仅供个人学习、技术研究与非商业性技术交流使用。
IMPORTANT
本项目基于对 ChatGPT 官网相关能力的逆向研究实现,存在账号受限、临时封禁或永久封禁的风险。请勿使用你自己的重要账号、常用账号或高价值账号进行测试。
CAUTION
旧版本存在已知漏洞,请尽快升级到最新版本。公网部署时请尽量不要放置敏感信息,并自行做好访问控制与隔离。
已发布镜像支持 linux/amd64 与 linux/arm64,在 x86 服务器和 Apple Silicon / ARM Linux 设备上都会自动拉取匹配架构的版本。
git clone git@github.com:basketikun/chatgpt2api.git
# 按需编辑 config.json 的密钥和 `refresh_account_interval_minute`
# 也可以直接通过环境变量 CHATGPT2API_AUTH_KEY 覆盖 auth-key
docker compose up -d
支持通过环境变量 STORAGE_BACKEND 切换存储方式:
json - 本地 JSON 文件(默认)sqlite - 本地 SQLite 数据库postgres - 外部 PostgreSQL(需配置 DATABASE_URL)git - Git 私有仓库(需配置 GIT_REPO_URL 和 GIT_TOKEN)示例:使用 PostgreSQL
environment:
- STORAGE_BACKEND=postgres
- DATABASE_URL=postgresql://user:password@host:5432/dbname
POST /v1/images/generations 图片生成接口POST /v1/images/edits 图片编辑接口POST /v1/chat/completionsPOST /v1/responsesGET /v1/models 返回 gpt-image-2、codex-gpt-image-2、auto、gpt-5、gpt-5-1、gpt-5-2、gpt-5-3、gpt-5-3-mini、
gpt-5-minin 返回多张生成结果Plus / Team / Pro 订阅可用,模型别名为 codex-gpt-image-2,如有需要可自行在其他场景映射回 gpt-image-2,用于和官网画图区分;也就意味着同一账号会同时有官网和 Codex 两份生图额度gpt-image-2、codex-gpt-image-2、auto、gpt-5、gpt-5-1、gpt-5-2、gpt-5-3、gpt-5-3-mini、gpt-5-mini 模型选择sub2api 服务器导入、access_token 导入sub2api 服务器,筛选并批量导入其中的 OpenAI OAuth 账号/v1/complete 文本补全与流式输出已实现,但仍在测试,目前会出现对话重复的问题,请谨慎测试使用文生图界面:

编辑图:

Cherry Studio 中使用,支持作为绘图接口接入:

号池管理:

New Api 接入:

所有 AI 接口都需要请求头:
Authorization: Bearer <auth-key>
GET /v1/models返回当前暴露的图片模型列表。
curl http://localhost:8000/v1/models \
-H "Authorization: Bearer <auth-key>"
| 字段 | 说明 |
|---|---|
| 返回模型 | gpt-image-2、codex-gpt-image-2、auto、gpt-5、gpt-5-1、gpt-5-2、gpt-5-3、gpt-5-3-mini、gpt-5-mini |
| 接入场景 | 可接入 Cherry Studio、New API 等上游或客户端 |
POST /v1/images/generationsOpenAI 兼容图片生成接口,用于文生图。
curl http://localhost:8000/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <auth-key>" \
-d '{
"model": "gpt-image-2",
"prompt": "一只漂浮在太空里的猫",
"n": 1,
"response_format": "b64_json"
}'
| 字段 | 说明 |
|---|---|
model | 图片模型,当前可用值以 /v1/models 返回结果为准,推荐使用 gpt-image-2 |
prompt | 图片生成提示词 |
n | 生成数量,当前后端限制为 1-4 |
response_format | 当前请求模型中包含该字段,默认值为 b64_json |
POST /v1/images/editsOpenAI 兼容图片编辑接口,用于上传图片并生成编辑结果。
curl http://localhost:8000/v1/images/edits \
-H "Authorization: Bearer <auth-key>" \
-F "model=gpt-image-2" \
-F "prompt=把这张图改成赛博朋克夜景风格" \
-F "n=1" \
-F "image=@./input.png"
| 字段 | 说明 |
|---|---|
model | 图片模型, gpt-image-2 |
prompt | 图片编辑提示词 |
n | 生成数量,当前后端限制为 1-4 |
image | 需要编辑的图片文件,使用 multipart/form-data 上传 |
POST /v1/chat/completions面向图片场景的 Chat Completions 兼容接口,不是完整通用聊天代理。
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <auth-key>" \
-d '{
"model": "gpt-image-2",
"messages": [
{
"role": "user",
"content": "生成一张雨夜东京街头的赛博朋克猫"
}
],
"n": 1
}'
| 字段 | 说明 |
|---|---|
model | 图片模型,默认按图片生成场景处理 |
messages | 消息数组,需要是图片相关请求内容 |
n | 生成数量,按当前实现解析为图片数量 |
stream | 已实现,但仍在测试 |
POST /v1/responses面向图片生成工具调用的 Responses API 兼容接口,不是完整通用 Responses API 代理。
curl http://localhost:8000/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <auth-key>" \
-d '{
"model": "gpt-5",
"input": "生成一张未来感城市天际线图片",
"tools": [
{
"type": "image_generation"
}
]
}'
| 字段 | 说明 |
|---|---|
model | 响应中会回显该模型字段,但图片生成当前仍走图片生成兼容逻辑 |
input | 输入内容,需要能解析出图片生成提示词 |
tools | 必须包含 image_generation 工具请求 |
stream | 已实现,但仍在测试 |
学 AI , 上 L 站:LinuxDO
感谢所有为本项目做出贡献的开发者: