- 文生图 / 图生图
- 文生视频 / 图生视频 / 多图视频
- 首尾帧视频
- 视频放大 (1080P / 4K)
- 视频延长 15s — 生成 8s + 延长 8s + 拼接(跳过 1s 重叠),对上游透明
- Gemini Omni Flash (abra) — 新一代视频模型,T2V/R2V × 4 个时长档位(4/6/8/10s)× 横竖屏 × 原版/1080P 上采样,共 32 个变体
- 持久化登录态打码 —
personal模式可绑定固定 Chrome profile,复用用户登录态 cookie 提交 reCAPTCHA,把PUBLIC_ERROR_UNUSUAL_ACTIVITY拒绝率从匿名态 30%+ 降到个位数 - 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并获取api key,将其填入系统配置页面
YesCaptcha API密钥区域 -
默认
docker-compose.yml建议搭配第三方打码(yescaptcha/capmonster/ezcaptcha/capsolver)。 如需 Docker 内有头打码(browser/personal),请使用下方docker-compose.headed.yml。 -
自动更新st浏览器拓展:Flow2API-Token-Updater
# 克隆项目
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 代理启动
docker-compose -f docker-compose.warp.yml up -d
# 查看日志
docker-compose -f docker-compose.warp.yml logs -f适用于你有虚拟化桌面需求、希望在容器里启用有头浏览器打码的场景。 该模式默认启动
Xvfb + Fluxbox实现容器内部可视化,并设置ALLOW_DOCKER_HEADED_CAPTCHA=true。 仅开放应用端口,不提供任何远程桌面连接端口。
# 启动有头模式(首次建议带 --build)
docker compose -f docker-compose.headed.yml up -d --build
# 查看日志
docker compose -f docker-compose.headed.yml logs -f- API 端口:
8000 - 进入管理后台后,将验证码方式设为
browser或personal
# 克隆项目
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
访问 http://localhost:8000/test 可打开内置的模型测试页面,支持:
- 按分类浏览所有可用模型(图片生成、文/图生视频、多图视频、视频放大等)
- 输入提示词一键测试,流式显示生成进度
- 图生图 / 图生视频场景支持上传图片
- 生成完成后直接预览图片或视频
匿名态向 Google reCAPTCHA Enterprise 提交时拒绝率较高(频繁触发 PUBLIC_ERROR_UNUSUAL_ACTIVITY)。开启后,nodriver 浏览器复用固定的 user-data-dir,里面保留用户一次性手动登录的 Google 账号 cookie,reCAPTCHA 按"已登录账号"评分,token 长度从 ~2200 跳到 ~2300+,拒绝率显著下降。
[captcha]
captcha_method = "personal"
persistent_profile_enabled = true
persistent_profile_path = "/opt/flow2api-profiles/ultra"# 1) 停服释放 profile
sudo systemctl stop flow2api
# 2) 用 GUI Chrome 打开同一个 profile 路径登录
google-chrome --user-data-dir=/opt/flow2api-profiles/ultra
# 在打开的 Chrome 里:登录 Google 账号 → 访问 https://labs.google/fx/tools/flow 确认能进 → 关闭
# 3) 启服,nodriver 自动复用此 profile
sudo systemctl start flow2api启动日志看到下面这行即为生效:
[BrowserCaptcha] ✅ 持久化 profile 已检测到登录痕迹 (.../Default/Cookies)
同上流程:停服 → GUI Chrome 登出旧账号登入新账号 → 启服。
⚠️ GUI Chrome 没退出就启服会触发SingletonLock硬错误,启动日志里有清晰报错。
personal 打码完成后,reCAPTCHA token 长度是登录态生效与否的物理信号:
| 状态 | Token 长度 |
|---|---|
| 匿名 / 未登录 | ≤ 2240 |
| 持久化登录态生效 | ≥ 2295(实测分布 2297-2425) |
在 logs.txt 里搜 Token 获取成功 (长度: NNNN) 即可判断。如果开启了持久化但长度仍 ≤ 2240,说明 cookie 没生效或 profile 缺关键 token(SID/HSID/SAPISID/__Secure-1PSID 等),需要重新 GUI 登录。
| 模型名称 | 说明 | 尺寸 |
|---|---|---|
gemini-2.5-flash-image-landscape |
图/文生图 | 横屏 |
gemini-2.5-flash-image-portrait |
图/文生图 | 竖屏 |
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 |
不支持上传图片
| 模型名称 | 说明 | 尺寸 |
|---|---|---|
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 |
文生视频 | 横屏 |
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_lite_portrait |
文生视频 Lite | 竖屏 |
veo_3_1_t2v_lite_landscape |
文生视频 Lite | 横屏 |
支持 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_portrait |
图生视频 满血版 | 竖屏 |
veo_3_1_i2v_s_landscape |
图生视频 满血版 | 横屏 |
veo_3_1_i2v_s_fast_portrait_fl |
图生视频 | 竖屏 |
veo_3_1_i2v_s_fast_fl |
图生视频 | 横屏 |
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 |
图生视频 | 横屏 |
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_lite_portrait |
图生视频 Lite(仅首帧) | 竖屏 |
veo_3_1_i2v_lite_landscape |
图生视频 Lite(仅首帧) | 横屏 |
veo_3_1_interpolation_lite_portrait |
图生视频 Lite(首尾帧过渡) | 竖屏 |
veo_3_1_interpolation_lite_landscape |
图生视频 Lite(首尾帧过渡) | 横屏 |
支持多张参考图(最多 3 张)
服务端自动组装新版视频请求体,调用方仍然使用 OpenAI 兼容输入即可。
| 模型名称 | 说明 | 尺寸 |
|---|---|---|
veo_3_1_r2v_fast_portrait |
多图视频 | 竖屏 |
veo_3_1_r2v_fast |
多图视频 | 横屏 |
veo_3_1_r2v_fast_portrait_ultra |
多图视频 | 竖屏 |
veo_3_1_r2v_fast_ultra |
多图视频 | 横屏 |
veo_3_1_r2v_fast_portrait_ultra_relaxed |
多图视频 | 竖屏 |
veo_3_1_r2v_fast_ultra_relaxed |
多图视频 | 横屏 |
| 模型名称 | 说明 | 输出 |
|---|---|---|
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_r2v_fast_portrait_ultra_4k |
多图视频放大 | 4K |
veo_3_1_r2v_fast_ultra_4k |
多图视频放大 | 4K |
veo_3_1_r2v_fast_portrait_ultra_1080p |
多图视频放大 | 1080P |
veo_3_1_r2v_fast_ultra_1080p |
多图视频放大 | 1080P |
内部流程:生成 8s 视频 → 延长 8s → 拼接(跳过 1s 重叠)→ 返回约 15s 视频。对上游调用方透明,使用方式与普通视频模型完全一致。
使用 _15s 后缀的模型名即可触发。也支持省略横竖屏后缀的简写(如 veo_3_1_t2v_fast_15s),服务端根据请求自动匹配横竖屏。
| 模型名称 | 说明 | 尺寸 |
|---|---|---|
veo_3_1_t2v_fast_portrait_15s |
文生视频延长 | 竖屏 |
veo_3_1_t2v_fast_landscape_15s |
文生视频延长 | 横屏 |
veo_3_1_t2v_fast_portrait_ultra_15s |
文生视频延长 | 竖屏 |
veo_3_1_t2v_fast_ultra_15s |
文生视频延长 | 横屏 |
veo_3_1_t2v_fast_portrait_ultra_relaxed_15s |
文生视频延长 | 竖屏 |
veo_3_1_t2v_fast_ultra_relaxed_15s |
文生视频延长 | 横屏 |
veo_3_1_t2v_portrait_15s |
文生视频延长 | 竖屏 |
veo_3_1_t2v_landscape_15s |
文生视频延长 | 横屏 |
veo_3_1_t2v_lite_portrait_15s |
文生视频延长 Lite | 竖屏 |
veo_3_1_t2v_lite_landscape_15s |
文生视频延长 Lite | 横屏 |
| 模型名称 | 说明 | 尺寸 |
|---|---|---|
veo_3_1_i2v_s_portrait_15s |
图生视频延长 满血版 | 竖屏 |
veo_3_1_i2v_s_landscape_15s |
图生视频延长 满血版 | 横屏 |
veo_3_1_i2v_s_fast_portrait_fl_15s |
图生视频延长 | 竖屏 |
veo_3_1_i2v_s_fast_fl_15s |
图生视频延长 | 横屏 |
veo_3_1_i2v_s_fast_portrait_ultra_fl_15s |
图生视频延长 | 竖屏 |
veo_3_1_i2v_s_fast_ultra_fl_15s |
图生视频延长 | 横屏 |
veo_3_1_i2v_s_fast_portrait_ultra_relaxed_15s |
图生视频延长 | 竖屏 |
veo_3_1_i2v_s_fast_ultra_relaxed_15s |
图生视频延长 | 横屏 |
veo_3_1_i2v_lite_portrait_15s |
图生视频延长 Lite(仅首帧) | 竖屏 |
veo_3_1_i2v_lite_landscape_15s |
图生视频延长 Lite(仅首帧) | 横屏 |
veo_3_1_interpolation_lite_portrait_15s |
图生视频延长 Lite(首尾帧) | 竖屏 |
veo_3_1_interpolation_lite_landscape_15s |
图生视频延长 Lite(首尾帧) | 横屏 |
| 模型名称 | 说明 | 尺寸 |
|---|---|---|
veo_3_1_r2v_fast_portrait_15s |
多图视频延长 | 竖屏 |
veo_3_1_r2v_fast_15s |
多图视频延长 | 横屏 |
veo_3_1_r2v_fast_portrait_ultra_15s |
多图视频延长 | 竖屏 |
veo_3_1_r2v_fast_ultra_15s |
多图视频延长 | 横屏 |
veo_3_1_r2v_fast_portrait_ultra_relaxed_15s |
多图视频延长 | 竖屏 |
veo_3_1_r2v_fast_ultra_relaxed_15s |
多图视频延长 | 横屏 |
在 15s 延长基础上叠加 1080P 或 4K 放大。流程:生成 8s → 放大 → 延长 8s → 拼接(跳过 1s 重叠)→ 返回 15s 高清视频。
| 模型名称 | 输出 | 尺寸 |
|---|---|---|
veo_3_1_t2v_fast_portrait_15s_1080p |
15s + 1080P | 竖屏 |
veo_3_1_t2v_fast_landscape_15s_1080p |
15s + 1080P | 横屏 |
veo_3_1_t2v_fast_portrait_15s_4k |
15s + 4K | 竖屏 |
veo_3_1_t2v_fast_landscape_15s_4k |
15s + 4K | 横屏 |
veo_3_1_t2v_fast_portrait_ultra_15s_1080p |
15s + 1080P | 竖屏 |
veo_3_1_t2v_fast_ultra_15s_1080p |
15s + 1080P | 横屏 |
veo_3_1_t2v_fast_portrait_ultra_15s_4k |
15s + 4K | 竖屏 |
veo_3_1_t2v_fast_ultra_15s_4k |
15s + 4K | 横屏 |
| 模型名称 | 输出 | 尺寸 |
|---|---|---|
veo_3_1_i2v_s_fast_portrait_ultra_fl_15s_1080p |
15s + 1080P | 竖屏 |
veo_3_1_i2v_s_fast_ultra_fl_15s_1080p |
15s + 1080P | 横屏 |
veo_3_1_i2v_s_fast_portrait_ultra_fl_15s_4k |
15s + 4K | 竖屏 |
veo_3_1_i2v_s_fast_ultra_fl_15s_4k |
15s + 4K | 横屏 |
| 模型名称 | 输出 | 尺寸 |
|---|---|---|
veo_3_1_r2v_fast_portrait_ultra_15s_1080p |
15s + 1080P | 竖屏 |
veo_3_1_r2v_fast_ultra_15s_1080p |
15s + 1080P | 横屏 |
veo_3_1_r2v_fast_portrait_ultra_15s_4k |
15s + 4K | 竖屏 |
veo_3_1_r2v_fast_ultra_15s_4k |
15s + 4K | 横屏 |
Google Flow 的新一代视频模型,上游代号 abra。每个时长档位是独立模型(4/6/8/10s 各一),与 Veo 系列固定时长不同。横竖屏共享同一上游 model_key,仅请求体 aspectRatio 区分。1080P 上采样链路复用 Veo 3.1 的 upsampler。4K 上采样暂未集成。
调用方式与现有模型完全一致 —— OpenAI chat.completions 输入或 Gemini 官方格式。
| 模型名称 | 时长 | 尺寸 |
|---|---|---|
gemini_omni_t2v_4s / gemini_omni_t2v_portrait_4s |
4s | 横/竖屏 |
gemini_omni_t2v_6s / gemini_omni_t2v_portrait_6s |
6s | 横/竖屏 |
gemini_omni_t2v_8s / gemini_omni_t2v_portrait_8s |
8s | 横/竖屏 |
gemini_omni_t2v_10s / gemini_omni_t2v_portrait_10s |
10s | 横/竖屏 |
| 模型名称 | 时长 | 尺寸 |
|---|---|---|
gemini_omni_r2v_4s / gemini_omni_r2v_portrait_4s |
4s | 横/竖屏 |
gemini_omni_r2v_6s / gemini_omni_r2v_portrait_6s |
6s | 横/竖屏 |
gemini_omni_r2v_8s / gemini_omni_r2v_portrait_8s |
8s | 横/竖屏 |
gemini_omni_r2v_10s / gemini_omni_r2v_portrait_10s |
10s | 横/竖屏 |
| 模型名称 | 输出 | 尺寸 |
|---|---|---|
gemini_omni_t2v_{4,6,8,10}s_1080p |
原版时长 + 1080P | 横屏 |
gemini_omni_t2v_portrait_{4,6,8,10}s_1080p |
原版时长 + 1080P | 竖屏 |
gemini_omni_r2v_{4,6,8,10}s_1080p |
原版时长 + 1080P | 横屏 |
gemini_omni_r2v_portrait_{4,6,8,10}s_1080p |
原版时长 + 1080P | 竖屏 |
实测耗时(持久化登录态 + 住宅 IP 代理):T2V 4s ≈ 45s、T2V 10s ≈ 50s、R2V 4s ≈ 60s、T2V 4s + 1080P 上采样 ≈ 80s。
除了下方
OpenAI-compatible示例,服务也支持 Gemini 官方格式:
POST /v1beta/models/{model}:generateContentPOST /models/{model}:generateContentPOST /v1beta/models/{model}:streamGenerateContentPOST /models/{model}:streamGenerateContentGemini 官方格式支持以下认证方式:
Authorization: Bearer <api_key>x-goog-api-key: <api_key>?key=<api_key>Gemini 官方图片请求体已兼容:
systemInstructioncontents[].parts[].textcontents[].parts[].inlineDatacontents[].parts[].fileData.fileUrigenerationConfig.responseModalitiesgenerationConfig.imageConfig.aspectRatiogenerationConfig.imageConfig.imageSize
已使用真实 Token 实测通过。 如需流式返回,可将路径替换为
:streamGenerateContent?alt=sse。
curl -X POST "http://localhost:8000/models/gemini-3.1-flash-image:generateContent" \
-H "x-goog-api-key: han1234" \
-H "Content-Type: application/json" \
-d '{
"systemInstruction": {
"parts": [
{
"text": "Return an image only."
}
]
},
"contents": [
{
"role": "user",
"parts": [
{
"text": "一颗放在木桌上的红苹果,棚拍光线,极简背景"
}
]
}
],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
}
}'curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Authorization: Bearer han1234" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-landscape",
"messages": [
{
"role": "user",
"content": "一只可爱的猫咪在花园里玩耍"
}
],
"stream": true
}'curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Authorization: Bearer han1234" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-landscape",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "将这张图片变成水彩画风格"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,<base64_encoded_image>"
}
}
]
}
],
"stream": true
}'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
}'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_15s",
"messages": [
{
"role": "user",
"content": "一只小猫在草地上追逐蝴蝶"
}
],
"stream": true
}'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
}'模型名换成 gemini_omni_* 即可,调用方式完全一致。R2V 与 1080P 上采样同步支持。
# T2V 10 秒,横屏
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Authorization: Bearer han1234" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini_omni_t2v_10s",
"messages": [
{
"role": "user",
"content": "一只小猫在草地上追逐蝴蝶,柔和阳光"
}
],
"stream": true
}'
# T2V 4 秒 + 1080P 上采样
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Authorization: Bearer han1234" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini_omni_t2v_4s_1080p",
"messages": [{"role":"user","content":"a glowing jellyfish in deep ocean"}],
"stream": true
}'
R2V会由服务端自动组装新版视频请求体,调用方仍然使用 OpenAI 兼容输入即可。 服务端会将横屏R2V自动映射到最新的*_landscape上游模型键。 当前最多传 3 张参考图。
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Authorization: Bearer han1234" \
-H "Content-Type: application/json" \
-d '{
"model": "veo_3_1_r2v_fast_portrait",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "以三张参考图的人物和场景为基础,生成一段镜头平滑推进的竖屏视频"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64/<参考图1base64>"
}
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64/<参考图2base64>"
}
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64/<参考图3base64>"
}
}
]
}
],
"stream": true
}'本项目采用 MIT 许可证。详见 LICENSE 文件。
- PearNoDec 提供的YesCaptcha打码方案
- raomaiping 提供的无头打码方案 感谢所有贡献者和使用者的支持!
- 提交 Issue:GitHub Issues
如果这个项目对你有帮助,请给个 Star!