[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2676":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},2676,"fpbrowser2api","lakysir\u002Ffpbrowser2api","lakysir","fpbrowser2api插件框架-支持veo3.1、seedance2.0、omni flash、grok、nana banana、sora2、gpt-image2，QQ交流群：1035463132","",null,"Python",198,60,56,1,0,47,57,128,141,5.36,false,"github",true,[],"2026-06-12 02:00:43","# FPBrowser2API：插件+Python账号保活管理方案\n\n> 项目主题：插件框架，支持veo3.1、seedance2.0、omni flash、grok、nana banana、sora2、gpt-image2，QQ交流群：1035463132\n> 利用指纹浏览器管理账号保活 + 插件调用页面功能，实现多账号管理自动化 AI 视频 & AI 图片生成。当前框架已围绕 Sora、veo3.1 \u002F VEO\u002FGoogle Flow、Grok、banana2\u002Fpro、Seedance2.0 国际站等方向设计；理论上可扩展到任意网站的自动化与接口研究。\n> 注意：本项目非逆向！！只是利用浏览器的功能实现自动化，请勿应用于商业。\n\n### 操作视频https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1vL5r65EzE\u002F?vd_source=7fa3ff8dba916183629a05529aa18af2\n\n## 最新情人节奉献功能2026-5-20：\n##### 1.Flow: Nana Banana2 1k\u002F2k\u002F4k(图片生成)、Banana Pro 1k\u002F2k\u002F4k(图片生成)、veo-3-1(视频生成)、Veo-omni-flash(视频生成)\n##### 2.ChatGPT: gpt-image2-1k\u002F2k\u002F4k(图片生成)\n##### 3.Jimeng:seedance2.0(视频生成)\n\n## 最新更新-2026-5-11\n##### 1.google Flow纯净模式，生成的视频和图片都会归档，保证页面干净，减少资源消耗，支持香蕉2\u002FPro和Veo3.1\n##### 2.国际站seedance2.0上线,支持美国、土耳其、加拿大，其它的自己改代码吧\n\n## 重要声明\n\n- 本项目**只供技术研究、学习验证、私有测试环境使用**，请勿用于商业化运营、批量滥用、违反目标站点条款或任何违法违规用途。\n- 使用者应自行承担账号、额度、风控、合规和数据安全风险。\n\n## 为什么需要指纹浏览器\n本框架不是传统的裸 HTTP 调用脚本，而是通过指纹浏览器维持一个更接近真人使用的浏览器环境：\n1. 每个任务绑定一个独立的浏览器窗口、Cookie、LocalStorage、UA、代理和浏览器指纹。\n2. 用户可以先在指纹浏览器中手动登录目标站点、完成必要验证或订阅准备。\n3. 后端再通过指纹浏览器暴露的 CDP 地址连接到该窗口，在页面上下文中执行 `fetch`、上传文件、轮询状态、读取结果。\n4. 当遇到 Cloudflare\u002FTurnstile 等挑战页时，执行器会检测页面、等待自动放行、尝试点击验证控件，必要时关闭并重开指纹窗口进行自愈。\n\n推荐使用 RoxyBrowser：请到 \u003Chttps:\u002F\u002Froxybrowser.com?code=0416Z62A> 下载客户端，注册并登录后创建空间、项目和浏览器窗口。\n\u003Cimg width=\"1919\" height=\"914\" alt=\"ScreenShot_2026-04-30_185638_945\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F34238cc6-66c0-41eb-97b0-405014ea467c\" \u002F>\n\n\n## 快速启动\n```bash\ncd fpbrowser2api\n\n# 创建虚拟环境\npython -m venv venv\n\n# 激活虚拟环境\n# Windows\nvenv\\Scripts\\activate\n# Linux\u002FMac\nsource venv\u002Fbin\u002Factivate\n\n# 安装依赖\npip install -r requirements.txt\n\n# 启动服务\npython main.py\n```\n\n默认监听：`http:\u002F\u002F127.0.0.1:8002`\n\n首次默认账号：\n\n- 用户名：`admin`\n- 密码：`admin`\n\n基础配置位于 `config\u002Fsetting.toml`（可参考 `config\u002Fsetting_example.toml`）。服务启动后会把关键配置写入数据库，并支持在管理后台中修改，重启后仍生效。\n\n## 启动 \u002F 停止 \u002F 重启（服务脚本）\n\nLinux\u002FMac（或 Git Bash）：\n\n```bash\ncd fpbrowser2api\nchmod +x .\u002Ffpbrowser2api_service.sh\n.\u002Ffpbrowser2api_service.sh start|stop|restart|status\n```\n\nWindows PowerShell：\n\n```powershell\ncd fpbrowser2api\npowershell -ExecutionPolicy Bypass -File .\\fpbrowser2api_service.ps1 start|stop|restart|status\n```\n\n## 管理后台\n\n- 登录页：`\u002Flogin`\n- 系统配置：`\u002Fadmin\u002Fsystem`\n- 项目管理：`\u002Fadmin\u002Fprojects`\n- 任务类型管理：`\u002Fadmin\u002Ftask-types`\n- 任务列表：`\u002Fadmin\u002Ftasks`\n- 测试页面：`\u002Fadmin\u002Ftest`\n- 请求日志：`\u002Fadmin\u002Flogs`\n- 用户管理：`\u002Fadmin\u002Fusers`\n\n## 如何连接指纹浏览器\n\n本项目当前以 RoxyBrowser 为主要适配对象，核心链路如下：\n\n```text\n管理后台配置浏览器服务器\n  -> FPBrowserClient 调 RoxyBrowser 本地\u002F局域网 API\n  -> 同步空间(workspaceId)、项目(projectIds)、窗口(dirId)\n  -> 任务类型绑定具体窗口\n  -> TaskService 根据任务类型和额度选择窗口\n  -> PlaywrightBrowserContext 打开\u002F复用窗口并连接 CDP\n  -> 站点执行器在页面上下文中 fetch \u002F 上传 \u002F 轮询 \u002F 读取结果\n```\n\n### 1. RoxyBrowser 侧准备\n\n1. 下载并登录 RoxyBrowser：\u003Chttps:\u002F\u002Froxybrowser.com?code=0416Z62A>。\n2. 在 RoxyBrowser 中创建空间（Workspace）、项目和浏览器窗口。\n3. 为窗口配置代理、账号信息、目标站点登录态，并确保窗口可以正常访问目标站点。\n4. 启用 RoxyBrowser 的本地 API \u002F 局域网 API，并记录：\n   - API 地址，例如 `http:\u002F\u002F127.0.0.1:xxxxx` 或局域网地址。\n   - API token（如 RoxyBrowser 侧开启了 token 校验）。\n   - `workspaceId`：本项目中对应 `space_id`，必须是纯数字。\n   - `dirId`：本项目中对应 `window_key`，代表具体浏览器窗口。\n\n### 2. FPBrowser2API 侧配置\n\n在管理后台中按顺序配置：\n\n1. **项目管理**：创建一个本地项目。\n2. **浏览器服务器**：填写 RoxyBrowser API 地址：\n   - `vendor`：`roxy`\n   - `lan_addr`：RoxyBrowser API base URL\n   - `access_key`：RoxyBrowser token，可为空\n3. **空间**：填写 RoxyBrowser `workspaceId`，可选填写 Roxy 项目 ID 过滤条件。\n4. **同步窗口**：后台会调用：\n   - `GET \u002Fbrowser\u002Flist_v3` 获取窗口列表。\n   - `GET \u002Fbrowser\u002Fdetail` 获取窗口明细。\n   - 提取 `dirId`、窗口名称、平台账号、代理 IP、国家、内核版本等信息写入本地数据库。\n5. **任务类型绑定窗口**：创建任务类型并选择处理器，例如：\n   - `sora_gen_video`\n   - `veo_workflow`\n   - `grok_workflow`\n   - `dreamina_workflow`\n\n### 3. 运行时连接过程\n\n连接逻辑主要在以下文件中：\n\n- `src\u002Fservices\u002Ffp_browser_client.py`：RoxyBrowser API 适配层。\n- `src\u002Fservices\u002Fplaywright_broswer_context.py`：通用 Playwright + 指纹浏览器上下文。\n- `src\u002Fservices\u002Ftask_service.py`：任务调度、窗口池、额度和并发控制。\n\n运行时会先查询窗口是否已经打开：\n\n1. 调用 RoxyBrowser `GET \u002Fbrowser\u002Fconnection_info` 获取已打开窗口的 `http\u002Fws` 调试地址。\n2. 若窗口未打开，则调用 `POST \u002Fbrowser\u002Fopen`，传入 `workspaceId`、`dirId`、启动参数、headless\u002Fpure_mode 等。\n3. RoxyBrowser 返回 `data.http` 或 `data.ws` 后，框架会规范化为 CDP endpoint。\n4. 使用 `playwright.chromium.connect_over_cdp(endpoint)` 连接到真实指纹浏览器窗口。\n5. 执行器选择可用页面或打开目标页面，并通过页面上下文执行 `fetch`、文件上传、Cookie\u002FToken 读取等操作。\n6. 任务完成后通常只断开本地 Playwright\u002FCDP 连接，不立即关闭指纹窗口，以便保留登录态并降低频繁开关窗口带来的风控风险。\n\n## 核心服务一：`src\u002Fservices\u002Fsora_task_executor.py`\n\n`sora_task_executor.py` 是 Sora 站点侧执行器，入口函数是 `sora_gen_video`，由 `task_service.py` 根据任务类型分发调用。\n\n### 职责边界\n\n- 不负责管理 RoxyBrowser API 细节，这部分由 `fp_browser_client.py` 和 `playwright_broswer_context.py` 处理。\n- 专注 Sora 站点逻辑：鉴权抓取、任务创建、进度轮询、草稿发布、余额检查、邀请码读取、角色创建等。\n\n### 关键能力\n\n- **窗口级会话缓存**：`SoraSession` 按 `vendor + base_url + space_id + window_key` 缓存，复用同一个指纹窗口和 CDP 连接。\n- **登录态\u002FToken 获取**：在指纹窗口页面上下文中访问 `\u002Fapi\u002Fauth\u002Fsession`，读取 `accessToken` 和过期时间。\n- **页面内接口调用**：使用页面上下文 `fetch` 调 Sora 后端接口，继承窗口 Cookie、UA、代理和指纹。\n- **生成任务提交**：调用 `\u002Fbackend\u002Fnf\u002Fcreate` 创建视频生成任务，支持 prompt、首帧图、比例\u002F方向、时长帧数等参数。\n- **进度轮询**：轮询 pending \u002F drafts 等接口，持续回写任务进度。\n- **草稿发布与结果提取**：任务完成后从 drafts 中找到对应生成结果，发布并返回 `share_url`、`watermark_free_url`、`thumb_url` 等。\n- **角色创建**：支持通过 `video_url` 或 `generation_id + head_url` 创建 Sora 角色，包含上传、状态轮询、头像处理、finalize、公开设置等步骤。\n- **额度\u002F会员辅助**：支持 `nf_check`、订阅信息、邀请码、清空 drafts 等管理端操作。\n- **Cloudflare 自愈**：检测 “Just a moment”、`\u002Fcdn-cgi\u002F`、Turnstile 等页面特征，等待放行、尝试 checkbox 点击，必要时重启指纹窗口。\n- **并发保护**：创建任务使用会话级锁串行化，避免同一窗口同时提交多个创建请求；不同窗口可并发工作。\n\n### 常见 Sora payload\n\n```json\n{\n  \"prompt\": \"a cinematic robot walking in the rain\",\n  \"first_image_url\": \"https:\u002F\u002Fexample.com\u002Ffirst-frame.png\",\n  \"size_ratio\": \"9:16\",\n  \"duration\": 300,\n  \"sora_url\": \"https:\u002F\u002Fsora.chatgpt.com\u002Fdrafts\",\n  \"sora_pending_max_wait_seconds\": 900\n}\n```\n\n创建角色示例：\n\n```json\n{\n  \"video_url\": \"https:\u002F\u002Fexample.com\u002Fcharacter.mp4\",\n  \"character_video_timestamps\": \"0,3\",\n  \"sora_url\": \"https:\u002F\u002Fsora.chatgpt.com\u002Fdrafts\"\n}\n```\n\n或基于已有生成结果创建角色：\n\n```json\n{\n  \"generation_id\": \"gen_xxx\",\n  \"head_url\": \"https:\u002F\u002Fexample.com\u002Favatar.png\"\n}\n```\n\n## 核心服务二：`src\u002Fservices\u002Fveo_workflow_executor.py`\n\n`veo_workflow_executor.py` 是 VEO \u002F Google Labs \u002F Flow 工作流执行器，入口函数是 `veo_workflow`，同样由 `task_service.py` 分发调用。\n\n### 职责边界\n\n- 使用通用指纹浏览器上下文打开或复用 Google Labs \u002F Flow 页面。\n- 在页面上下文中执行 Flow \u002F aisandbox \u002F media API 请求。\n- 管理项目 ID、access token、reCAPTCHA token、图片上传、视频轮询、图片放大等 VEO 相关逻辑。\n\n### 关键能力\n\n- **VeoSession 会话缓存**：按窗口缓存，减少重复打开浏览器和重复登录。\n- **Google 登录辅助**：管理端提供打开\u002F连接窗口能力，可在 Google 登录页中辅助选择账号、输入凭据、进入 Flow。\n- **Access Token 获取与复用**：从指纹窗口 Cookie \u002F NextAuth 会话中换取 Labs access token，并可写回 `task_type_windows` 缓存。\n- **Flow 项目管理**：支持从 payload 指定 `veo_project_id\u002Fproject_id\u002Fcurrent_project_id`，也支持从 `veo_url` 解析，或从绑定窗口的 `veo_flow_projects` 随机选择项目。\n- **VEO 视频生成**：\n  - T2V：文生视频。\n  - I2V：首帧\u002F首尾帧图生视频。\n  - R2V \u002F Ingredients：多图参考生成视频，最多按执行器逻辑处理多张参考图。\n  - 支持横版\u002F竖版模型、会员档位模型修正、任务提交重试与状态轮询。\n- **AI 图片生成**：当 `n_frames` 显式为 `1` 时进入图片模式，支持文生图、图生图、多图参考图生图；默认 NARWHAL，也支持 GEM_PIX_2 \u002F Banana 类图片模型路径。\n- **2K 放大与 OSS**：当 `resolution` \u002F `veo_image_resolution` 指定 2K 时调用 `flow\u002FupsampleImage`，可将大图上传到 OSS，避免 base64 结果撑爆数据库。\n- **额度刷新**：支持读取 aisandbox credits，并解析 Google AI 活动页中的下一次额度更新时间。\n- **Cloudflare 自愈**：与 Sora 类似，具备挑战页检测、等待、点击、重启窗口和恢复目标页能力。\n\n## 接口说明\n\n# Seedance 2 \u002F Nana Banana \u002F VEO 3.1 · NewAPI 视频接口说明\n\n> 对外统一使用 NewAPI 风格异步接口：  \n> **提交任务：`POST \u002Fv1\u002Fvideos`**  \n> **查询任务：`GET \u002Fv1\u002Fvideos\u002F{task_id}`**\n\n## 1. 调用流程\n\n### Step 1 · 提交任务\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"veo-3-1\",\n    \"prompt\": \"an astronaut surfing on a glowing ocean at night, cinematic camera movement\",\n    \"duration\": 8,\n    \"aspect_ratio\": \"16:9\"\n  }'\n```\n\n提交成功后立即返回任务信息：\n\n```json\n{\n  \"id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"task_id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"object\": \"video\",\n  \"created_at\": 1714200000000,\n  \"status\": \"queued\",\n  \"progress\": 0,\n  \"model\": \"veo-3-1\",\n  \"video_url\": null,\n  \"metadata\": {\n    \"result_urls\": []\n  },\n  \"seconds\": \"8\",\n  \"duration\": 8,\n  \"aspect_ratio\": \"16:9\",\n  \"prompt\": \"an astronaut surfing on a glowing ocean at night, cinematic camera movement\"\n}\n```\n\n### Step 2 · 查询任务\n\n```bash\ncurl https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos\u002F8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234 \\\n  -H \"Authorization: Bearer api-key\"\n```\n\n处理中：\n\n```json\n{\n  \"id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"task_id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"object\": \"video\",\n  \"created_at\": 1714200000000,\n  \"status\": \"in_progress\",\n  \"progress\": 45,\n  \"model\": \"veo-3-1\",\n  \"video_url\": null,\n  \"metadata\": {\n    \"result_urls\": []\n  }\n}\n```\n\n视频完成：\n\n```json\n{\n  \"id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"task_id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"object\": \"video\",\n  \"created_at\": 1714200000000,\n  \"status\": \"completed\",\n  \"progress\": 100,\n  \"model\": \"veo-3-1\",\n  \"video_url\": \"https:\u002F\u002Fxxx.xxx.xxx\u002Fgenerated\u002Fvideo.mp4\",\n  \"url\": \"https:\u002F\u002Fxxx.xxx.xxx\u002Fgenerated\u002Fvideo.mp4\",\n  \"metadata\": {\n    \"result_urls\": [\"https:\u002F\u002Fxxx.xxx.xxx\u002Fgenerated\u002Fvideo.mp4\"]\n  },\n  \"completed_at\": 1714200180000\n}\n```\n\n图片完成（`nana-banana-2` \u002F `nana-banana-pro`）：\n\n```json\n{\n  \"id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"task_id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"object\": \"video\",\n  \"created_at\": 1714200000000,\n  \"status\": \"completed\",\n  \"progress\": 100,\n  \"model\": \"nana-banana-2\",\n  \"video_url\": null,\n  \"image_url\": \"https:\u002F\u002Fxxx.xxx.xxx\u002Fgenerated\u002Fimage.jpg\",\n  \"url\": \"https:\u002F\u002Fxxx.xxx.xxx\u002Fgenerated\u002Fimage.jpg\",\n  \"metadata\": {\n    \"result_urls\": [\"https:\u002F\u002Fxxx.xxx.xxx\u002Fgenerated\u002Fimage.jpg\"]\n  },\n  \"completed_at\": 1714200180000\n}\n```\n\n失败：\n\n```json\n{\n  \"id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"task_id\": \"8c7e4b0e6f3b4b0a9e0a0d8f4f0c1234\",\n  \"object\": \"video\",\n  \"created_at\": 1714200000000,\n  \"status\": \"failed\",\n  \"progress\": 0,\n  \"model\": \"veo-3-1\",\n  \"video_url\": null,\n  \"metadata\": {\n    \"result_urls\": []\n  },\n  \"error\": {\n    \"message\": \"任务失败原因\",\n    \"code\": \"task_failed\"\n  }\n}\n```\n\n| `status` | 含义 |\n|---|---|\n| `queued` | 排队中 |\n| `in_progress` | 生成中，继续轮询 |\n| `completed` | 已完成，取 `video_url` \u002F `image_url` \u002F `url` |\n| `failed` | 失败，查看 `error.message` |\n\n## 2. 支持模型\n\n| 模型 | 输出 | 说明 |\n|---|---|---|\n| `seedance-2` | 视频 | 支持文生视频、首尾帧视频、多参考图视频 |\n| `veo-3-1` | 视频 | 支持文生视频、首尾帧视频、多参考图视频 |\n| `nana-banana-2` | 图片 | 支持文生图片、多参考图生成图片 |\n| `nana-banana-pro` | 图片 | 支持文生图片、多参考图生成图片 |\n\n## 3. 视频模型示例\n\n### 3.1 Seedance 2 · 文生视频\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"seedance-2\",\n    \"prompt\": \"a golden retriever puppy running through sunflowers, cinematic, slow motion\",\n    \"duration\": 10,\n    \"aspect_ratio\": \"16:9\",\n    \"resolution\": \"720p\"\n  }'\n```\n\n### 3.2 Seedance 2 · 首尾帧生成视频\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"seedance-2\",\n    \"prompt\": \"animate naturally from the first frame to the final frame\",\n    \"duration\": 10,\n    \"aspect_ratio\": \"9:16\",\n    \"function_mode\": \"first_last_frames\",\n    \"images\": [\n      \"https:\u002F\u002Fyour-cdn.com\u002Ffirst.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Flast.jpg\"\n    ]\n  }'\n```\n\n也可以使用：\n\n```json\n{\n  \"first_image_url\": \"https:\u002F\u002Fyour-cdn.com\u002Ffirst.jpg\",\n  \"last_image_url\": \"https:\u002F\u002Fyour-cdn.com\u002Flast.jpg\"\n}\n```\n\n### 3.3 Seedance 2 · 多参考图生成视频\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"seedance-2\",\n    \"prompt\": \"use the character, outfit and product references to make a fashion commercial\",\n    \"duration\": 15,\n    \"aspect_ratio\": \"16:9\",\n    \"function_mode\": \"omni_reference\",\n    \"images\": [\n      \"https:\u002F\u002Fyour-cdn.com\u002Fcharacter.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Foutfit.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Fproduct.jpg\"\n    ]\n  }'\n```\n\n### 3.4 VEO 3.1 · 文生视频\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"veo-3-1\",\n    \"prompt\": \"a cinematic drone shot over a futuristic city at sunrise\",\n    \"duration\": 8,\n    \"aspect_ratio\": \"16:9\"\n  }'\n```\n\n### 3.5 VEO 3.1 · 首尾帧生成视频\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"veo-3-1\",\n    \"prompt\": \"animate smoothly from the first frame to the last frame\",\n    \"duration\": 8,\n    \"aspect_ratio\": \"9:16\",\n    \"images\": [\n      \"https:\u002F\u002Fyour-cdn.com\u002Ffirst.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Flast.jpg\"\n    ]\n  }'\n```\n\n### 3.6 VEO 3.1 · 多参考图生成视频\n\n> VEO 多参考图视频请使用 `Ingredients_images`，最多 3 张。\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"veo-3-1\",\n    \"prompt\": \"combine these references into a cinematic product launch video\",\n    \"duration\": 8,\n    \"aspect_ratio\": \"16:9\",\n    \"Ingredients_images\": [\n      \"https:\u002F\u002Fyour-cdn.com\u002Fref-1.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Fref-2.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Fref-3.jpg\"\n    ]\n  }'\n```\n\n## 4. 图片模型示例\n\n### 4.1 Nana Banana 2 · 文生图片\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"nana-banana-2\",\n    \"prompt\": \"a cute banana mascot wearing sunglasses, studio lighting, high detail\",\n    \"aspect_ratio\": \"1:1\",\n    \"resolution\": \"1k\"\n  }'\n```\n\n### 4.2 Nana Banana 2 · 多参考图生成图片\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"nana-banana-2\",\n    \"prompt\": \"make a poster using the character style and product reference\",\n    \"aspect_ratio\": \"4:3\",\n    \"resolution\": \"1k\",\n    \"images\": [\n      \"https:\u002F\u002Fyour-cdn.com\u002Fcharacter.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Fproduct.jpg\"\n    ]\n  }'\n```\n\n### 4.3 Nana Banana Pro · 文生图片\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"nana-banana-pro\",\n    \"prompt\": \"premium editorial product photo, luxury magazine style\",\n    \"aspect_ratio\": \"16:9\",\n    \"resolution\": \"2k\"\n  }'\n```\n\n### 4.4 Nana Banana Pro · 多参考图生成图片\n\n```bash\ncurl -X POST https:\u002F\u002Fxxx.xxx.xxx\u002Fv1\u002Fvideos \\\n  -H \"Authorization: Bearer api-key\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"nana-banana-pro\",\n    \"prompt\": \"create a premium product campaign image using all references\",\n    \"aspect_ratio\": \"16:9\",\n    \"resolution\": \"2k\",\n    \"images\": [\n      \"https:\u002F\u002Fyour-cdn.com\u002Fproduct.jpg\",\n      \"https:\u002F\u002Fyour-cdn.com\u002Fbackground-style.jpg\"\n    ]\n  }'\n```\n\n## 5. 请求字段\n\n| 字段 | 类型 | 必填 | 说明 |\n|---|---|---|---|\n| `model` | string | ✅ | `seedance-2` \u002F `veo-3-1` \u002F `nana-banana-2` \u002F `nana-banana-pro` |\n| `prompt` | string | ✅ | 生成提示词 |\n| `duration` | int | 视频必填 | `seedance-2` 支持 `10` \u002F `15`；`veo-3-1` 固定传 `8` |\n| `aspect_ratio` | string | ❌ | 视频常用 `16:9` \u002F `9:16`；图片支持 `1:1` \u002F `4:3` \u002F `3:4` \u002F `16:9` \u002F `9:16` |\n| `resolution` | string | ❌ | `seedance-2` 支持 `480p` \u002F `720p` \u002F `1080p`；图片支持 `1k` \u002F `2k` |\n| `images` | array | ❌ | 参考图 URL 数组。Seedance 多参考图最多 9 张；VEO 首尾帧最多 2 张；Nana Banana 图片最多 10 张 |\n| `first_image_url` | string | ❌ | 首帧或单参考图 URL |\n| `last_image_url` | string | ❌ | 尾帧 URL |\n| `function_mode` | string | ❌ | `seedance-2` 可用：`first_last_frames` \u002F `omni_reference` |\n| `Ingredients_images` | array | ❌ | `veo-3-1` 多参考图视频使用，最多 3 张 |\n\n## 6. 响应字段\n\n| 字段 | 类型 | 说明 |\n|---|---|---|\n| `id` \u002F `task_id` | string | 任务 ID |\n| `object` | string | 固定为 `video` |\n| `created_at` | int | 创建时间戳，毫秒 |\n| `status` | string | `queued` \u002F `in_progress` \u002F `completed` \u002F `failed` |\n| `progress` | int | 0–100 |\n| `model` | string | 请求模型 |\n| `video_url` | string\\|null | 视频完成后返回视频地址 |\n| `image_url` | string\\|null | 图片模型完成后返回图片地址 |\n| `url` | string\\|null | 最终结果地址，视频\u002F图片通用 |\n| `metadata.result_urls` | array | 最终结果地址数组 |\n| `error.message` | string | 失败时的错误信息 |\n\n\n## 再次声明\n\n本项目是技术研究框架，不保证任何站点的稳定可用性，也不承诺规避第三方风控的成功率。请勿商业化，请勿用于违规批量生成、账号滥用或绕过平台规则的生产用途。\n","FPBrowser2API 是一个基于 Python 的插件框架，旨在通过指纹浏览器管理和自动化账号保活，支持多种 AI 视频和图片生成服务如 veo3.1、seedance2.0 和 gpt-image2 等。其核心功能包括利用独立的浏览器环境进行多账号管理，并通过 CDP 地址连接执行页面操作，如 fetch 请求、文件上传等，同时具备自动处理 Cloudflare\u002FTurnstile 挑战的能力。该框架特别适用于需要模拟真人操作的自动化任务场景，例如在多个网站上进行AI内容生成的研究与测试。推荐使用 RoxyBrowser 作为主要适配对象来实现更稳定的服务运行。请注意，此项目仅供技术研究和个人学习使用，禁止用于商业或其他非法目的。",2,"2026-06-11 02:50:41","CREATED_QUERY"]