"我们不是在编写代码,我们是在构建连接思想的桥梁。" —— 某位不愿透露姓名的开发者
arting-2api 是一个创新的开源项目,它就像一个万能转换插头,能够将 Arting.ai 的强大绘画能力,无缝转换成与 OpenAI DALL-E、Stable Diffusion WebUI 等业界主流应用完全兼容的 API 接口。
这意味着,你现在可以用最熟悉的工具和客户端,免费享受 Arting.ai 的高质量绘画服务!
将优秀的免费绘画服务接入到需要付费 API 的工作流中,实现"零成本"高质量出图。
无需修改现有工具!无论是支持 OpenAI 图像接口的客户端,还是为 Stable Diffusion WebUI 设计的插件,都能直接使用。
通过 Docker 将复杂的环境配置压缩成简单命令,真正实现"开箱即用"。
- OpenAI 原生模式 (
/v1/images/generations):兼容所有 DALL-E 接口应用 - 智能聊天模式 (
/v1/chat/completions):在聊天中直接生成图片 - SD-WebUI 模式 (
/sdapi/v1/txt2img):让 SD 工作流用上 Arting 模型
鼓励探索、改造和分享,用技术力量将封闭服务重新带回开放生态。
在自有应用中集成免费、高质量的 AI 绘画能力
在熟悉的 UI 界面中体验不同模型风格
低成本学习 API 转换、反向代理等技术的实践平台
寻找 OpenAI DALL-E 等付费服务的完美替代方案
- Docker & Docker Compose 安装指南
1. 获取项目
git clone https://github.com/lzA6/arting-2api.git
cd arting-2api2. 配置认证令牌 🔑
# 复制环境配置模板
cp .env.example .env获取 ARTING_AUTH_TOKEN:
- 登录 Arting.ai
- 按
F12打开开发者工具,切换到Network面板 - 生成一张图片,在网络请求中找到对
api.arting.ai的请求 - 复制
Authorization请求头的值 - 粘贴到
.env文件的ARTING_AUTH_TOKEN中
3. 启动服务
docker-compose up -d完成! 🎉 服务已在 http://localhost:8090 运行
访问 http://localhost:8090/ 使用内置测试界面
- API Base URL:
http://localhost:8090/v1 - API Key:
.env中设置的API_MASTER_KEY(默认为1)
兼容客户端:
将外部 API 指向:http://localhost:8090/sdapi/v1/txt2img
arting-2api 充当了一个智能翻译官,在不同 API 协议间进行实时转换:
┌─────────────────┐ OpenAI Format ┌──────────────────┐ Arting Format ┌─────────────┐
│ │ ──────────────────> │ │ ──────────────────> │ │
│ Your Client │ │ arting-2api │ │ Arting.ai │
│ │ <────────────────── │ │ <────────────────── │ │
└─────────────────┘ Image URL/Data └──────────────────┘ Polling Result └─────────────┘
| 组件 | 作用 | 技术选型理由 |
|---|---|---|
| FastAPI | 核心 Web 框架 | 🚀 异步高性能,适合处理并发轮询请求 |
| Cloudscraper | 绕过 Cloudflare 保护 | 🛡️ 模拟真实浏览器行为,确保服务稳定 |
| Docker & Nginx | 容器化与反向代理 | 📦 环境隔离,简化部署,提升性能 |
| 轮询机制 | 异步任务状态检查 | 📞 定期查询任务结果,保证数据同步 |
| Pydantic | 数据验证与配置管理 | 📏 类型安全,配置验证,代码健壮 |
| aiohttp | 异步 HTTP 客户端 | ⚡️ 高效处理图片下载等 I/O 密集型操作 |
- 请求接收:接收标准 OpenAI 格式请求
- 格式转换:将请求参数转换为 Arting.ai 格式
- 任务提交:向 Arting.ai 提交绘画任务
- 状态轮询:定期检查任务完成状态
- 结果返回:获取图片 URL 并转换为客户端期望格式
arting-2api/
├── 🐳 Docker 配置
│ ├── Dockerfile # 容器构建定义
│ └── docker-compose.yml # 服务编排配置
├── 🔧 核心配置
│ ├── .env.example # 环境变量模板
│ └── nginx.conf # Nginx 反向代理配置
├── 🐍 Python 源码
│ ├── main.py # FastAPI 应用入口
│ ├── requirements.txt # Python 依赖列表
│ └── app/
│ ├── core/
│ │ └── config.py # 配置管理
│ ├── providers/
│ │ ├── base_provider.py # Provider 基类
│ │ └── arting_provider.py # Arting.ai 适配器
│ └── utils/
│ └── sse_utils.py # 服务器发送事件工具
└── 🌐 静态资源
└── static/ # Web UI 界面文件
├── index.html
├── style.css
└── script.js
- 性能优化:实现请求缓存机制
- 错误处理:增强异常处理和用户反馈
- 文档完善:添加更多使用示例和故障排查指南
- WebSocket 支持:替换轮询机制,实现实时进度更新
- 多 Provider 支持:集成 Midjourney、DreamStudio 等服务
- 图生图功能:支持图像到图像的转换
- 分布式架构:支持多节点部署和负载均衡
- 用户管理系统:添加使用统计和配额管理
- 插件生态:建立第三方插件开发规范
我们欢迎各种形式的贡献!
- 报告问题:在 GitHub Issues 中提交 bug 报告或功能建议
- 代码贡献:Fork 项目,创建功能分支,提交 Pull Request
- 文档改进:优化文档、翻译或添加使用教程
- 技术讨论:参与技术方案设计和架构优化
# 克隆项目
git clone https://github.com/lzA6/arting-2api.git
cd arting-2api
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置认证信息
# 启动开发服务器
uvicorn main:app --reload --port 8090- 遵循现有的代码风格和项目结构
- 确保提交前通过所有测试
- 更新相关文档和示例
- 在 Pull Request 中详细描述变更内容
本项目采用 Apache 2.0 开源许可证。
允许事项:
- ✅ 自由使用、修改和分发代码
- ✅ 用于个人或商业项目
- ✅ 专利授权
要求事项:
- 📝 保留原始版权和许可证声明
- ℹ️ 声明对源代码的修改
禁止事项:
- ❌ 使用项目商标
- ❌ 追究原作者责任
A: 令牌可能定期失效,请按以下步骤更新:
- 重新登录 Arting.ai
- 按 F12 打开开发者工具
- 生成新图片并捕获最新请求
- 复制新的 Authorization 头值
- 更新 .env 文件并重启服务
A: 检查以下常见问题:
- Docker 服务是否正常运行
- .env 文件格式是否正确(无多余空格)
- 端口 8090 是否被其他程序占用
- 网络连接是否正常
A: 使用以下命令查看容器日志:
docker-compose logs -f感谢所有为这个项目做出贡献的开发者、测试者和文档编写者。特别感谢:
- Arting.ai 团队提供优秀的免费绘画服务
- FastAPI 社区提供出色的 Web 框架
- 所有开源项目的贡献者,你们的工作让这个世界更美好
- GitHub Issues: 提交问题与建议
- 文档更新: 欢迎提交文档改进的 Pull Request
- 功能讨论: 在 GitHub Discussions 中参与技术交流
记住,每一个伟大的创意都始于一次简单的尝试。现在,去创造属于你的视觉奇迹吧! ✨