mirror of
https://github.com/TheSmallHanCat/flow2api.git
synced 2026-05-31 20:01:41 +08:00
261 lines
6.2 KiB
Markdown
261 lines
6.2 KiB
Markdown
# Flow2API
|
||
|
||
<div align="center">
|
||
|
||
[](LICENSE)
|
||
[](https://www.python.org/)
|
||
[](https://fastapi.tiangolo.com/)
|
||
[](https://www.docker.com/)
|
||
|
||
**一个功能完整的 OpenAI 兼容 API 服务,为 Flow 提供统一的接口**
|
||
|
||
</div>
|
||
|
||
## ✨ 核心特性
|
||
|
||
- 🎨 **文生图** / **图生图**
|
||
- 🎬 **文生视频** / **图生视频**
|
||
- 🎞️ **首尾帧视频**
|
||
- 🔄 **AT自动刷新**
|
||
- 📊 **余额显示** - 实时查询和显示 VideoFX Credits
|
||
- 🚀 **负载均衡** - 多 Token 轮询和并发控制
|
||
- 🌐 **代理支持** - 支持 HTTP/SOCKS5 代理
|
||
- 📱 **Web 管理界面** - 直观的 Token 和配置管理
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 前置要求
|
||
|
||
- Docker 和 Docker Compose(推荐)
|
||
- 或 Python 3.8+
|
||
|
||
### 方式一:Docker 部署(推荐)
|
||
|
||
#### 标准模式(不使用代理)
|
||
|
||
```bash
|
||
# 克隆项目
|
||
git clone https://github.com/TheSmallHanCat/flow2api.git
|
||
cd flow2api
|
||
|
||
# 启动服务
|
||
docker-compose up -d
|
||
|
||
# 查看日志
|
||
docker-compose logs -f
|
||
```
|
||
|
||
#### WARP 模式(使用代理)
|
||
|
||
```bash
|
||
# 使用 WARP 代理启动
|
||
docker-compose -f docker-compose.warp.yml up -d
|
||
|
||
# 查看日志
|
||
docker-compose -f docker-compose.warp.yml logs -f
|
||
```
|
||
|
||
### 方式二:本地部署
|
||
|
||
```bash
|
||
# 克隆项目
|
||
git clone https://github.com/TheSmallHanCat/flow2api.git
|
||
cd sora2api
|
||
|
||
# 创建虚拟环境
|
||
python -m venv venv
|
||
|
||
# 激活虚拟环境
|
||
# Windows
|
||
venv\Scripts\activate
|
||
# Linux/Mac
|
||
source venv/bin/activate
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 启动服务
|
||
python main.py
|
||
```
|
||
|
||
### 首次访问
|
||
|
||
服务启动后,访问管理后台: **http://localhost:8000**
|
||
|
||
- **用户名**: `admin`
|
||
- **密码**: `admin`
|
||
|
||
⚠️ **重要**: 首次登录后请立即修改密码!
|
||
|
||
## 📋 支持的模型
|
||
|
||
### 图片生成
|
||
|
||
| 模型名称 | 说明| 尺寸 |
|
||
|---------|--------|--------|
|
||
| `gemini-2.5-flash-image-landscape` | 图/文生图 | 横屏 |
|
||
| `gemini-2.5-flash-image-portrait` | 图/文生图 | 竖屏 |
|
||
| `gemini-3.0-pro-image-landscape` | 图/文生图 | 横屏 |
|
||
| `gemini-3.0-pro-image-portrait` | 图/文生图 | 竖屏 |
|
||
| `imagen-4.0-generate-preview-landscape` | 图/文生图 | 横屏 |
|
||
| `imagen-4.0-generate-preview-portrait` | 图/文生图 | 竖屏 |
|
||
|
||
### 视频生成
|
||
|
||
#### 文生视频 (T2V - Text to Video)
|
||
⚠️ **不支持上传图片**
|
||
|
||
| 模型名称 | 说明| 尺寸 |
|
||
|---------|---------|--------|
|
||
| `veo_3_1_t2v_fast_portrait` | 文生视频 | 竖屏 |
|
||
| `veo_3_1_t2v_fast_landscape` | 文生视频 | 横屏 |
|
||
| `veo_2_1_fast_d_15_t2v_portrait` | 文生视频 | 竖屏 |
|
||
| `veo_2_1_fast_d_15_t2v_landscape` | 文生视频 | 横屏 |
|
||
| `veo_2_0_t2v_portrait` | 文生视频 | 竖屏 |
|
||
| `veo_2_0_t2v_landscape` | 文生视频 | 横屏 |
|
||
|
||
#### 首尾帧模型 (I2V - Image to Video)
|
||
📸 **支持1-2张图片:首尾帧**
|
||
|
||
| 模型名称 | 说明| 尺寸 |
|
||
|---------|---------|--------|
|
||
| `veo_3_1_i2v_s_fast_fl_portrait` | 图生视频 | 竖屏 |
|
||
| `veo_3_1_i2v_s_fast_fl_landscape` | 图生视频 | 横屏 |
|
||
| `veo_2_1_fast_d_15_i2v_portrait` | 图生视频 | 竖屏 |
|
||
| `veo_2_1_fast_d_15_i2v_landscape` | 图生视频 | 横屏 |
|
||
| `veo_2_0_i2v_portrait` | 图生视频 | 竖屏 |
|
||
| `veo_2_0_i2v_landscape` | 图生视频 | 横屏 |
|
||
|
||
#### 多图生成 (R2V - Reference Images to Video)
|
||
🖼️ **支持多张图片**
|
||
|
||
| 模型名称 | 说明| 尺寸 |
|
||
|---------|---------|--------|
|
||
| `veo_3_0_r2v_fast_portrait` | 图生视频 | 竖屏 |
|
||
| `veo_3_0_r2v_fast_landscape` | 图生视频 | 横屏 |
|
||
|
||
## 📡 API 使用示例(需要使用流式)
|
||
|
||
### 文生图
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8000/v1/chat/completions" \
|
||
-H "Authorization: Bearer han1234" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"model": "gemini-2.5-flash-image-landscape",
|
||
"messages": [
|
||
{
|
||
"role": "user",
|
||
"content": "一只可爱的猫咪在花园里玩耍"
|
||
}
|
||
],
|
||
"stream": true
|
||
}'
|
||
```
|
||
|
||
### 图生图
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8000/v1/chat/completions" \
|
||
-H "Authorization: Bearer han1234" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"model": "imagen-4.0-generate-preview-landscape",
|
||
"messages": [
|
||
{
|
||
"role": "user",
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "将这张图片变成水彩画风格"
|
||
},
|
||
{
|
||
"type": "image_url",
|
||
"image_url": {
|
||
"url": "data:image/jpeg;base64,<base64_encoded_image>"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"stream": true
|
||
}'
|
||
```
|
||
|
||
### 文生视频
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8000/v1/chat/completions" \
|
||
-H "Authorization: Bearer han1234" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"model": "veo_3_1_t2v_fast_landscape",
|
||
"messages": [
|
||
{
|
||
"role": "user",
|
||
"content": "一只小猫在草地上追逐蝴蝶"
|
||
}
|
||
],
|
||
"stream": true
|
||
}'
|
||
```
|
||
|
||
### 首尾帧生成视频
|
||
|
||
```bash
|
||
curl -X POST "http://localhost:8000/v1/chat/completions" \
|
||
-H "Authorization: Bearer han1234" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"model": "veo_3_1_i2v_s_fast_fl_landscape",
|
||
"messages": [
|
||
{
|
||
"role": "user",
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "从第一张图过渡到第二张图"
|
||
},
|
||
{
|
||
"type": "image_url",
|
||
"image_url": {
|
||
"url": "data:image/jpeg;base64,<首帧base64>"
|
||
}
|
||
},
|
||
{
|
||
"type": "image_url",
|
||
"image_url": {
|
||
"url": "data:image/jpeg;base64,<尾帧base64>"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"stream": true
|
||
}'
|
||
```
|
||
|
||
---
|
||
|
||
## 📄 许可证
|
||
|
||
本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。
|
||
|
||
---
|
||
|
||
## 🙏 致谢
|
||
|
||
感谢所有贡献者和使用者的支持!
|
||
|
||
---
|
||
|
||
## 📞 联系方式
|
||
|
||
- 提交 Issue:[GitHub Issues](https://github.com/TheSmallHanCat/flow2api/issues)
|
||
- 讨论:[GitHub Discussions](https://github.com/TheSmallHanCat/flow2api/discussions)
|
||
|
||
---
|
||
|
||
**⭐ 如果这个项目对你有帮助,请给个 Star!**
|