Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
F

flow2api

> 编程语言
Open source

无限次数的banana pro!逆向账号池,支持负载均衡、AT自动刷新、缓存策略、代理等。Q交流群1073237297

2.8K stars0 likes0 views
WebsiteGitHub

About

无限次数的banana pro!逆向账号池,支持负载均衡、AT自动刷新、缓存策略、代理等。Q交流群1073237297

# Flow2API ## ❤️赞助商
感谢 APIMart 赞助了本项目!APIMart 是专注 AI 图片/视频生成的低价 API 平台,GPT-Image-2 低至 \$0.006/张,1 美元可出图 160+ 张。图片、视频一套异步 API 通吃,提交任务拿 ID、回调取结果,跑批万张不超时、换模型不改代码。按量付费、无月费,通过此注册链接注册即可开用。

Thanks to APIMart for sponsoring this project! APIMart is a low-cost API platform for AI image & video generation — GPT-Image-2 from \$0.006/image, 160+ images per dollar. One async API covers both image and video: submit a task, get an ID, fetch results via polling or callback. Batch tens of thousands of images without timeouts, switch models without changing code. Pay-as-you-go with no monthly fee — sign up here to get started.
## ✨ 核心特性 - **文生图** / **图生图** - **文生视频** / **图生视频** - ️ **首尾帧视频** - **AT/ST自动刷新** - AT 过期自动刷新,ST 过期时自动通过浏览器更新(personal 模式) - **余额显示** - 实时查询和显示 VideoFX Credits - **负载均衡** - 多 Token 轮询和并发控制 - **代理支持** - 支持 HTTP/SOCKS5 代理 - **Web 管理界面** - 直观的 Token 和配置管理 - **图片生成连续对话** - **Gemini 官方请求体兼容** - 支持 `generateContent` / `streamGenerateContent`、`systemInstruction`、`contents.parts.text/inlineData/fileData` - ✅ **Gemini 官方格式已实测出图** - 已使用真实 Token 验证 `/models/{model}:generateContent` 可正常返回官方 `candidates[].content.parts[].inlineData` ## 快速开始 ### 前置要求 - Docker 和 Docker Compose(推荐) - 或 Python 3.8+ - 由于Flow增加了额外的验证码,你可以自行选择使用浏览器打码或第三发打码: 注册[YesCaptcha](https://yescaptcha.com/i/13Xd8K)并获取api key,将其填入系统配置页面```YesCaptcha API密钥```区域 - YesCaptcha 支持在管理页切换 `type`:`RecaptchaV3TaskProxyless`、`RecaptchaV3TaskProxylessM1`、`RecaptchaV3TaskProxylessM1S7`、`RecaptchaV3TaskProxylessM1S9`;当前默认推荐 `M1S9`,S7/S9 会强制提交 `minScore` 0.7/0.9。 - 默认 `docker-compose.yml` 建议搭配第三方打码(yescaptcha/capmonster/ezcaptcha/capsolver)。 如需 Docker 内有头打码(browser/personal),请使用下方 `docker-compose.headed.yml`。 - 自动更新st浏览器拓展:[Flow2API-Token-Updater](https://github.com/TheSmallHanCat/Flow2API-Token-Updater) ### 方式一:Docker 部署(推荐) #### 标准模式(不使用代理) ```bash # 克隆项目 git clone https://github.com/TheSmallHanCat/flow2api.git cd flow2api # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f ``` > 说明:Compose 已默认挂载 `./tmp:/app/tmp`。如果把缓存超时设为 `0`,语义是“不自动过期删除”;若希望容器重建后仍保留缓存文件,也需要保留这个 `tmp` 挂载。 #### WARP 模式(使用代理) ```bash # 使用 WARP 代理启动 docker-compose -f docker-compose.proxy.yml up -d # 查看日志 docker-compose -f docker-compose.proxy.yml logs -f ``` #### Docker 有头打码模式(browser / personal) > 适用于你有虚拟化桌面需求、希望在容器里启用有头浏览器打码的场景。 > 该模式默认启动 `Xvfb + Fluxbox` 实现容器内部可视化,并设置 `ALLOW_DOCKER_HEADED_CAPTCHA=true`。 > 仅开放应用端口,不提供任何远程桌面连接端口。 > `personal` 内置浏览器现在默认按有头模式启动;如需临时切回无头,可额外设置环境变量 `PERSONAL_BROWSER_HEADLESS=true`。 ```bash # 启动有头模式(首次建议带 --build) docker compose -f docker-compose.headed.yml up -d --build # 查看日志 docker compose -f docker-compose.headed.yml logs -f ``` - API 端口:`8000` - 进入管理后台后,将验证码方式设为 `browser` 或 `personal` ### 方式二:本地部署 ```bash # 克隆项目 git clone https://github.com/TheSmallHanCat/flow2api.git cd flow2api # 创建虚拟环境 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` ## 监控接口 - `GET /health`:公开健康检查,返回服务是否存活、活跃 Token 数、即将过期 Token 数、已过期 Token 数、429 禁用数等摘要 - `GET /metrics`:Prometheus 指标接口 - `GET /api/tokens`:管理接口,返回 `at_expires`、`at_expired`、`at_expiring_within_1h`、`ban_reason`、`consecutive_error_count` 等 Token 状态 Prometheus 可直接抓 `/metrics`。如果部署到 Kubernetes,建议只在集群内抓取,并在 Ingress/Gateway 层单独限制 `/metrics` 的外部访问。 ### 模型测试页面 访问 **http://localhost:8000/test** 可打开内置的模型测试页面,支持: - 按分类浏览所有可用模型(图片生成、文/图生视频、多图视频、视频放大等) - 输入提示词一键测试,流式显示生成进度 - 图生图 / 图生视频场景支持上传图片 - 生成完成后直接预览图片或视频 ## 支持的模型 ### 图片生成 | 模型名称 | 说明| 尺寸 | |---------|--------|--------| | `gemini-3.0-pro-image-landscape` | 图/文生图 | 横屏 | | `gemini-3.0-pro-image-portrait` | 图/文生图 | 竖屏 | | `gemini-3.0-pro-image-square` | 图/文生图 | 方图 | | `gemini-3.0-pro-image-four-three` | 图/文生图 | 横屏 4:3 | | `gemini-3.0-pro-image-three-four` | 图/文生图 | 竖屏 3:4 | | `gemini-3.0-pro-image-landscape-2k` | 图/文生图(2K) | 横屏 | | `gemini-3.0-pro-image-portrait-2k` | 图/文生图(2K) | 竖屏 | | `gemini-3.0-pro-image-square-2k` | 图/文生图(2K) | 方图 | | `gemini-3.0-pro-image-four-three-2k` | 图/文生图(2K) | 横屏 4:3 | | `gemini-3.0-pro-image-three-four-2k` | 图/文生图(2K) | 竖屏 3:4 | | `gemini-3.0-pro-image-landscape-4k` | 图/文生图(4K) | 横屏 | | `gemini-3.0-pro-image-portrait-4k` | 图/文生图(4K) | 竖屏 | | `gemini-3.0-pro-image-square-4k` | 图/文生图(4K) | 方图 | | `gemini-3.0-pro-image-four-three-4k` | 图/文生图(4K) | 横屏 4:3 | | `gemini-3.0-pro-image-three-four-4k` | 图/文生图(4K) | 竖屏 3:4 | | `imagen-4.0-generate-preview-landscape` | 图/文生图 | 横屏 | | `imagen-4.0-generate-preview-portrait` | 图/文生图 | 竖屏 | | `gemini-3.1-flash-image-landscape` | 图/文生图 | 横屏 | | `gemini-3.1-flash-image-portrait` | 图/文生图 | 竖屏 | | `gemini-3.1-flash-image-square` | 图/文生图 | 方图 | | `gemini-3.1-flash-image-four-three` | 图/文生图 | 横屏 4:3 | | `gemini-3.1-flash-image-three-four` | 图/文生图 | 竖屏 3:4 | | `gemini-3.1-flash-image-landscape-2k` | 图/文生图(2K) | 横屏 | | `gemini-3.1-flash-image-portrait-2k` | 图/文生图(2K) | 竖屏 | | `gemini-3.1-flash-image-square-2k` | 图/文生图(2K) | 方图 | | `gemini-3.1-flash-image-four-three-2k` | 图/文生图(2K) | 横屏 4:3 | | `gemini-3.1-flash-image-three-four-2k` | 图/文生图(2K) | 竖屏 3:4 | | `gemini-3.1-flash-image-landscape-4k` | 图/文生图(4K) | 横屏 | | `gemini-3.1-flash-image-portrait-4k` | 图/文生图(4K) | 竖屏 | | `gemini-3.1-flash-image-square-4k` | 图/文生图(4K) | 方图 | | `gemini-3.1-flash-image-four-three-4k` | 图/文生图(4K) | 横屏 4:3 | | `gemini-3.1-flash-image-three-four-4k` | 图/文生图(4K) | 竖屏 3:4 | ### 视频生成 #### 文生视频 (T2V - Text to Video) ⚠️ **不支持上传图片** | 模型名称 | 说明| 尺寸 | |---------|---------|--------| | `veo_3_1_t2v_fast_portrait` | 文生视频 | 竖屏 | | `veo_3_1_t2v_fast_landscape` | 文生视频 | 横屏 | | `veo_3_1_t2v_fast_portrait_ultra` | 文生视频 | 竖屏 | | `veo_3_1_t2v_fast_ultra` | 文生视频 | 横屏 | | `veo_3_1_t2v_fast_portrait_ultra_relaxed` | 文生视频 | 竖屏 | | `veo_3_1_t2v_fast_ultra_relaxed` | 文生视频 | 横屏 | | `veo_3_1_t2v_portrait` | 文生视频 | 竖屏 | | `veo_3_1_t2v_landscape` | 文生视频 | 横屏 | | `veo_3_1_t2v_landscape_4s` | 文生视频 4秒 | 横屏 | | `veo_3_1_t2v_portrait_4s` | 文生视频 4秒 | 竖屏 | | `veo_3_1_t2v_landscape_6s` | 文生视频 6秒 | 横屏 | | `veo_3_1_t2v_portrait_6s` | 文生视频 6秒 | 竖屏 | | `veo_3_1_t2v_fast_landscape_4s` | 文生视频 Fast 4秒 | 横屏 | | `veo_3_1_t2v_fast_portrait_4s` | 文生视频 Fast 4秒 | 竖屏 | | `veo_3_1_t2v_fast_landscape_6s` | 文生视频 Fast 6秒 | 横屏 | | `veo_3_1_t2v_fast_portrait_6s` | 文生视频 Fast 6秒 | 竖屏 | | `veo_3_1_t2v_lite_portrait` | 文生视频 Lite | 竖屏 | | `veo_3_1_t2v_lite_landscape` | 文生视频 Lite | 横屏 | | `veo_3_1_t2v_lite_4s_portrait` | 文生视频 Lite 4秒 | 竖屏 | | `veo_3_1_t2v_lite_4s_landscape` | 文生视频 Lite 4秒 | 横屏 | | `veo_3_1_t2v_lite_6s_portrait` | 文生视频 Lite 6秒 | 竖屏 | | `veo_3_1_t2v_lite_6s_landscape` | 文生视频 Lite 6秒 | 横屏 | #### 首尾帧模型 (I2V - Image to Video) **支持1-2张图片:1张作为首帧,2张作为首尾帧** > **自动适配**:系统会根据图片数量自动选择对应的 model_key > - **单帧模式**(1张图):使用首帧生成视频 > - **双帧模式**(2张图):使用首帧+尾帧生成过渡视频 > - `veo_3_1_i2v_lite_*` 仅支持 **1 张** 首帧图片 > - `veo_3_1_interpolation_lite_*` 仅支持 **2 张** 首尾帧图片 | 模型名称 | 说明| 尺寸 | |---------|---------|--------| | `veo_3_1_i2v_s_fast_portrait_fl` | 图生视频 | 竖屏 | | `veo_3_1_i2v_s_fast_fl` | 图生视频 | 横屏 | | `veo_3_1_i2v_s_fast_portrait_ultra_fl` | 图生视频 | 竖屏 | | `veo_3_1_i2v_s_fast_ultra_fl` | 图生视频 | 横屏 | | `veo_3_1_i2v_s_fast_portrait_ultra_relaxed` | 图生视频 | 竖屏 | | `veo_3_1_i2v_s_fast_ultra_relaxed` | 图生视频 | 横屏 | | `veo_3_1_i2v_s_portrait` | 图生视频 | 竖屏 | | `veo_3_1_i2v_s_landscape` | 图生视频 | 横屏 | | `veo_3_1_i2v_s_landscape_4s` | 图生视频 4秒 | 横屏 | | `veo_3_1_i2v_s_portrait_4s` | 图生视频 4秒 | 竖屏 | | `veo_3_1_i2v_s_landscape_6s` | 图生视频 6秒 | 横屏 | | `veo_3_1_i2v_s_portrait_6s` | 图生视频 6秒 | 竖屏 | | `veo_3_1_i2v_s_fast_landscape_4s_fl` | 图生视频 Fast 4秒 | 横屏 | | `veo_3_1_i2v_s_fast_portrait_4s_fl` | 图生视频 Fast 4秒 | 竖屏 | | `veo_3_1_i2v_s_fast_landscape_6s_fl` | 图生视频 Fast 6秒 | 横屏 | | `veo_3_1_i2v_s_fast_portrait_6s_fl` | 图生视频 Fast 6秒 | 竖屏 | | `veo_3_1_i2v_lite_portrait` | 图生视频 Lite(仅首帧) | 竖屏 | | `veo_3_1_i2v_lite_landscape` | 图生视频 Lite(仅首帧) | 横屏 | | `veo_3_1_i2v_lite_4s_portrait` | 图生视频 Lite 4秒(仅首帧) | 竖屏 | | `veo_3_1_i2v_lite_4s_landscape` | 图生视频 Lite 4秒(仅首帧) | 横屏 | | `veo_3_1_i2v_lite_6s_portrait` | 图生视频 Lite 6秒(仅首帧) | 竖屏 | | `veo_3_1_i2v_lite_6s_landscape` | 图生视频 Lite 6秒(仅首帧) | 横屏 | | `veo_3_1_interpolation_lite_portrait` | 图生视频 Lite(首尾帧过渡) | 竖屏 | | `veo_3_1_interpolation_lite_landscape` | 图生视频 Lite(首尾帧过渡) | 横屏 | | `veo_3_1_interpolation_lite_4s_portrait` | 图生视频 Lite 4秒(首尾帧过渡) | 竖屏 | | `veo_3_1_interpolation_lite_4s_landscape` | 图生视频 Lite 4秒(首尾帧过渡) | 横屏 | | `veo_3_1_interpolation_lite_6s_portrait` | 图生视频 Lite 6秒(首尾帧过渡) | 竖屏 | | `veo_3_1_interpolation_lite_6s_landscape` | 图生视频 Lite 6秒(首尾帧过渡) | 横屏 | #### 多图生成 (R2V - Reference Images to Video) ️ **支持多张图片** > **2026-03-06 更新** > > - 已同步上游新版 `R2V` 视频请求体 > - `textInput` 已切换为 `structuredPrompt.parts` > - 顶层新增 `mediaGenerationContext.batchId` > - 顶层新增 `useV2ModelConfig: true` > - 横屏 / 竖屏 `R2V` 模型共用同一套新版请求体 > - 横屏 `R2V` 的上游 `videoModelKey` 已切换为 `*_landscape` 形式 > - 根据当前上游协议,`referenceImages` 当前最多传 **3 张** | 模型名称 | 说明| 尺寸 | |---------|---------|--------| | `veo_3_1_r2v_fast_portrait` | 图生视频 | 竖屏 | | `veo_3_1_r2v_fast_landscape` | 图生视频 | 横屏 | | `veo_3_1_r2v_fast_portrait_ultra` | 图生视频 | 竖屏 | | `veo_3_1_r2v_fast_landscape_ultra` | 图生视频 | 横屏 | | `veo_3_1_r2v_fast_portrait_ultra_relaxed` | 图生视频 | 竖屏 | | `veo_3_1_r2v_fast_landscape_ultra_relaxed` | 图生视频 | 横屏 | #### 视频放大模型 (Upsample) 这些模型不是直接调用上游 upsampler key,而是先用对应的 Veo 3.1 普通模型生成视频,再提交 1080P/4K 放大请求。 | 模型名称 | 说明 | 输出 | |---------|---------|--------| | `veo_3_1_t2v_landscape_4k` | 文生视频放大 | 4K | | `veo_3_1_t2v_portrait_4k` | 文生视频放大 | 4K | | `veo_3_1_t2v_landscape_1080p` | 文生视频放大 | 1080P | | `veo_3_1_t2v_portrait_1080p` | 文生视频放大 | 1080P | | `veo_3_1_t2v_landscape_4s_4k` | 文生视频 4秒放大 | 4K | | `veo_3_1_t2v_portrait_4s_4k` | 文生视频 4秒放大 | 4K | | `veo_3_1_t2v_landscape_4s_1080p` | 文生视频 4秒放大 | 1080P | | `veo_3_1_t2v_portrait_4s_1080p` | 文生视频 4秒放大 | 1080P | | `veo_3_1_t2v_landscape_6s_4k` | 文生视频 6秒放大 | 4K | | `veo_3_1_t2v_portrait_6s_4k` | 文生视频 6秒放大 | 4K | | `veo_3_1_t2v_landscape_6s_1080p` | 文生视频 6秒放大 | 1080P | | `veo_3_1_t2v_portrait_6s_1080p` | 文生视频 6秒放大 | 1080P | | `veo_3_1_t2v_fast_portrait_4k` | 文生视频放大 | 4K | | `veo_3_1_t2v_fast_4k` | 文生视频放大 | 4K | | `veo_3_1_t2v_fast_portrait_ultra_4k` | 文生视频放大 | 4K | | `veo_3_1_t2v_fast_ultra_4k` | 文生视频放大 | 4K | | `veo_3_1_t2v_fast_portrait_1080p` | 文生视频放大 | 1080P | | `veo_3_1_t2v_fast_1080p` | 文生视频放大 | 1080P | | `veo_3_1_t2v_fast_portrait_ultra_1080p` | 文生视频放大 | 1080P | | `veo_3_1_t2v_fast_ultra_1080p` | 文生视频放大 | 1080P | | `veo_3_1_i2v_s_fast_portrait_ultra_fl_4k` | 图生视频放大 | 4K | | `veo_3_1_i2v_s_fast_ultra_fl_4k` | 图生视频放大 | 4K | | `veo_3_1_i2v_s_fast_portrait_ultra_fl_1080p` | 图生视频放大 | 1080P | | `veo_3_1_i2v_s_fast_ultra_fl_1080p` | 图生视频放大 | 1080P | | `veo_3_1_i2v_s_landscape_4k` | 图生视频放大 | 4K | | `veo_3_1_i2v_s_portrait_4k` | 图生视频放大 | 4K | | `veo_3_1_i2v_s_landscape_1080p` | 图生视频放大 | 1080P | | `veo_3_1_i2v_s_portrait_1080p` | 图生视频放大 | 1080P | | `veo_3_1_i2v_s_landscape_4s_4k` | 图生视频 4秒放大 | 4K | | `veo_3_1_i2v_s_portrait_4s_4k` | 图生视频 4秒放大 | 4K | | `veo_3_1_i2v_s_landscape_4s_1080p` | 图生视频 4秒放大 | 1080P | | `veo_3_1_i2v_s_portrait_4s_1080p` | 图生视频 4秒放大 | 1080P | | `veo_3_1_i2v_s_landscape_6s_4k` | 图生视频 6秒放大 | 4K | | `veo_3_1_i2v_s_portrait_6s_4k` | 图生视频 6秒放大 | 4K | | `veo_3_1_i2v_s_landscape_6s_1080p` | 图生视频 6秒放大 | 1080P | | `veo_3_1_i2v_s_portrait_6s_1080p` | 图生视频 6秒放大 | 1080P | | `veo_3_1_r2v_fast_portrait_ultra_4k` | 多图视频放大 | 4K | | `veo_3_1_r2v_fast_landscape_ultra_4k` | 多图视频放大 | 4K | | `veo_3_1_r2v_fast_portrait_ultra_1080p` | 多图视频放大 | 1080P | | `veo_3_1_r2v_fast_landscape_ultra_1080p` | 多图视频放大 | 1080P | ## API 使用示例(需要使用流式) > 除了下方 `OpenAI-compatible` 示例,服务也支持 Gemini

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Python

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言