From 5c92d6ee6325ffe1e058963f117c7aaeeabea964 Mon Sep 17 00:00:00 2001 From: MaeLucia <597445175@qq.com> Date: Fri, 27 Feb 2026 17:11:29 +0800 Subject: [PATCH] Initial commit: jimeng-free-api-all project --- .dockerignore | 16 + .gitattributes | 2 + .gitignore | 33 + CLAUDE.md | 326 +++ Dockerfile | 44 + LICENSE | 674 +++++ configs/dev/service.yml | 6 + configs/dev/system.yml | 14 + curl(node.js)_jimeng-5.0lite.txt | 827 ++++++ doc/example-0.png | Bin 0 -> 459267 bytes doc/example-1.jpeg | Bin 0 -> 315036 bytes docs/JIMENG-4.1-4.5.md | 170 ++ libs.d.ts | 0 package-lock.json | 3347 ++++++++++++++++++++++ package.json | 52 + public/welcome.html | 10 + src/api/consts/exceptions.ts | 13 + src/api/controllers/chat.ts | 524 ++++ src/api/controllers/core.ts | 458 +++ src/api/controllers/images.ts | 1480 ++++++++++ src/api/controllers/videos.ts | 2003 +++++++++++++ src/api/routes/chat.ts | 36 + src/api/routes/images.ts | 278 ++ src/api/routes/index.ts | 33 + src/api/routes/models.ts | 153 + src/api/routes/ping.ts | 6 + src/api/routes/token.ts | 39 + src/api/routes/video.ts | 6 + src/api/routes/videos.ts | 135 + src/daemon.ts | 82 + src/index.ts | 32 + src/lib/browser-service.ts | 289 ++ src/lib/config.ts | 14 + src/lib/configs/model-config.ts | 407 +++ src/lib/configs/service-config.ts | 68 + src/lib/configs/system-config.ts | 84 + src/lib/consts/exceptions.ts | 5 + src/lib/environment.ts | 44 + src/lib/exceptions/APIException.ts | 14 + src/lib/exceptions/Exception.ts | 47 + src/lib/http-status-codes.ts | 61 + src/lib/initialize.ts | 29 + src/lib/interfaces/ICompletionMessage.ts | 4 + src/lib/logger.ts | 184 ++ src/lib/request/Request.ts | 95 + src/lib/response/Body.ts | 41 + src/lib/response/FailureBody.ts | 31 + src/lib/response/Response.ts | 63 + src/lib/response/SuccessfulBody.ts | 19 + src/lib/server.ts | 241 ++ src/lib/util.ts | 307 ++ test-seedance-media.py | 55 + test-seedance-media.sh | 94 + tsconfig.json | 16 + vercel.json | 27 + 55 files changed, 13038 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 configs/dev/service.yml create mode 100644 configs/dev/system.yml create mode 100644 curl(node.js)_jimeng-5.0lite.txt create mode 100644 doc/example-0.png create mode 100644 doc/example-1.jpeg create mode 100644 docs/JIMENG-4.1-4.5.md create mode 100644 libs.d.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/welcome.html create mode 100644 src/api/consts/exceptions.ts create mode 100644 src/api/controllers/chat.ts create mode 100644 src/api/controllers/core.ts create mode 100644 src/api/controllers/images.ts create mode 100644 src/api/controllers/videos.ts create mode 100644 src/api/routes/chat.ts create mode 100644 src/api/routes/images.ts create mode 100644 src/api/routes/index.ts create mode 100644 src/api/routes/models.ts create mode 100644 src/api/routes/ping.ts create mode 100644 src/api/routes/token.ts create mode 100644 src/api/routes/video.ts create mode 100644 src/api/routes/videos.ts create mode 100644 src/daemon.ts create mode 100644 src/index.ts create mode 100644 src/lib/browser-service.ts create mode 100644 src/lib/config.ts create mode 100644 src/lib/configs/model-config.ts create mode 100644 src/lib/configs/service-config.ts create mode 100644 src/lib/configs/system-config.ts create mode 100644 src/lib/consts/exceptions.ts create mode 100644 src/lib/environment.ts create mode 100644 src/lib/exceptions/APIException.ts create mode 100644 src/lib/exceptions/Exception.ts create mode 100644 src/lib/http-status-codes.ts create mode 100644 src/lib/initialize.ts create mode 100644 src/lib/interfaces/ICompletionMessage.ts create mode 100644 src/lib/logger.ts create mode 100644 src/lib/request/Request.ts create mode 100644 src/lib/response/Body.ts create mode 100644 src/lib/response/FailureBody.ts create mode 100644 src/lib/response/Response.ts create mode 100644 src/lib/response/SuccessfulBody.ts create mode 100644 src/lib/server.ts create mode 100644 src/lib/util.ts create mode 100644 test-seedance-media.py create mode 100644 test-seedance-media.sh create mode 100644 tsconfig.json create mode 100644 vercel.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..281f316 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,16 @@ +logs +dist +doc +node_modules +.vscode +.git +.gitignore +README.md +*.tar.gz +tmp +*.png +*.jpeg +*.jpg +*.mp4 +.ipynb_checkpoints +curl*.txt \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..34595d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +dist/ +node_modules/ +logs/ +.vercel +.ipynb_checkpoints/文生视频首位帧-checkpoint.txt +文生视频首位帧.txt +yarn.lock +jimeng-free-api-all.tar +yarn.lock +.claude/settings.local.json +.ipynb_checkpoints/Dockerfile-checkpoint +.ipynb_checkpoints/README-checkpoint.md +.ipynb_checkpoints/package-checkpoint.json +.ipynb_checkpoints/tsconfig-checkpoint.json +src/api/controllers/.ipynb_checkpoints/images-checkpoint.ts +20260207请求.txt +curl(node.js)_Seedance 2.0.txt +.ipynb_checkpoints/20260207请求-checkpoint.txt +11.jpg +22.png +curl(node.js)download.txt +.ipynb_checkpoints/11-checkpoint.jpg +.ipynb_checkpoints/22-checkpoint.png +.ipynb_checkpoints/curl(node.js)_Seedance 2.0-checkpoint.txt +README.md +curl(node.js)_jimeng-5.0preview-txt +curl(node.js)_jimeng-4.6.txt +.ipynb_checkpoints/CLAUDE-checkpoint.md +curl(nodejs)-seedance2.0fast.txt +.ipynb_checkpoints/test-seedance-media-checkpoint.py +.ipynb_checkpoints/test-seedance-media-checkpoint.sh +curl(nodejs)-seedance2.0fast+声音.txt +curl(nodejs)-seedance2.0fast+声音2.txt diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..6129f15 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,326 @@ +# CLAUDE.md + +本文件为 Claude Code (claude.ai/claude-code) 在此代码仓库中工作时提供指导。 + +## 项目概述 + +即梦 AI 免费 API 服务 - 逆向工程的 API 服务器,提供 OpenAI 兼容接口,封装即梦 AI 的图像和视频生成能力。 + +**版本:** v0.8.6 + +**核心功能:** +- 文生图:支持 jimeng-5.0、jimeng-4.6、jimeng-4.5 等多款模型,最高 4K 分辨率 +- 图生图:多图合成,支持 1-10 张输入图片 +- 视频生成:jimeng-video-3.5-pro 等模型,支持首帧/尾帧控制 +- Seedance 2.0:多模态智能视频生成,模型名 `jimeng-video-seedance-2.0`(兼容 `seedance-2.0`),支持图片/视频/音频混合上传,@1、@2 占位符引用素材,4-15 秒时长 +- OpenAI 兼容:完全兼容 OpenAI API 格式,无缝对接现有客户端 +- 多账号支持:支持多个 sessionid 轮询使用 + +## 构建和开发命令 + +```bash +# 安装依赖 +npm install + +# 安装 Chromium 浏览器(Seedance 模型需要) +npx playwright-core install chromium --with-deps + +# 开发模式(热重载) +npm run dev + +# 生产环境构建 +npm run build + +# 启动生产服务 +npm start +``` + +## Docker 命令 + +```bash +# 构建 Docker 镜像 +docker build -t jimeng-free-api-all:latest . + +# 运行容器 +docker run -it -d --init --name jimeng-free-api-all -p 8000:8000 -e TZ=Asia/Shanghai jimeng-free-api-all:latest + +# 使用 Docker Hub 预构建镜像 +docker pull wwwzhouhui569/jimeng-free-api-all:latest +docker run -it -d --init --name jimeng-free-api-all -p 8000:8000 -e TZ=Asia/Shanghai wwwzhouhui569/jimeng-free-api-all:latest +``` + +## 项目架构 + +``` +src/ +├── index.ts # 应用入口 +├── daemon.ts # 守护进程管理 +├── api/ +│ ├── controllers/ # 业务逻辑控制器 +│ │ ├── core.ts # 核心工具(Token处理、积分管理、请求封装) +│ │ ├── images.ts # 图像生成逻辑(文生图、图生图) +│ │ ├── videos.ts # 视频生成逻辑(含 Seedance 2.0) +│ │ └── chat.ts # 对话补全逻辑 +│ ├── routes/ # API 路由定义 +│ │ ├── index.ts # 路由聚合器 +│ │ ├── images.ts # /v1/images/* 端点 +│ │ ├── videos.ts # /v1/videos/* 端点 +│ │ ├── video.ts # /v1/video/* 端点(videos 的包装路由) +│ │ ├── chat.ts # /v1/chat/* 端点 +│ │ ├── models.ts # /v1/models 端点 +│ │ ├── ping.ts # /ping 健康检查端点 +│ │ └── token.ts # /token/* Token管理端点 +│ └── consts/ +│ └── exceptions.ts # API 异常定义 +└── lib/ + ├── server.ts # Koa 服务器配置(含中间件栈) + ├── browser-service.ts # 浏览器代理服务(Seedance shark 反爬绕过) + ├── config.ts # 配置管理 + ├── logger.ts # 日志工具 + ├── util.ts # 辅助工具函数 + ├── environment.ts # 环境变量 + ├── initialize.ts # 初始化逻辑 + ├── http-status-codes.ts # HTTP 状态码 + ├── request/ + │ └── Request.ts # 请求解析与验证(含文件上传规范化) + ├── response/ + │ ├── Response.ts # 响应包装器 + │ ├── Body.ts # 响应体 + │ └── FailureBody.ts # 错误响应体 + ├── exceptions/ + │ ├── Exception.ts # 基础异常类 + │ └── APIException.ts # API 异常类 + ├── interfaces/ + │ └── ICompletionMessage.ts # 对话消息接口 + └── configs/ # 配置模式 + ├── model-config.ts # 模型配置(模型参数、分辨率映射等) + ├── service-config.ts # 服务配置 + └── system-config.ts # 系统配置 +``` + +## API 端点 + +| 端点 | 方法 | 说明 | +|------|------|------| +| `/v1/chat/completions` | POST | OpenAI 兼容的对话接口(用于图像/视频生成) | +| `/v1/images/generations` | POST | 文生图/图生图接口(支持 images 可选参数) | +| `/v1/images/compositions` | POST | 图生图接口(支持文件上传,向后兼容) | +| `/v1/videos/generations` | POST | 视频生成接口(含 Seedance 2.0 / 2.0-fast) | +| `/v1/video/generations` | POST | 视频生成接口(别名路由) | +| `/v1/models` | GET | 获取可用模型列表 | +| `/token/check` | POST | 检查 Token 有效性 | +| `/token/points` | POST | 查询账户积分 | +| `/ping` | GET | 健康检查端点 | + +## 关键技术细节 + +### 认证方式 +- 使用即梦网站的 `sessionid` Cookie 作为 Bearer Token +- 多账号支持:逗号分隔多个 sessionid:`Authorization: Bearer sessionid1,sessionid2` +- 每次请求随机选择一个 sessionid 使用 + +### 模型映射 + +#### 图像模型 +| 用户模型名 | 内部模型名 | Draft 版本 | 说明 | +|-----------|-----------|-----------|------| +| `jimeng-5.0` | `high_aes_general_v50` | 3.3.9 | 5.0 正式版(原 jimeng-5.0-preview),最新模型 | +| `jimeng-4.6` | `high_aes_general_v42` | 3.3.9 | 推荐使用 | +| `jimeng-4.5` | `high_aes_general_v40l` | 3.3.4 | 高质量模型 | +| `jimeng-4.1` | `high_aes_general_v41` | 3.3.4 | 高质量模型 | +| `jimeng-4.0` | `high_aes_general_v40` | 3.3.4 | 稳定版本 | +| `jimeng-3.1` | `high_aes_general_v30l_art_fangzhou` | - | 艺术风格 | +| `jimeng-3.0` | `high_aes_general_v30l` | - | 通用模型 | +| `jimeng-2.1` | - | - | 旧版模型 | +| `jimeng-2.0-pro` | - | - | 旧版专业模型 | +| `jimeng-2.0` | - | - | 旧版模型 | +| `jimeng-1.4` | - | - | 早期模型 | +| `jimeng-xl-pro` | - | - | XL 专业模型 | + +#### 视频模型 +| 用户模型名 | 内部模型名 | 说明 | +|-----------|-----------|------| +| `jimeng-video-3.5-pro` | `dreamina_ic_generate_video_model_vgfm_3.5_pro` | 最新视频模型 | +| `jimeng-video-3.0` | - | 视频生成 3.0 | +| `jimeng-video-3.0-pro` | - | 视频生成 3.0 专业版 | +| `jimeng-video-2.0` | - | 视频生成 2.0 | +| `jimeng-video-2.0-pro` | - | 视频生成 2.0 专业版 | +| `jimeng-video-seedance-2.0` | `dreamina_seedance_40_pro` | Seedance 2.0(上游标准名称,推荐) | +| `seedance-2.0` | `dreamina_seedance_40_pro` | 多图智能视频生成(向后兼容别名) | +| `seedance-2.0-pro` | `dreamina_seedance_40_pro` | 多图智能视频生成专业版(向后兼容别名) | +| `jimeng-video-seedance-2.0-fast` | `dreamina_seedance_40` | Seedance 2.0-fast 快速版(上游标准名称) | +| `seedance-2.0-fast` | `dreamina_seedance_40` | Seedance 2.0-fast 快速版(向后兼容别名) | + +### 请求参数 + +#### 图像生成参数 (`/v1/images/generations`) +| 参数 | 类型 | 必填 | 默认值 | 说明 | +|------|------|------|--------|------| +| model | string | 否 | jimeng-4.5 | 模型名称 | +| prompt | string | 是 | - | 提示词,jimeng-4.x/5.x 支持多图生成 | +| images | array | 否 | - | 图片URL数组(1-10张),提供则走图生图模式,不提供则走文生图模式 | +| negative_prompt | string | 否 | "" | 反向提示词 | +| ratio | string | 否 | 1:1 | 宽高比:1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9 | +| resolution | string | 否 | 2k | 分辨率:1k, 2k, 4k | +| sample_strength | float | 否 | 0.5 | 精细度 0.0-1.0 | +| response_format | string | 否 | url | url 或 b64_json | + +**说明:** +- 当 `images` 参数为空或不提供时,接口执行文生图功能 +- 当 `images` 参数提供(1-10张图片)时,接口执行图生图功能 +- 支持 `application/json`(images 为 URL 数组)和 `multipart/form-data`(通过 images 字段上传文件)两种请求格式 +- 图生图模式下,响应会额外包含 `input_images` 和 `composition_type` 字段 + +#### 图生图参数 (`/v1/images/compositions`) - 向后兼容 +- 与 `/v1/images/generations` 相同的参数 +- `images` 字段为必填(1-10张图片) +- 额外支持 multipart/form-data 文件上传 + +#### 视频生成参数 (`/v1/videos/generations`) +| 参数 | 类型 | 必填 | 默认值 | 说明 | +|------|------|------|--------|------| +| model | string | 否 | jimeng-video-3.0 | 模型名称 | +| prompt | string | 否 | - | 视频描述(图生视频时可选) | +| ratio | string | 否 | 1:1 | 宽高比:1:1, 4:3, 3:4, 16:9, 9:16 | +| resolution | string | 否 | 720p | 分辨率:480p, 720p, 1080p | +| duration | number | 否 | 5 | 时长:4-15秒(Seedance)、5 或 10 秒(普通) | +| file_paths / filePaths | array | 否 | [] | 首帧/尾帧图片 URL | +| files | file[] | 否 | - | 上传的素材文件(图片/视频/音频,multipart) | + +#### Seedance 2.0 / 2.0-fast 专用参数 +- 使用 `unified_edit_input` 结构,包含 `material_list` 和 `meta_list` +- 支持多模态素材混合上传:图片(ImageX)、视频/音频(VOD) +- 素材类型自动检测:通过 MIME 类型或文件扩展名判断(image/video/audio) +- 上游标准模型名:`jimeng-video-seedance-2.0`(兼容 `seedance-2.0`、`seedance-2.0-pro`) +- 快速版模型名:`jimeng-video-seedance-2.0-fast`(兼容 `seedance-2.0-fast`) +- 内部模型(标准版):`dreamina_seedance_40_pro`,benefit_type:`dreamina_video_seedance_20_pro` +- 内部模型(快速版):`dreamina_seedance_40`,benefit_type:`dreamina_seedance_20_fast`(注意:无 `video_` 前缀) +- Draft 版本:3.3.9 +- 时长范围:4-15 秒(连续范围,与上游 iptag/jimeng-api 一致) +- 提示词占位符:`@1`、`@2`、`@图1`、`@图2`、`@image1`、`@image2` 引用上传的素材 +- 支持的素材格式:图片(jpg/png/webp/gif/bmp)、视频(mp4/mov/m4v)、音频(mp3/wav) + +### Shark 反爬与浏览器代理(v0.8.4) +- 即梦对 Seedance 的 `/mweb/v1/aigc_draft/generate` 接口启用了 shark 安全中间件,要求请求携带 `a_bogus` 签名 +- `a_bogus` 由字节跳动 `bdms` SDK 在浏览器中生成,依赖真实浏览器环境(Canvas, WebGL, DOM),Node.js 无法直接运行 +- 解决方案:通过 `BrowserService`(`src/lib/browser-service.ts`)使用 Playwright 启动 headless Chromium,`bdms` SDK 自动拦截 `fetch` 并注入 `a_bogus` +- 仅 Seedance 的 generate 请求走浏览器代理,其他请求继续用 Node.js `axios` +- 浏览器懒启动,首次 Seedance 请求时创建;每个 sessionId 独立会话;10 分钟空闲自动清理 +- 资源拦截:屏蔽图片/字体/CSS,仅允许 bdms SDK 相关脚本(白名单域名:`vlabstatic.com`、`bytescm.com`、`jianying.com`、`byteimg.com`) + +### 文件上传 +- 支持 multipart/form-data 文件上传 +- koa-body 配置最大文件大小 100MB +- files 字段可以是对象或数组格式(在 Request.ts 中自动规范化) +- 支持 formLimit/jsonLimit/textLimit:100mb + +### 上传通道(v0.8.5) +- **ImageX 通道**(图片上传):`get_upload_token(scene=2)` → `imagex.bytedanceapi.com` → `ApplyImageUpload` / `CommitImageUpload`,返回 URI 格式 `tos-cn-i-{service_id}/{uuid}`,service_id 为 `tb4s082cfz` +- **VOD 通道**(视频/音频上传):`get_upload_token(scene=1)` → `vod.bytedanceapi.com` → `ApplyUploadInner` / `CommitUploadInner`,返回 vid 格式 `v028xxx`,SpaceName 为 `dreamina` +- AWS Signature V4 签名:ImageX 使用 service=`imagex`,VOD 使用 service=`vod`,region 均为 `cn-north-1` +- VOD 上传自动返回媒体元数据(Duration、Width、Height、Fps 等),音频时长 fallback 使用本地 WAV 头解析 + +### 分辨率支持 + +#### 图片分辨率 +| 分辨率 | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 3:2 | 2:3 | 21:9 | +|--------|-----|-----|-----|------|------|-----|-----|------| +| 1k | 1024×1024 | 768×1024 | 1024×768 | 1024×576 | 576×1024 | 1024×682 | 682×1024 | 1195×512 | +| 2k | 2048×2048 | 2304×1728 | 1728×2304 | 2560×1440 | 1440×2560 | 2496×1664 | 1664×2496 | 3024×1296 | +| 4k | 4096×4096 | 4608×3456 | 3456×4608 | 5120×2880 | 2880×5120 | 4992×3328 | 3328×4992 | 6048×2592 | + +#### 视频分辨率 +| 分辨率 | 1:1 | 4:3 | 3:4 | 16:9 | 9:16 | +|--------|-----|-----|-----|------|------| +| 480p | 480×480 | 640×480 | 480×640 | 854×480 | 480×854 | +| 720p | 720×720 | 960×720 | 720×960 | 1280×720 | 720×1280 | +| 1080p | 1080×1080 | 1440×1080 | 1080×1440 | 1920×1080 | 1080×1920 | + +### 服务器中间件栈 +1. **CORS 跨域支持**:`koa2-cors()` +2. **Range 请求**:`koaRange`(支持分段内容传输) +3. **自定义异常处理器**:捕获错误并返回 FailureBody 响应 +4. **自定义 JSON 解析器**:处理 POST/PUT/PATCH 请求的 JSON(清理问题 Unicode 字符,跳过 multipart 请求) +5. **Body 解析器**:`koa-body`(multipart: true,maxFileSize: 100MB) + +## 开发规范 + +1. **TypeScript**:项目使用 TypeScript + ESM 模块 +2. **路径别名**:使用 `@/` 别名指向 `src/` 目录 +3. **日志**:使用 `@/lib/logger.ts` 中的 logger 保持输出一致 +4. **配置**:环境配置在 `configs/` 目录,通过 `@/lib/config.ts` 加载 +5. **API 兼容性**:维护 OpenAI API 兼容性,确保客户端集成正常 +6. **Node.js 版本**:≥16.0.0 + +## 测试 API 调用 + +```bash +# 文生图(使用最新模型) +curl -X POST http://localhost:8000/v1/images/generations \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your_sessionid" \ + -d '{"model": "jimeng-5.0", "prompt": "美丽的日落风景", "ratio": "16:9", "resolution": "2k"}' + +# 图生图(通过 images 参数) +curl -X POST http://localhost:8000/v1/images/generations \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your_sessionid" \ + -d '{"model": "jimeng-4.5", "prompt": "将两张图融合成梦幻风格", "images": ["https://example.com/img1.jpg", "https://example.com/img2.jpg"], "ratio": "1:1", "resolution": "2k", "sample_strength": 0.5}' + +# 图生图(multipart 文件上传) +curl -X POST http://localhost:8000/v1/images/generations \ + -H "Authorization: Bearer your_sessionid" \ + -F "model=jimeng-4.5" \ + -F "prompt=将图片转换为油画风格" \ + -F "images=@/path/to/image1.jpg" \ + -F "ratio=1:1" \ + -F "resolution=2k" + +# 视频生成 +curl -X POST http://localhost:8000/v1/videos/generations \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your_sessionid" \ + -d '{"model": "jimeng-video-3.5-pro", "prompt": "一只小猫在草地上玩耍", "ratio": "16:9", "resolution": "720p"}' + +# Seedance 2.0 多图视频(文件上传) +curl -X POST http://localhost:8000/v1/videos/generations \ + -H "Authorization: Bearer your_sessionid" \ + -F "model=jimeng-video-seedance-2.0" \ + -F "prompt=@1 和 @2 两人开始跳舞" \ + -F "ratio=4:3" \ + -F "duration=4" \ + -F "files=@/path/to/image1.jpg" \ + -F "files=@/path/to/image2.jpg" + +# Seedance 2.0-fast 快速多图视频 +curl -X POST http://localhost:8000/v1/videos/generations \ + -H "Authorization: Bearer your_sessionid" \ + -F "model=jimeng-video-seedance-2.0-fast" \ + -F "prompt=@1 图片中的人物开始微笑" \ + -F "ratio=4:3" \ + -F "duration=5" \ + -F "files=@/path/to/image1.jpg" + +# Seedance 图片+音频混合视频 +curl -X POST http://localhost:8000/v1/videos/generations \ + -H "Authorization: Bearer your_sessionid" \ + -F "model=jimeng-video-seedance-2.0-fast" \ + -F "prompt=@1 图片中的人物随着音乐 @2 开始跳舞" \ + -F "ratio=9:16" \ + -F "duration=5" \ + -F "files=@/path/to/image.png" \ + -F "files=@/path/to/audio.wav" + +# 健康检查 +curl http://localhost:8000/ping + +# Token 检查 +curl -X POST http://localhost:8000/token/check \ + -H "Content-Type: application/json" \ + -d '{"token": "your_sessionid"}' +``` + +## 配置 + +默认端口:8000 +配置文件在 `configs/` 目录,使用 YAML 格式。 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..62b435d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,44 @@ +FROM node:lts AS BUILD_IMAGE + +WORKDIR /app + +COPY . /app + +RUN yarn install --registry https://registry.npmmirror.com/ --ignore-engines && yarn run build + +FROM node:lts + +# 安装 Chromium 依赖 +RUN apt-get update && apt-get install -y --no-install-recommends \ + libnss3 \ + libatk1.0-0 \ + libatk-bridge2.0-0 \ + libcups2 \ + libdrm2 \ + libxkbcommon0 \ + libxcomposite1 \ + libxdamage1 \ + libxfixes3 \ + libxrandr2 \ + libgbm1 \ + libpango-1.0-0 \ + libcairo2 \ + libasound2 \ + libatspi2.0-0 \ + libwayland-client0 \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=BUILD_IMAGE /app/configs /app/configs +COPY --from=BUILD_IMAGE /app/package.json /app/package.json +COPY --from=BUILD_IMAGE /app/dist /app/dist +COPY --from=BUILD_IMAGE /app/public /app/public +COPY --from=BUILD_IMAGE /app/node_modules /app/node_modules + +WORKDIR /app + +# 安装 Playwright Chromium 浏览器 +RUN npx playwright-core install chromium + +EXPOSE 8000 + +CMD ["npm", "start"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/configs/dev/service.yml b/configs/dev/service.yml new file mode 100644 index 0000000..32b1a8b --- /dev/null +++ b/configs/dev/service.yml @@ -0,0 +1,6 @@ +# 服务名称 +name: jimeng-free-api +# 服务绑定主机地址 +host: '0.0.0.0' +# 服务绑定端口 +port: 8000 \ No newline at end of file diff --git a/configs/dev/system.yml b/configs/dev/system.yml new file mode 100644 index 0000000..dca6170 --- /dev/null +++ b/configs/dev/system.yml @@ -0,0 +1,14 @@ +# 是否开启请求日志 +requestLog: true +# 临时目录路径 +tmpDir: ./tmp +# 日志目录路径 +logDir: ./logs +# 日志写入间隔(毫秒) +logWriteInterval: 200 +# 日志文件有效期(毫秒) +logFileExpires: 2626560000 +# 公共目录路径 +publicDir: ./public +# 临时文件有效期(毫秒) +tmpFileExpires: 86400000 \ No newline at end of file diff --git a/curl(node.js)_jimeng-5.0lite.txt b/curl(node.js)_jimeng-5.0lite.txt new file mode 100644 index 0000000..e5ce18d --- /dev/null +++ b/curl(node.js)_jimeng-5.0lite.txt @@ -0,0 +1,827 @@ +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "x-mcs-appkey": "566f58151b0ed37e", + "Referer": "https://helpdesk.bytedance.com/sites/standalone/helpcenter_web/home?biz_id=73&source=generation&entrance=IM513695-2111&channel=5&app_id=513695&im_extra=%257B%2522device_id%2522%253A%25227605602965571765786%2522%252C%2522host_app_version%2522%253A%25220.0.0.1%2522%252C%2522entrance%2522%253A%2522IM513695-2111%2522%252C%2522host_user_id%2522%253A%2522704135154117550%2522%252C%2522host_user_name%2522%253A%2522%25E5%2591%25A8%25E8%25BE%2589%2522%252C%2522host_user_agent%2522%253A%2522Mozilla%252F5.0%2520%28Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64%29%2520AppleWebKit%252F537.36%2520%28KHTML%252C%2520like%2520Gecko%29%2520Chrome%252F132.0.0.0%2520Safari%252F537.36%2522%252C%2522host_app_name%2522%253A%2522jimeng%2522%252C%2522host_os_type%2522%253A%2522Windows%2522%252C%2522host_os_version%2522%253A%252210%2522%252C%2522host_app_id%2522%253A%2522513695%2522%252C%2522channel%2522%253A%25225%2522%252C%2522device_brand%2522%253A%2522unknown%2522%252C%2522entrance_location%2522%253A%2522%25E5%25B8%25AE%25E5%258A%25A9%25E4%25B8%25AD%25E5%25BF%2583%2522%252C%2522vip_had_pay%2522%253A%25221%2522%257D&theme=dark&ui_theme=dark&inst_id=2&sign_uid=177189382446285", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"onload\",\"params\":\"{\\\"app_id\\\":2970,\\\"app_name\\\":\\\"\\\",\\\"sdk_version\\\":\\\"5.2.7\\\",\\\"sdk_type\\\":\\\"npm\\\",\\\"sdk_config\\\":{\\\"app_id\\\":2970,\\\"channel\\\":\\\"cn\\\",\\\"enable_ab_test\\\":true,\\\"ab_channel_domain\\\":\\\"https://abtestvm.bytedance.com\\\",\\\"log\\\":true},\\\"sdk_desc\\\":\\\"TOC\\\",\\\"url\\\":\\\"https://helpdesk.bytedance.com/sites/standalone/helpcenter_web/home?biz_id=73&source=generation&entrance=IM513695-2111&channel=5&app_id=513695&im_extra=%257B%2522device_id%2522%253A%25227605602965571765786%2522%252C%2522host_app_version%2522%253A%25220.0.0.1%2522%252C%2522entrance%2522%253A%2522IM513695-2111%2522%252C%2522host_user_id%2522%253A%2522704135154117550%2522%252C%2522host_user_name%2522%253A%2522%25E5%2591%25A8%25E8%25BE%2589%2522%252C%2522host_user_agent%2522%253A%2522Mozilla%252F5.0%2520%28Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64%29%2520AppleWebKit%252F537.36%2520%28KHTML%252C%2520like%2520Gecko%29%2520Chrome%252F132.0.0.0%2520Safari%252F537.36%2522%252C%2522host_app_name%2522%253A%2522jimeng%2522%252C%2522host_os_type%2522%253A%2522Windows%2522%252C%2522host_os_version%2522%253A%252210%2522%252C%2522host_app_id%2522%253A%2522513695%2522%252C%2522channel%2522%253A%25225%2522%252C%2522device_brand%2522%253A%2522unknown%2522%252C%2522entrance_location%2522%253A%2522%25E5%25B8%25AE%25E5%258A%25A9%25E4%25B8%25AD%25E5%25BF%2583%2522%252C%2522vip_had_pay%2522%253A%25221%2522%257D&theme=dark&ui_theme=dark&inst_id=2&sign_uid=177189382446285\\\"}\",\"local_time_ms\":1771893824535}],\"user\":{\"user_unique_id\":\"7490556098354857484\"},\"header\":{}}]", + "method": "POST" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://helpdesk.bytedance.com/sites/standalone/helpcenter_web/home?biz_id=73&source=generation&entrance=IM513695-2111&channel=5&app_id=513695&im_extra=%257B%2522device_id%2522%253A%25227605602965571765786%2522%252C%2522host_app_version%2522%253A%25220.0.0.1%2522%252C%2522entrance%2522%253A%2522IM513695-2111%2522%252C%2522host_user_id%2522%253A%2522704135154117550%2522%252C%2522host_user_name%2522%253A%2522%25E5%2591%25A8%25E8%25BE%2589%2522%252C%2522host_user_agent%2522%253A%2522Mozilla%252F5.0%2520%28Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64%29%2520AppleWebKit%252F537.36%2520%28KHTML%252C%2520like%2520Gecko%29%2520Chrome%252F132.0.0.0%2520Safari%252F537.36%2522%252C%2522host_app_name%2522%253A%2522jimeng%2522%252C%2522host_os_type%2522%253A%2522Windows%2522%252C%2522host_os_version%2522%253A%252210%2522%252C%2522host_app_id%2522%253A%2522513695%2522%252C%2522channel%2522%253A%25225%2522%252C%2522device_brand%2522%253A%2522unknown%2522%252C%2522entrance_location%2522%253A%2522%25E5%25B8%25AE%25E5%258A%25A9%25E4%25B8%25AD%25E5%25BF%2583%2522%252C%2522vip_had_pay%2522%253A%25221%2522%257D&theme=dark&ui_theme=dark&inst_id=2&sign_uid=177189382446285", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"predefine_pageview\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"device_id\\\":\\\"7605602965571765786\\\",\\\"user_id\\\":\\\"704135154117550\\\",\\\"appVersion\\\":\\\"0.0.0.1\\\",\\\"title\\\":\\\"帮助中心\\\",\\\"url\\\":\\\"https://helpdesk.bytedance.com/sites/standalone/helpcenter_web/home?biz_id=73&source=generation&entrance=IM513695-2111&channel=5&app_id=513695&im_extra=%257B%2522device_id%2522%253A%25227605602965571765786%2522%252C%2522host_app_version%2522%253A%25220.0.0.1%2522%252C%2522entrance%2522%253A%2522IM513695-2111%2522%252C%2522host_user_id%2522%253A%2522704135154117550%2522%252C%2522host_user_name%2522%253A%2522%25E5%2591%25A8%25E8%25BE%2589%2522%252C%2522host_user_agent%2522%253A%2522Mozilla%252F5.0%2520%28Windows%2520NT%252010.0%253B%2520Win64%253B%2520x64%29%2520AppleWebKit%252F537.36%2520%28KHTML%252C%2520like%2520Gecko%29%2520Chrome%252F132.0.0.0%2520Safari%252F537.36%2522%252C%2522host_app_name%2522%253A%2522jimeng%2522%252C%2522host_os_type%2522%253A%2522Windows%2522%252C%2522host_os_version%2522%253A%252210%2522%252C%2522host_app_id%2522%253A%2522513695%2522%252C%2522channel%2522%253A%25225%2522%252C%2522device_brand%2522%253A%2522unknown%2522%252C%2522entrance_location%2522%253A%2522%25E5%25B8%25AE%25E5%258A%25A9%25E4%25B8%25AD%25E5%25BF%2583%2522%252C%2522vip_had_pay%2522%253A%25221%2522%257D&theme=dark&ui_theme=dark&inst_id=2&sign_uid=177189382446285\\\",\\\"url_path\\\":\\\"/sites/standalone/helpcenter_web/home\\\",\\\"time\\\":1771893824536,\\\"referrer\\\":\\\"https://jimeng.jianying.com/ai-tool/generate?type=image\\\",\\\"$is_first_time\\\":\\\"false\\\",\\\"event_index\\\":1771894006679}\",\"local_time_ms\":1771893824536,\"is_bav\":0,\"session_id\":\"9d5e6b47-1c8e-472b-9c2e-0bd52b22b268\"}],\"user\":{\"user_unique_id\":\"7605602965571765786\",\"user_id\":\"704135154117550\",\"web_id\":\"7490556098354857484\"},\"header\":{\"app_id\":2970,\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-CN\",\"platform\":\"web\",\"sdk_version\":\"5.2.7\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"referrer_host\":\"jimeng.jianying.com\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"$latest_referrer\\\":\\\"https://jimeng.jianying.com/ai-tool/generate?type=image\\\",\\\"$latest_referrer_host\\\":\\\"jimeng.jianying.com\\\",\\\"$latest_search_keyword\\\":\\\"\\\",\\\"source\\\":\\\"generation\\\",\\\"page_source\\\":\\\"generation\\\",\\\"query_source\\\":\\\"generation\\\",\\\"uid\\\":\\\"704135154117550\\\",\\\"biz\\\":\\\"73\\\",\\\"biz_id\\\":\\\"73\\\",\\\"im_entrance\\\":\\\"IM513695-2111\\\",\\\"timestamp\\\":1771893824436,\\\"aid\\\":513695}\"},\"local_time\":1771893825,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/aigc_draft/generate?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&os=windows&web_component_open_flag=1&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=djsxDcgXMsm1ME8-AXkz9e4NcEb0YW4cgZENvyD-DzoW", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893826", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "19724735691862919106b8c4808a6ce7", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"extend\":{\"root_model\":\"high_aes_general_v50\"},\"submit_id\":\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\",\"metrics_extra\":\"{\\\"promptSource\\\":\\\"custom\\\",\\\"generateCount\\\":1,\\\"enterFrom\\\":\\\"click\\\",\\\"position\\\":\\\"page_bottom_box\\\",\\\"sceneOptions\\\":\\\"[{\\\\\\\"type\\\\\\\":\\\\\\\"image\\\\\\\",\\\\\\\"scene\\\\\\\":\\\\\\\"ImageBasicGenerate\\\\\\\",\\\\\\\"modelReqKey\\\\\\\":\\\\\\\"high_aes_general_v50\\\\\\\",\\\\\\\"resolutionType\\\\\\\":\\\\\\\"2k\\\\\\\",\\\\\\\"abilityList\\\\\\\":[],\\\\\\\"benefitCount\\\\\\\":4,\\\\\\\"reportParams\\\\\\\":{\\\\\\\"enterSource\\\\\\\":\\\\\\\"generate\\\\\\\",\\\\\\\"vipSource\\\\\\\":\\\\\\\"generate\\\\\\\",\\\\\\\"extraVipFunctionKey\\\\\\\":\\\\\\\"high_aes_general_v50-2k\\\\\\\",\\\\\\\"useVipFunctionDetailsReporterHoc\\\\\\\":true}}]\\\",\\\"isBoxSelect\\\":false,\\\"isCutout\\\":false,\\\"generateId\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"isRegenerate\\\":false}\",\"draft_content\":\"{\\\"type\\\":\\\"draft\\\",\\\"id\\\":\\\"ab0f784c-0647-a3ec-ce07-3507cdbab95d\\\",\\\"min_version\\\":\\\"3.0.2\\\",\\\"min_features\\\":[],\\\"is_from_tsn\\\":true,\\\"version\\\":\\\"3.3.9\\\",\\\"main_component_id\\\":\\\"7ed7cd94-b25f-65f1-5b10-895dc2325cb3\\\",\\\"component_list\\\":[{\\\"type\\\":\\\"image_base_component\\\",\\\"id\\\":\\\"7ed7cd94-b25f-65f1-5b10-895dc2325cb3\\\",\\\"min_version\\\":\\\"3.0.2\\\",\\\"aigc_mode\\\":\\\"workbench\\\",\\\"metadata\\\":{\\\"type\\\":\\\"\\\",\\\"id\\\":\\\"782812df-30eb-ba67-f2d8-760453fc599b\\\",\\\"created_platform\\\":3,\\\"created_platform_version\\\":\\\"\\\",\\\"created_time_in_ms\\\":\\\"1771893826296\\\",\\\"created_did\\\":\\\"\\\"},\\\"generate_type\\\":\\\"generate\\\",\\\"abilities\\\":{\\\"type\\\":\\\"\\\",\\\"id\\\":\\\"7cfd3d5e-7a56-f446-ca88-cf92dd582856\\\",\\\"generate\\\":{\\\"type\\\":\\\"\\\",\\\"id\\\":\\\"85d6138a-c537-e60b-f9e6-09fe56ee5642\\\",\\\"core_param\\\":{\\\"type\\\":\\\"\\\",\\\"id\\\":\\\"41fc4d2a-63a6-6d1e-4dea-5c9c57191fb3\\\",\\\"model\\\":\\\"high_aes_general_v50\\\",\\\"prompt\\\":\\\"两个小马在一起跑步\\\",\\\"negative_prompt\\\":\\\"\\\",\\\"seed\\\":1357613421,\\\"sample_strength\\\":0.5,\\\"image_ratio\\\":3,\\\"large_image_info\\\":{\\\"type\\\":\\\"\\\",\\\"id\\\":\\\"847e0525-b663-a0fe-f8a9-03071370b37a\\\",\\\"height\\\":1440,\\\"width\\\":2560,\\\"resolution_type\\\":\\\"2k\\\"},\\\"intelligent_ratio\\\":false,\\\"generate_type\\\":0}},\\\"gen_option\\\":{\\\"type\\\":\\\"\\\",\\\"id\\\":\\\"cf1a915e-0955-02ed-69e0-8dfbc7aeca4e\\\",\\\"generate_all\\\":false}}}]}\",\"http_common_info\":{\"aid\":513695}}", + "method": "POST" +}); ; +fetch("https://everphoto.jianying.com/sf/5/v5/GetUpdates?aid=324442&space_id=7436736040297038899&cursor=n_7492071223166238732&material=1&abilities=30", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json", + "expect-real-status": "1", + "pragma": "no-cache", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "x-ep-thirdparty-uid": "704135154117550", + "x-everphoto-global-session-token": "CsABdblQiZw9HNKaE0LbOVLZZaHZCHp1jEHyFNVSZpzEH99Sg4Do1S11PDQi0hq5XNFcmraJZKhWGsiGyH5YaBayggz2cvwHhKoC50CHli+FQXvL5jVsOhxvFaXoSgXHflFxt1Qb0VOYpn66MGHGdIVkkLh4Kz2di/5aZ9FMtggwPrxIT8Wn9Cp2uqxXyma6JOupbg2ygC52SccQbXjXa/zATFafIO55Y59ZzNGpaANAmcoSE/1tz2hwbFWoJ/9Qt6kNGkkKPAAAAAAAAAAAAABQG5LgtCE9i65XVA0wPVUCxHnUNoQ5GX6sgXGnyaCAQWmq0G0nL1Dm3jJv4mBUDmNoOhD0uooOGJqMmcQLIgEDsDnl6BFgVFs=", + "cookie": "passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": null, + "method": "GET" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"vip_function_details\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"action\\\":\\\"use\\\",\\\"enter_source\\\":\\\"generate\\\",\\\"right_id\\\":\\\"image_basic_v5_2k\\\",\\\"right_type\\\":\\\"generate_img\\\",\\\"right_main_type\\\":\\\"aigc\\\",\\\"right_is_aigc\\\":\\\"1\\\",\\\"right_block_type\\\":\\\"click\\\",\\\"right_count_type\\\":\\\"times\\\",\\\"right_subscribe_type\\\":\\\"free\\\",\\\"right_oneoff_mix_type\\\":\\\"free\\\",\\\"right_is_trial\\\":\\\"1\\\",\\\"right_trial_mode\\\":\\\"period_trial\\\",\\\"right_trial_type\\\":\\\"limit_times\\\",\\\"right_trial_limit_left\\\":\\\"-1\\\",\\\"event_index\\\":1771894585752}\",\"local_time_ms\":1771893827067,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"vip_function_details\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"action\\\":\\\"use\\\",\\\"enter_source\\\":\\\"queue_speed_by_default\\\",\\\"right_id\\\":\\\"queue_speed\\\",\\\"right_type\\\":\\\"queue_speed\\\",\\\"right_main_type\\\":\\\"function\\\",\\\"right_is_aigc\\\":\\\"0\\\",\\\"right_block_type\\\":\\\"click\\\",\\\"right_count_type\\\":\\\"times\\\",\\\"right_subscribe_type\\\":\\\"free\\\",\\\"right_oneoff_mix_type\\\":\\\"free\\\",\\\"right_is_trial\\\":\\\"1\\\",\\\"right_trial_mode\\\":\\\"period_trial\\\",\\\"right_trial_type\\\":\\\"limit_times\\\",\\\"right_trial_limit_left\\\":\\\"-1\\\",\\\"event_index\\\":1771894585751}\",\"local_time_ms\":1771893827067,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"click_generate\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"ratio\\\":\\\"1.7778\\\",\\\"prompt\\\":\\\"两个小马在一起跑步\\\",\\\"definition\\\":\\\"2k\\\",\\\"is_time_limited_free\\\":0,\\\"credits_need\\\":0,\\\"credits_now\\\":1180,\\\"generate_type\\\":1,\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"action_type\\\":\\\"generate\\\",\\\"prompt_cnt\\\":9,\\\"image_prompt_cnt\\\":0,\\\"prompt_source\\\":\\\"custom\\\",\\\"model_name\\\":\\\"图片5.0 Lite\\\",\\\"model_starling_key\\\":\\\"web_image_model_name_50\\\",\\\"model_key\\\":\\\"high_aes_general_v50\\\",\\\"is_describe\\\":0,\\\"generate_cnt\\\":1,\\\"enter_from\\\":\\\"click\\\",\\\"reference_cnt\\\":0,\\\"is_box_select\\\":0,\\\"is_cutout\\\":0,\\\"event_index\\\":1771894585750}\",\"local_time_ms\":1771893826299,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"vip_function_details\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"action\\\":\\\"click\\\",\\\"enter_source\\\":\\\"generate\\\",\\\"right_id\\\":\\\"image_basic_v5_2k\\\",\\\"right_type\\\":\\\"generate_img\\\",\\\"right_main_type\\\":\\\"aigc\\\",\\\"right_is_aigc\\\":\\\"1\\\",\\\"right_block_type\\\":\\\"click\\\",\\\"right_count_type\\\":\\\"times\\\",\\\"right_subscribe_type\\\":\\\"free\\\",\\\"right_oneoff_mix_type\\\":\\\"free\\\",\\\"right_is_trial\\\":\\\"1\\\",\\\"right_trial_mode\\\":\\\"period_trial\\\",\\\"right_trial_type\\\":\\\"limit_times\\\",\\\"right_trial_limit_left\\\":\\\"-1\\\",\\\"event_index\\\":1771894585749}\",\"local_time_ms\":1771893826291,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"ai_image_adjust_param\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"modal\\\":\\\"aigc_image\\\",\\\"position\\\":\\\"page_bottom_box\\\",\\\"action\\\":\\\"enter_prompt\\\",\\\"enter_from\\\":\\\"click\\\",\\\"event_index\\\":1771894585748}\",\"local_time_ms\":1771893825815,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"ai_image_adjust_param\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"modal\\\":\\\"aigc_image\\\",\\\"position\\\":\\\"page_bottom_box\\\",\\\"action\\\":\\\"activate\\\",\\\"enter_from\\\":\\\"click\\\",\\\"event_index\\\":1771894585747}\",\"local_time_ms\":1771893825811,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"},\"local_time\":1771893829,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=xXsxhcgXMsm1o%2Fb-AXkz9Hx7ciY0YW5wgZENvyDMyUop", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893831", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "656c1e00cf94dfd5bcfaf031e32493e4", + "sign-ver": "1", + "tdid": "", + "x-platform": "pc", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"submit_ids\":[\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\"]}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893831", + "lan": "ZH", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "e689d5fa536721dee8945eaa6efb01b0", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"count\":20,\"cursor\":\"0\"}", + "method": "POST" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"page_stay_time\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"url\\\":\\\"https://jimeng.jianying.com/ai-tool/generate?type=image\\\",\\\"title\\\":\\\"即梦AI - 一站式AI创作平台\\\",\\\"duration\\\":4112,\\\"from\\\":\\\"from-onblur\\\",\\\"event_index\\\":1771894585755}\",\"local_time_ms\":1771893829923,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"evpt_Sync_pullResult\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"message\\\":\\\"success\\\",\\\"entriesCount\\\":0,\\\"packagesCount\\\":0,\\\"code\\\":0,\\\"initially\\\":0,\\\"duration\\\":197,\\\"hasNewData\\\":0,\\\"assetsCount\\\":0,\\\"event_index\\\":1771894585754}\",\"local_time_ms\":1771893829137,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"evpt_Sync_pullResult\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"message\\\":\\\"success\\\",\\\"entriesCount\\\":0,\\\"hasNewData\\\":0,\\\"initially\\\":0,\\\"duration\\\":197,\\\"code\\\":0,\\\"assetsCount\\\":0,\\\"packagesCount\\\":0,\\\"event_index\\\":1771894585753}\",\"local_time_ms\":1771893829137,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"},\"local_time\":1771893831,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://mon.zijieapi.com/monitor_browser/collect/batch/?biz_id=cn_mweb", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"ev_type\":\"batch\",\"list\":[{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-short.ibytedapm.com/slardar/fe/sdk-web/plugins/screenshot.min.js\",\"entryType\":\"resource\",\"startTime\":86213.82000000007,\"duration\":54.71999999997206,\"initiatorType\":\"script\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":86213.82000000007,\"domainLookupStart\":86213.82000000007,\"domainLookupEnd\":86213.82000000007,\"connectStart\":86215.8999999999,\"secureConnectionStart\":86216.91500000004,\"connectEnd\":86242.7250000001,\"requestStart\":86243.02000000002,\"responseStart\":86258.37999999989,\"firstInterimResponseStart\":0,\"responseEnd\":86268.54000000004,\"transferSize\":54867,\"encodedBodySize\":54567,\"decodedBodySize\":283917,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":4,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893820979,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"performance_longtask\",\"payload\":{\"type\":\"perf\",\"longtasks\":[{\"name\":\"multiple-contexts\",\"entryType\":\"longtask\",\"startTime\":88136.69500000007,\"duration\":748,\"attribution\":[{\"name\":\"unknown\",\"entryType\":\"taskattribution\",\"startTime\":0,\"duration\":0,\"containerType\":\"window\",\"containerSrc\":\"\",\"containerId\":\"\",\"containerName\":\"\"}]}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893823808,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"performance_longtask\",\"payload\":{\"type\":\"perf\",\"longtasks\":[{\"name\":\"self\",\"entryType\":\"longtask\",\"startTime\":88899.91500000004,\"duration\":77,\"attribution\":[{\"name\":\"unknown\",\"entryType\":\"taskattribution\",\"startTime\":0,\"duration\":0,\"containerType\":\"window\",\"containerSrc\":\"\",\"containerId\":\"\",\"containerName\":\"\"}]}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893823808,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"performance_longtask\",\"payload\":{\"type\":\"perf\",\"longtasks\":[{\"name\":\"same-origin-descendant\",\"entryType\":\"longtask\",\"startTime\":89011.08499999996,\"duration\":70,\"attribution\":[{\"name\":\"unknown\",\"entryType\":\"taskattribution\",\"startTime\":0,\"duration\":0,\"containerType\":\"iframe\",\"containerSrc\":\"\",\"containerId\":\"\",\"containerName\":\"\"}]}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893823808,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"performance_longtask\",\"payload\":{\"type\":\"perf\",\"longtasks\":[{\"name\":\"self\",\"entryType\":\"longtask\",\"startTime\":89121.46999999997,\"duration\":79,\"attribution\":[{\"name\":\"unknown\",\"entryType\":\"taskattribution\",\"startTime\":0,\"duration\":0,\"containerType\":\"window\",\"containerSrc\":\"\",\"containerId\":\"\",\"containerName\":\"\"}]}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893823968,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"blank_screen\",\"payload\":{\"timestamp\":1771893825515,\"score\":0,\"screenshot\":\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAFA3PEY8MlBGQUZaVVBfeMiCeG5uePWvuZHI////////////////////////////////////////////////////2wBDAVVaWnhpeOuCguv/////////////////////////////////////////////////////////////////////////wAARCAEuAZwDASIAAhEBAxEB/8QAGQABAQEBAQEAAAAAAAAAAAAAAAECBQME/8QAMBABAQACAAQFAwMEAgMBAAAAAAECEQMSITETQVFSYRSRoQRCcSIygeFi8LHB8dH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/EABcRAQEBAQAAAAAAAAAAAAAAAAAhARH/2gAMAwEAAhEDEQA/APkBrDC5713gMi5Y5Y95YgIKAiiggoCCgIKAgoCCgIKAgoCCgIKAgrXLdbBgV6ThZXGXpqg8h658LLCyXVt9GLLLq9wZGpN2Seb08DLm0DxHtOBlZvc+7OXDyxyk6W30B5jVll1TGc2Uk8wZHv8AT5TvcUnAys3vH7g8UeuXDyxy5elt9GLNXVBkUBHYnaOQ687QFAAAAABx28OJyTUnW96wAuV5rtAAAAVFAAAAAAAAAAAAAAAAAAAa5rrX/pkAameUmpWQGsssstbu9IgCteLnvcuv4jADfi5+78Jlnlnd5XdZAUl1dzyQBvxc7+6k4uc/cwA1lncrvK7rOxAAAHXnaOQ687QFAAAAABxwAAAAAFRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEVAAAHXnaOQ687QFAAAAABxwXGbv/mgguWOvn5iAAAKigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIqAAAOvO0ch152gKAAAAADjrjZNyzcvyjfD4nh71N7BMrLJJLJ/LLfF4t4mtzWmAAAFQ2CibNgomzYKJs2CibNgomzYKJs2CibNgomzYKJs2CibNgomzYKJs2CibNgomzYKJs2CibNgqGwAAB152jkOvO0BQAAAAAcdvhcO8XOYz/NYb4WOdvNh3xA43CvCz5b/AIrDfFmfNzcTvkwAAA1jN9GVl0DXJbZMdXfo14HE9v5jM4lll327N/UZ/AJ4HE9v5YyxuNss6x6fU561ufZ55Zc1tvegkm2phblrHV/hmXXm1OJZlzb6gvhZ+08LPetLePle+tL9Rl8A8rNbi9NJllzW31QAAAAAAAAAAAAAAAAAAAAAAAAAAB152jkOvO0BQAAAAAcdZlZ2Rrh4y735QEyzyy/uu0a4mMxs5d6s82QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXnaOQ687QFAAAAABx2+Hw7nu45a0wsys7WwF4mNxvXKZX4u2QAAABoGdX0NVqdz/APAZ1fQ01O8S784ByZehcbO8b8Tp/azlnvyBfB4nt/K+BxPb+Y9J+puv7O3yX9Rb+y/f/QPPwOJ7fzE8HieyvT6n/h1+av1O9f0fkHl4WfpPXvGNPTPic2N/p1vU7+jz+AXkys3o5b6NTKySctS3K+QLODxMseaY9P5W8DiT9v5ax41wxkuN6fP+l+p/4fkGPA4nt/KZcLPGbymp/L0n6myScvb5/wBJlx5lLLh0vyDzw4eWf9s2t4Oc7yfeLw+LeHjZJ3+Wr+ol/Z+f9A8/Cz3rX5SY5XfTs9PH6y6vTy2mPGsmrN+u73BJweJe2NXwOJ7fy9J+qvs/LP1F8S5cvlrWwY8LP0n3h4PE9tbv6nLd6eXqfUX2/kHlljcbq63/ACs4edm5O/yvE4nid8evldrhxrjO3l060EnCzt1Ju/yeDxPbW/qMvTy13L+oyvaa6eoPLKXG6vdAAAAAAdedo5DrztAUAAAAAHHa4eubrrWr3Zb4WOGUvPlr0BM9bmpJ08mW+LMJrktvrtgAABplZfgFL0tMZbvWmuTP1gMrzz27OXK+ieHd+QL4k9pzz2p4d+EyxuN6gvNOvTv8lz69k5brfReS/AL4k9rG2phb5w8O+sA5516d/lmXVjXJWddQeni/Bzy+VZ8O/CZY3G6oNZZyydGbdoAAAAAAAAAAAAAAAAAAAAAOvO0ch152gKAAAAADjgAAAAAEuhZAJlZ2XxL8FwsutXZyZe2/YCZ34PEvpDky6f03r8JZrpZqgviZJcrl30amu6Aszsi89ZAamdnoeJkyA1z34Zl0ANc99Iltyu6gAAAAAAAAAAAAAAAAAAAAAAA687RyHXnaAoAAAAAOOAAAAAAsuuqAPTHPlyl1Onk349v7fy8AHv4//Hf8/wDx5Z3myt1rbIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA687RyHXnaAoAAAAAOOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA687RyHXnaAoAAAAAOODW8prp2+AZG7llZZpgTAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdedo5DrztAUAAAAAHHavEyrIHGuesgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA687RyHXnaAoAAAAAOOAAAAAAqKAACyW3Ult+C4ZTvjZ/hrh58mXNrb0vH3eks6fkHjJb2lXkyn7b9np405ZNdf+/8Aey48bCTtftAeGmuTP25fZq8T+vck184x6/UYbtmN3fgHz8uXtv2R9F/UY66S3+Y+fzAAAAAAAAAAAAAAAAAAAAAAAABAAHXnaOQ687QFAAAAABx1l156QBbd1AAAAVFBdAtmgZotQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAdedo5DrztAUAAAAAHHWefXSALe6AAAAqKCqmzYFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAB152jkOvO0BQAAAAAcdcbJ3iAFu+wAAACooLJaavoTKyaWZ6mtKlTV9Eb575pctzWgrICK1ccpN2dDkz9t+xc7ceV639RddMdX12Dx5cvbfscuXpfs9Lx8rd6n+UnGynlAeY1nlc8rle7ILcbO8Xky9t+yXK2a6fZ6ePl6QHl56a8PP2ZfZLd5W3zu3t9Tfb+QeXJl7b0+GXrONZlbMZNvIFktuoiy6svoW7uwQAAAAAAABeW9Oncls3q9zmv2AuNk35Pb9LwZxbbl/bPy8ue8uvJ7/pONMLccrqXtQevg8Diy44TVnnHxZY3HK43vLp0LxOFw5cueXd30rn55c+dyvndgzo03jJe6ZSS9OwMuvO0ch152gKAAAAADjrLr/4gBeoAAABsAXYgCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogC7TYAsuuxbvvUAHXnaOQ687QFAAAAAB//9k=\",\"serialized_dom\":\"
\"},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893820921,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"performance_longtask\",\"payload\":{\"type\":\"perf\",\"longtasks\":[{\"name\":\"self\",\"entryType\":\"longtask\",\"startTime\":90321.54000000004,\"duration\":221,\"attribution\":[{\"name\":\"unknown\",\"entryType\":\"taskattribution\",\"startTime\":0,\"duration\":0,\"containerType\":\"window\",\"containerSrc\":\"\",\"containerId\":\"\",\"containerName\":\"\"}]}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893825516,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"performance_longtask\",\"payload\":{\"type\":\"perf\",\"longtasks\":[{\"name\":\"self\",\"entryType\":\"longtask\",\"startTime\":90581.71500000008,\"duration\":61,\"attribution\":[{\"name\":\"unknown\",\"entryType\":\"taskattribution\",\"startTime\":0,\"duration\":0,\"containerType\":\"window\",\"containerSrc\":\"\",\"containerId\":\"\",\"containerName\":\"\"}]}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893825516,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"performance_longtask\",\"payload\":{\"type\":\"perf\",\"longtasks\":[{\"name\":\"multiple-contexts\",\"entryType\":\"longtask\",\"startTime\":90719.03499999992,\"duration\":89,\"attribution\":[{\"name\":\"unknown\",\"entryType\":\"taskattribution\",\"startTime\":0,\"duration\":0,\"containerType\":\"window\",\"containerSrc\":\"\",\"containerId\":\"\",\"containerName\":\"\"}]}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893825516,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-lv-buz.vlabstatic.com/obj/image-lvweb-buz/common/font/FZYASHJW-Regular.20251015.subset.ttf\",\"entryType\":\"resource\",\"startTime\":90593.44999999995,\"duration\":67.44500000006519,\"initiatorType\":\"css\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":90593.44999999995,\"domainLookupStart\":90593.44999999995,\"domainLookupEnd\":90593.44999999995,\"connectStart\":90593.44999999995,\"secureConnectionStart\":90593.44999999995,\"connectEnd\":90593.44999999995,\"requestStart\":90649.56000000006,\"responseStart\":90659.88500000001,\"firstInterimResponseStart\":0,\"responseEnd\":90660.89500000002,\"transferSize\":22496,\"encodedBodySize\":22196,\"decodedBodySize\":22196,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":71,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893825517,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:46 AM][ContentGeneratorTaskReportService] content_generator_task_submit_start {\\\"submitId\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"type\\\":\\\"\\\",\\\"generateType\\\":1,\\\"inputParamsStr\\\":\\\"\\\"}\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893826297,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-lv-buz.vlabstatic.com/obj/image-lvweb-buz/common/font/Montserrat-SemiBold.20250416.subset.ttf\",\"entryType\":\"resource\",\"startTime\":91608.7749999999,\"duration\":38.84000000008382,\"initiatorType\":\"css\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":91608.7749999999,\"domainLookupStart\":91608.7749999999,\"domainLookupEnd\":91608.7749999999,\"connectStart\":91608.7749999999,\"secureConnectionStart\":91608.7749999999,\"connectEnd\":91608.7749999999,\"requestStart\":91636.33499999996,\"responseStart\":91646.59000000008,\"firstInterimResponseStart\":0,\"responseEnd\":91647.61499999999,\"transferSize\":25796,\"encodedBodySize\":25496,\"decodedBodySize\":25496,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":108,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893826368,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:47 AM][ContentGeneratorTaskReportService] content_generator_task_query_start {\\\"submitId\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"type\\\":\\\"\\\",\\\"generateType\\\":1,\\\"historyId\\\":\\\"13489993616908\\\",\\\"generateId\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"inputParamsStr\\\":\\\"\\\",\\\"statusModel\\\":{\\\"statusCode\\\":42,\\\"recordStatus\\\":4,\\\"timeModel\\\":{\\\"createdTime\\\":1771893827644,\\\"estimatedQueueCostTime\\\":0,\\\"estimatedGenCostTime\\\":37000},\\\"queueInfo\\\":{\\\"priority\\\":3,\\\"queueIdx\\\":0,\\\"queueStatus\\\":2,\\\"queueLength\\\":0,\\\"pollingConfig\\\":{\\\"intervalSeconds\\\":30,\\\"timeoutSeconds\\\":86400},\\\"priorityQueueDisplayThreshold\\\":{\\\"vipQueuingTimeThreshold\\\":300,\\\"waitingTimeThreshold\\\":60},\\\"debugInfo\\\":\\\"{\\\\\\\"have_no_dreamina_queue_name\\\\\\\":true,\\\\\\\"dreamina_matrix_queue_name\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"have_no_queue_name\\\\\\\":false,\\\\\\\"queue_name\\\\\\\":\\\\\\\"high_aes_general_v50\\\\\\\",\\\\\\\"matrix_req_key\\\\\\\":\\\\\\\"MImageGen:high_aes_general_v50\\\\\\\",\\\\\\\"matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\"}\\\"}}}\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893827065,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:47 AM][WebsocketPollingManager:10016] 创建降级策略: racing\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893827066,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:47 AM][WebsocketPollingManager:10016] 初始化完成,使用策略: racing\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893827066,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:47 AM][WebsocketPollingManager:10016] 开始监听WebSocket消息,方法ID: 10016\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893827066,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:47 AM][WebsocketPollingManager:10016] 设置降级超时定时器: 10000ms\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893827066,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:47 AM][ContentGeneratorTaskReportService] content_generator_task_submit_end {\\\"submitId\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"type\\\":\\\"\\\",\\\"generateType\\\":1,\\\"historyId\\\":\\\"13489993616908\\\",\\\"generateId\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"inputParamsStr\\\":\\\"\\\",\\\"statusModel\\\":{\\\"statusCode\\\":42,\\\"recordStatus\\\":4,\\\"timeModel\\\":{\\\"createdTime\\\":1771893827644,\\\"estimatedQueueCostTime\\\":0,\\\"estimatedGenCostTime\\\":37000},\\\"queueInfo\\\":{\\\"priority\\\":3,\\\"queueIdx\\\":0,\\\"queueStatus\\\":2,\\\"queueLength\\\":0,\\\"pollingConfig\\\":{\\\"intervalSeconds\\\":30,\\\"timeoutSeconds\\\":86400},\\\"priorityQueueDisplayThreshold\\\":{\\\"vipQueuingTimeThreshold\\\":300,\\\"waitingTimeThreshold\\\":60},\\\"debugInfo\\\":\\\"{\\\\\\\"have_no_dreamina_queue_name\\\\\\\":true,\\\\\\\"dreamina_matrix_queue_name\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"have_no_queue_name\\\\\\\":false,\\\\\\\"queue_name\\\\\\\":\\\\\\\"high_aes_general_v50\\\\\\\",\\\\\\\"matrix_req_key\\\\\\\":\\\\\\\"MImageGen:high_aes_general_v50\\\\\\\",\\\\\\\"matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\"}\\\"}}}\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893827067,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/aigc_draft/generate?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&os=windows&web_component_open_flag=1&web_version=7.5.0&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"sign\":\"19724735691862919106b8c4808a6ce7\",\"device-time\":\"1771893826\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893826311},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893827061,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:43:48 GMT\",\"eagleid\":\"79e4822117718938273106935e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=594, cdn-cache;desc=MISS,edge;dur=63,origin;dur=663\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache7.l2cm9-6[663,0], cache13.cn3833[726,0]\",\"x-tt-logid\":\"20260224084347D8F218F0D45862717C7C\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3abe12f513916a96b0892b0c747dbb7c47b0c35f4e5258fb8b8e3653213edfb30741c0573fffb81268cec9cce8d5c7d47926cfdce946321cda3f0e7fe4b74b6e442516e2424f632bae7c4fe474f8a20b8d61a83c5fc6379be6a700f39da246b051\",\"x-tt-trace-id\":\"00-260224084347D8F218F0D45862717C7C-3CA91966710B1D13-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/aigc_draft/generate?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&os=windows&web_component_open_flag=1&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=djsxDcgXMsm1ME8-AXkz9e4NcEb0YW4cgZENvyD-DzoW\",\"entryType\":\"resource\",\"startTime\":91607.40500000003,\"duration\":742.7849999999162,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":91607.40500000003,\"domainLookupStart\":91607.40500000003,\"domainLookupEnd\":91607.40500000003,\"connectStart\":91607.40500000003,\"secureConnectionStart\":91607.40500000003,\"connectEnd\":91607.40500000003,\"requestStart\":91608.8500000001,\"responseStart\":92348.93999999994,\"firstInterimResponseStart\":0,\"responseEnd\":92350.18999999994,\"transferSize\":2236,\"encodedBodySize\":1936,\"decodedBodySize\":4568,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":594,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":63,\"description\":\"\"},{\"name\":\"origin\",\"duration\":663,\"description\":\"\"}]}},\"duration\":750},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893826311,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"action\",\"payload\":{\"start_time\":91582.50499999989,\"id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"type\":\"click\",\"target\":{\"name\":\"ANONYMOUS_SVG\",\"path\":\"div.toolbar > div.toolbar-actions > div > button.lv-btn.lv-btn.lv-btn-size.lv-btn-shape.lv-btn-icon-only.button.submit-button.submit-button.expand-transition-start[type=\\\"button\\\"] > svg\"},\"metrics\":{\"resource\":{\"count\":1},\"http\":{\"count\":1,\"duration\":742.7849999999162}},\"duration\":878.0400000000373,\"frontend_time\":135.25500000012107},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893826290,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":0.05}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"fetch\",\"request\":{\"method\":\"get\",\"timestamp\":1771893828943,\"url\":\"https://everphoto.jianying.com/sf/5/v5/GetUpdates?aid=324442&space_id=7436736040297038899&cursor=n_7492071223166238732&material=1&abilities=30\",\"headers\":{\"content-type\":\"application/json\",\"expect-real-status\":\"1\",\"x-ep-thirdparty-uid\":\"704135154117550\"}},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893829131,\"headers\":{\"content-type\":\"application/json; charset=utf-8\",\"x-tt-logid\":\"20260224084350D6884052232FB7258896\"},\"timing\":{\"name\":\"https://everphoto.jianying.com/sf/5/v5/GetUpdates?aid=324442&space_id=7436736040297038899&cursor=n_7492071223166238732&material=1&abilities=30\",\"entryType\":\"resource\",\"startTime\":94236.26000000001,\"duration\":185.82499999995343,\"initiatorType\":\"fetch\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":94236.26000000001,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":94422.08499999996,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":200,\"serverTiming\":[]}},\"duration\":188},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893828943,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"x-platform\":\"pc\",\"sign\":\"656c1e00cf94dfd5bcfaf031e32493e4\",\"device-time\":\"1771893831\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893831638},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893831918,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:43:52 GMT\",\"eagleid\":\"79e4822117718938326445079e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=161, cdn-cache;desc=MISS,edge;dur=12,origin;dur=240\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache26.l2ea120-5[240,0], cache13.cn3833[252,0]\",\"x-tt-logid\":\"202602240843529A46418A603C686CFE10\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3ab2c55d072c9cbc4143ed34a7b79eaabd0eae7951c4d5455a85fa40122db3870ca5c6a17eee571ce9ea11b509925e2b54a08bdb510fdb00c9d68e472d8cdab6bfd918465348d67e12d407eb78a917fd8ec3275525c7bc88deba55793d5274fc26\",\"x-tt-trace-id\":\"00-2602240843529A46418A603C686CFE10-57EF8455522CA21A-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=xXsxhcgXMsm1o%2Fb-AXkz9Hx7ciY0YW5wgZENvyDMyUop\",\"entryType\":\"resource\",\"startTime\":96933.11999999988,\"duration\":275.5150000001304,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":96933.11999999988,\"domainLookupStart\":96933.11999999988,\"domainLookupEnd\":96933.11999999988,\"connectStart\":96933.11999999988,\"secureConnectionStart\":96933.11999999988,\"connectEnd\":96933.11999999988,\"requestStart\":96941.18500000006,\"responseStart\":97208.03499999992,\"firstInterimResponseStart\":0,\"responseEnd\":97208.63500000001,\"transferSize\":2233,\"encodedBodySize\":1933,\"decodedBodySize\":4480,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":161,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":12,\"description\":\"\"},{\"name\":\"origin\",\"duration\":240,\"description\":\"\"}]}},\"duration\":280},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893831638,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"appid\":\"513695\",\"lan\":\"ZH\",\"sign\":\"e689d5fa536721dee8945eaa6efb01b0\",\"device-time\":\"1771893831\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\"},\"timestamp\":1771893831924},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893832055,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:43:53 GMT\",\"eagleid\":\"79e4822117718938329207063e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=31, cdn-cache;desc=MISS,edge;dur=65,origin;dur=48\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache23.l2cm9-6[48,0], cache13.cn3833[113,0]\",\"x-tt-logid\":\"20260224084352E0C9E9FBBB693EAAE45C\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3a8bfbc65b68dad73a3b0ba4f886cb1a5666297d0fe7fb27add108c5776d7225397d9af9d4c594f889f5b17c8277e6646e2bd819a0f5d149ea8718a4129b3d0bf41afa6f18a1764f0700dc3baa779f285d74d090d20f165d87a9fbbd1341a1cb1d\",\"x-tt-trace-id\":\"00-260224084352E0C9E9FBBB693EAAE45C-0BA2E31204CBB6BE-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"}},\"duration\":131},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893831924,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"name\":\"blank_screen_query_path\",\"type\":\"event\",\"metrics\":{},\"categories\":{\"dom_show\":\"[[\\\"div.video-record-nlt6eI\\\",\\\"div.content-DPogfx.ai-generated-record-content-hg5EL8\\\",\\\"div.responsive-container-msS_cP.responsive-container-qHd4jO\\\",\\\"div#item_539985ba-9cf8-4f0e-9737-86492c51f085_e500b442-53c4-431a-ae69-da306ae81f75.item-Xh64V7\\\",\\\"div#scroll-list-539985ba-9cf8-4f0e-9737-86492c51f085.scroll-list-gsJVWP\\\",\\\"div.\\\",\\\"div.virtual-list-gUs6jj\\\",\\\"div.scroll-container-j7wUS8\\\",\\\"div.virtual-list-container-rarVwb\\\",\\\"div.record-list-RjGugi.record-virtual-list\\\",\\\"div.record-list-container-YQhwuM\\\",\\\"div.entry-lav5_s\\\",\\\"div.content-TZbgMr\\\",\\\"div#dreamina-ui-configuration-content-wrapper.main-container-nXfW_A\\\",\\\"div.content-wrapper-cF1zaN\\\",\\\"div.container-moSF_y\\\",\\\"div.top-down-layer-ilr3Ve\\\",\\\"div#dreamina.root_bf55f\\\",\\\"div.global-dreamina-container\\\",\\\"div#csr-root.\\\",\\\"body.\\\",\\\"html.\\\"],[\\\"div.video-record-nlt6eI\\\",\\\"div.content-DPogfx.ai-generated-record-content-hg5EL8\\\",\\\"div.responsive-container-msS_cP.responsive-container-qHd4jO\\\",\\\"div#item_539985ba-9cf8-4f0e-9737-86492c51f085_e500b442-53c4-431a-ae69-da306ae81f75.item-Xh64V7\\\",\\\"div#scroll-list-539985ba-9cf8-4f0e-9737-86492c51f085.scroll-list-gsJVWP\\\",\\\"div.\\\",\\\"div.virtual-list-gUs6jj\\\",\\\"div.scroll-container-j7wUS8\\\",\\\"div.virtual-list-container-rarVwb\\\",\\\"div.record-list-RjGugi.record-virtual-list\\\",\\\"div.record-list-container-YQhwuM\\\",\\\"div.entry-lav5_s\\\",\\\"div.content-TZbgMr\\\",\\\"div#dreamina-ui-configuration-content-wrapper.main-container-nXfW_A\\\",\\\"div.content-wrapper-cF1zaN\\\",\\\"div.container-moSF_y\\\",\\\"div.top-down-layer-ilr3Ve\\\",\\\"div#dreamina.root_bf55f\\\",\\\"div.global-dreamina-container\\\",\\\"div#csr-root.\\\",\\\"body.\\\",\\\"html.\\\"],[\\\"div.empty-placeholder-dcs8S2\\\",\\\"div.top-placeholder-aEry7y\\\",\\\"div.top-placeholder-fTCjHC\\\",\\\"div#scroll-list-539985ba-9cf8-4f0e-9737-86492c51f085.scroll-list-gsJVWP\\\",\\\"div.\\\",\\\"div.virtual-list-gUs6jj\\\",\\\"div.scroll-container-j7wUS8\\\",\\\"div.virtual-list-container-rarVwb\\\",\\\"div.record-list-RjGugi.record-virtual-list\\\",\\\"div.record-list-container-YQhwuM\\\",\\\"div.entry-lav5_s\\\",\\\"div.content-TZbgMr\\\",\\\"div#dreamina-ui-configuration-content-wrapper.main-container-nXfW_A\\\",\\\"div.content-wrapper-cF1zaN\\\",\\\"div.container-moSF_y\\\",\\\"div.top-down-layer-ilr3Ve\\\",\\\"div#dreamina.root_bf55f\\\",\\\"div.global-dreamina-container\\\",\\\"div#csr-root.\\\",\\\"body.\\\",\\\"html.\\\"],[\\\"div.empty-placeholder-dcs8S2\\\",\\\"div.top-placeholder-aEry7y\\\",\\\"div.top-placeholder-fTCjHC\\\",\\\"div#scroll-list-539985ba-9cf8-4f0e-9737-86492c51f085.scroll-list-gsJVWP\\\",\\\"div.\\\",\\\"div.virtual-list-gUs6jj\\\",\\\"div.scroll-container-j7wUS8\\\",\\\"div.virtual-list-container-rarVwb\\\",\\\"div.record-list-RjGugi.record-virtual-list\\\",\\\"div.record-list-container-YQhwuM\\\",\\\"div.entry-lav5_s\\\",\\\"div.content-TZbgMr\\\",\\\"div#dreamina-ui-configuration-content-wrapper.main-container-nXfW_A\\\",\\\"div.content-wrapper-cF1zaN\\\",\\\"div.container-moSF_y\\\",\\\"div.top-down-layer-ilr3Ve\\\",\\\"div#dreamina.root_bf55f\\\",\\\"div.global-dreamina-container\\\",\\\"div#csr-root.\\\",\\\"body.\\\",\\\"html.\\\"]]\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893833527,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}}]}", + "method": "POST" +}); ; +fetch("https://mon.zijieapi.com/monitor_browser/collect/batch/?biz_id=cn_mweb", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"ev_type\":\"batch\",\"list\":[{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-lv-buz.vlabstatic.com/obj/image-lvweb-buz/ies/lvweb/dreamina_cn/static/media/record-loading-animation-v1.87ca7d66.mp4\",\"entryType\":\"resource\",\"startTime\":99637.19999999995,\"duration\":36.544999999925494,\"initiatorType\":\"video\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":99637.19999999995,\"domainLookupStart\":99637.19999999995,\"domainLookupEnd\":99637.19999999995,\"connectStart\":99637.19999999995,\"secureConnectionStart\":99637.19999999995,\"connectEnd\":99637.19999999995,\"requestStart\":99647.25,\"responseStart\":99661.5249999999,\"firstInterimResponseStart\":0,\"responseEnd\":99673.74499999988,\"transferSize\":300,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[{\"name\":\"inner\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893834382,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-lv-buz.vlabstatic.com/obj/image-lvweb-buz/ies/lvweb/dreamina_cn/static/media/record-loading-animation-v1.87ca7d66.mp4\",\"entryType\":\"resource\",\"startTime\":99673.11999999988,\"duration\":17.240000000223517,\"initiatorType\":\"video\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":99673.11999999988,\"domainLookupStart\":99673.11999999988,\"domainLookupEnd\":99673.11999999988,\"connectStart\":99673.11999999988,\"secureConnectionStart\":99673.11999999988,\"connectEnd\":99673.11999999988,\"requestStart\":99679.65999999992,\"responseStart\":99689.3600000001,\"firstInterimResponseStart\":0,\"responseEnd\":99690.3600000001,\"transferSize\":27070,\"encodedBodySize\":26770,\"decodedBodySize\":26770,\"responseStatus\":206,\"serverTiming\":[{\"name\":\"inner\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893834399,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-lv-buz.vlabstatic.com/obj/image-lvweb-buz/ies/lvweb/dreamina_cn/static/media/record-loading-animation-v1.87ca7d66.mp4\",\"entryType\":\"resource\",\"startTime\":99764.21999999997,\"duration\":28.475000000093132,\"initiatorType\":\"video\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":99764.21999999997,\"domainLookupStart\":99764.21999999997,\"domainLookupEnd\":99764.21999999997,\"connectStart\":99764.21999999997,\"secureConnectionStart\":99764.21999999997,\"connectEnd\":99764.21999999997,\"requestStart\":99767.43500000006,\"responseStart\":99777.7649999999,\"firstInterimResponseStart\":0,\"responseEnd\":99792.69500000007,\"transferSize\":354750,\"encodedBodySize\":354450,\"decodedBodySize\":354450,\"responseStatus\":0,\"serverTiming\":[{\"name\":\"inner\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893834502,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:57 AM][WebsocketPollingManager:10016] WebSocket超时(10000ms),触发降级到轮询\",\"type\":\"log\",\"level\":\"warn\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893837068,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:57 AM][WebsocketPollingManager:10016] 清除降级超时定时器\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893837068,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:43:57 AM][WebsocketPollingManager:10016] 降级到轮询,原因: timeout\",\"type\":\"log\",\"level\":\"warn\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893837068,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}}]}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=xfMDkOgXMsm1o%2Fb-AXkz9Hx7cOL0YW-cgZENvydSEzoM", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893851", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "2134fe58fd9975f7473ab058d4f1dc2c", + "sign-ver": "1", + "tdid": "", + "x-platform": "pc", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"submit_ids\":[\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\"]}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893851", + "lan": "ZH", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "299a9119c3e285cbc08a711e7d563c3e", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"count\":20,\"cursor\":\"0\"}", + "method": "POST" +}); ; +fetch("https://mon.zijieapi.com/monitor_browser/collect/batch/?biz_id=cn_mweb", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"ev_type\":\"batch\",\"list\":[{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"x-platform\":\"pc\",\"sign\":\"2134fe58fd9975f7473ab058d4f1dc2c\",\"device-time\":\"1771893851\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893851271},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893851605,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:12 GMT\",\"eagleid\":\"79e4822117718938522702269e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=231, cdn-cache;desc=MISS,edge;dur=13,origin;dur=300\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache56.l2ea120-5[300,0], cache13.cn3833[313,0]\",\"x-tt-logid\":\"202602240844124D683FEC7687A96D4ED8\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3afe5c6130a10e46061a773db9ee03035212a904bb7e87d4d071aeb6dacfd15f892113bece3ebdb491c13ffea6fe0b111fbb17d707264009ae6c940e4294d1134fcb7862e971133cf17488c6fc01d51591d5ca482a66825c04ea3032d5df0ede4c\",\"x-tt-trace-id\":\"00-2602240844124D683FEC7687A96D4ED8-71F8D87D191C5889-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=xfMDkOgXMsm1o%2Fb-AXkz9Hx7cOL0YW-cgZENvydSEzoM\",\"entryType\":\"resource\",\"startTime\":116565.41999999993,\"duration\":331.65500000002794,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":116565.41999999993,\"domainLookupStart\":116565.41999999993,\"domainLookupEnd\":116565.41999999993,\"connectStart\":116565.41999999993,\"secureConnectionStart\":116565.41999999993,\"connectEnd\":116565.41999999993,\"requestStart\":116567.47999999998,\"responseStart\":116895.11999999988,\"firstInterimResponseStart\":0,\"responseEnd\":116897.07499999995,\"transferSize\":4216,\"encodedBodySize\":3916,\"decodedBodySize\":14261,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":231,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":13,\"description\":\"\"},{\"name\":\"origin\",\"duration\":300,\"description\":\"\"}]}},\"duration\":334},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893851271,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"appid\":\"513695\",\"lan\":\"ZH\",\"sign\":\"299a9119c3e285cbc08a711e7d563c3e\",\"device-time\":\"1771893851\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\"},\"timestamp\":1771893851613},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893851724,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:12 GMT\",\"eagleid\":\"79e4822117718938526084569e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=30, cdn-cache;desc=MISS,edge;dur=24,origin;dur=71\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache30.l2cm9-6[71,0], cache13.cn3833[95,0]\",\"x-tt-logid\":\"202602240844127609FA1FF19723109AFA\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3a510ec6b138d7c781915b90c5ddb6da5cd74afc2187f46936d13a79f6ea7cc4501583679a00cccc98152a4e5f8ade4402ac5a84fb5ad3122f52f10cc901831da602798a4b558d1a5112640c84de1c90ee9bfd9871c379866d145aeb80c7726fa6\",\"x-tt-trace-id\":\"00-2602240844127609FA1FF19723109AFA-3EE66EC1A5428AAF-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"}},\"duration\":111},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893851613,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=vC1lCmE%2FWpFIZdAKI7yUmC9sG%2Bs%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":116972.33000000007,\"duration\":265.4299999999348,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":116972.33000000007,\"domainLookupStart\":116972.33000000007,\"domainLookupEnd\":116972.33000000007,\"connectStart\":116972.33000000007,\"secureConnectionStart\":116972.33000000007,\"connectEnd\":116972.33000000007,\"requestStart\":116973.63500000001,\"responseStart\":117235.07000000007,\"firstInterimResponseStart\":0,\"responseEnd\":117237.76000000001,\"transferSize\":12430,\"encodedBodySize\":12130,\"decodedBodySize\":12130,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":198,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":23,\"description\":\"\"},{\"name\":\"origin\",\"duration\":217,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893851946,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}}]}", + "method": "POST" +}); ; +fetch("https://everphoto.jianying.com/sf/5/v5/GetUpdates?aid=324442&space_id=7436736040297038899&cursor=n_7492071223166238732&material=1&abilities=30", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json", + "expect-real-status": "1", + "pragma": "no-cache", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "x-ep-thirdparty-uid": "704135154117550", + "x-everphoto-global-session-token": "CsABdblQiZw9HNKaE0LbOVLZZaHZCHp1jEHyFNVSZpzEH99Sg4Do1S11PDQi0hq5XNFcmraJZKhWGsiGyH5YaBayggz2cvwHhKoC50CHli+FQXvL5jVsOhxvFaXoSgXHflFxt1Qb0VOYpn66MGHGdIVkkLh4Kz2di/5aZ9FMtggwPrxIT8Wn9Cp2uqxXyma6JOupbg2ygC52SccQbXjXa/zATFafIO55Y59ZzNGpaANAmcoSE/1tz2hwbFWoJ/9Qt6kNGkkKPAAAAAAAAAAAAABQG5LgtCE9i65XVA0wPVUCxHnUNoQ5GX6sgXGnyaCAQWmq0G0nL1Dm3jJv4mBUDmNoOhD0uooOGJqMmcQLIgEDsDnl6BFgVFs=", + "cookie": "passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": null, + "method": "GET" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/get_unread_count?aid=513695&web_version=7.5.0&da_version=3.3.9&aigc_features=app_lip_sync", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893859", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "ebbac26279a528b6ca2a2a091d65aa16", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"notice_type_list\":[2,1]}", + "method": "POST" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"evpt_Sync_pullResult\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"message\\\":\\\"success\\\",\\\"entriesCount\\\":0,\\\"code\\\":0,\\\"duration\\\":211,\\\"initially\\\":0,\\\"hasNewData\\\":0,\\\"assetsCount\\\":0,\\\"packagesCount\\\":0,\\\"event_index\\\":1771894585757}\",\"local_time_ms\":1771893859154,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"evpt_Sync_pullResult\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"message\\\":\\\"success\\\",\\\"code\\\":0,\\\"duration\\\":211,\\\"assetsCount\\\":0,\\\"packagesCount\\\":0,\\\"entriesCount\\\":0,\\\"hasNewData\\\":0,\\\"initially\\\":0,\\\"event_index\\\":1771894585756}\",\"local_time_ms\":1771893859154,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"},\"local_time\":1771893861,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=vC1lCmE%2FWpFIZdAKI7yUmC9sG%2Bs%3D&format=.webp", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": null, + "method": "GET" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"abtest_exposure\",\"ab_sdk_version\":\"14902980\",\"params\":\"{\\\"ab_url\\\":\\\"https://jimeng.jianying.com/ai-tool/generate?type=image\\\"}\",\"local_time_ms\":1771893863965}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"}},{\"events\":[{\"event\":\"abtest_exposure\",\"ab_sdk_version\":\"15407184\",\"params\":\"{\\\"ab_url\\\":\\\"https://jimeng.jianying.com/ai-tool/generate?type=image\\\"}\",\"local_time_ms\":1771893864002}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"}}]", + "method": "POST" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"vip_function_details\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"action\\\":\\\"show\\\",\\\"enter_source\\\":\\\"remove_watermark_detailed_download\\\",\\\"right_id\\\":\\\"remove_watermark\\\",\\\"right_type\\\":\\\"remove_watermark\\\",\\\"right_main_type\\\":\\\"function\\\",\\\"right_is_aigc\\\":\\\"0\\\",\\\"right_block_type\\\":\\\"click\\\",\\\"right_count_type\\\":\\\"times\\\",\\\"right_subscribe_type\\\":\\\"free\\\",\\\"right_oneoff_mix_type\\\":\\\"free\\\",\\\"right_is_trial\\\":\\\"1\\\",\\\"right_trial_mode\\\":\\\"period_trial\\\",\\\"right_trial_type\\\":\\\"limit_times\\\",\\\"right_trial_limit_left\\\":\\\"-1\\\",\\\"event_index\\\":1771894585759}\",\"local_time_ms\":1771893864026,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"vip_function_details\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"action\\\":\\\"show\\\",\\\"enter_source\\\":\\\"remove_watermark_gallery_download\\\",\\\"right_id\\\":\\\"remove_watermark\\\",\\\"right_type\\\":\\\"remove_watermark\\\",\\\"right_main_type\\\":\\\"function\\\",\\\"right_is_aigc\\\":\\\"0\\\",\\\"right_block_type\\\":\\\"click\\\",\\\"right_count_type\\\":\\\"times\\\",\\\"right_subscribe_type\\\":\\\"free\\\",\\\"right_oneoff_mix_type\\\":\\\"free\\\",\\\"right_is_trial\\\":\\\"1\\\",\\\"right_trial_mode\\\":\\\"period_trial\\\",\\\"right_trial_type\\\":\\\"limit_times\\\",\\\"right_trial_limit_left\\\":\\\"-1\\\",\\\"event_index\\\":1771894585758}\",\"local_time_ms\":1771893862727,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"},\"local_time\":1771893866,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/get_history_queue_info?aid=513695&web_version=7.5.0&da_version=3.3.9&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=O7lmvcgXMsm1JLj-AXkz9GBYcKD0YW5MgZENvyp7ezq0", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893870", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "b455ce04243cab9429ffbb87850c5686", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"history_ids\":[\"13489993616908\"]}", + "method": "POST" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"generate_status_more\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"status\\\":\\\"generating\\\",\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"picture_id\\\":\\\"7610225894170348838\\\",\\\"event_index\\\":1771894585760}\",\"local_time_ms\":1771893870253,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"},\"local_time\":1771893872,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/52d4e578519c4057906a6ed43f78036f~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=QHNJxJ8LLBzBfhWR80cTsEwVu60%3D&format=.webp", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": null, + "method": "GET" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"page_stay_time\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"url\\\":\\\"https://jimeng.jianying.com/ai-tool/generate?type=image\\\",\\\"title\\\":\\\"即梦AI - 一站式AI创作平台\\\",\\\"duration\\\":9313,\\\"from\\\":\\\"from-onblur\\\",\\\"event_index\\\":1771894585761}\",\"local_time_ms\":1771893872966,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"},\"local_time\":1771893874,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://mon.zijieapi.com/monitor_browser/collect/batch/?biz_id=cn_mweb", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"ev_type\":\"batch\",\"list\":[{\"ev_type\":\"http\",\"payload\":{\"api\":\"fetch\",\"request\":{\"method\":\"get\",\"timestamp\":1771893858943,\"url\":\"https://everphoto.jianying.com/sf/5/v5/GetUpdates?aid=324442&space_id=7436736040297038899&cursor=n_7492071223166238732&material=1&abilities=30\",\"headers\":{\"content-type\":\"application/json\",\"expect-real-status\":\"1\",\"x-ep-thirdparty-uid\":\"704135154117550\"}},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893859153,\"headers\":{\"content-type\":\"application/json; charset=utf-8\",\"x-tt-logid\":\"20260224084420111EF5E600153EB6D59D\"},\"timing\":{\"name\":\"https://everphoto.jianying.com/sf/5/v5/GetUpdates?aid=324442&space_id=7436736040297038899&cursor=n_7492071223166238732&material=1&abilities=30\",\"entryType\":\"resource\",\"startTime\":124236.16500000004,\"duration\":206.5700000000652,\"initiatorType\":\"fetch\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":124236.16500000004,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":124442.7350000001,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":200,\"serverTiming\":[]}},\"duration\":210},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893858943,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"91954610-db03-42e5-8e5b-b232ca650032\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/get_unread_count?aid=513695&web_version=7.5.0&da_version=3.3.9&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"sign\":\"ebbac26279a528b6ca2a2a091d65aa16\",\"device-time\":\"1771893859\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893859931},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893860133,\"headers\":{\"content-length\":\"119\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:21 GMT\",\"eagleid\":\"79e4822117718938609248713e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=79, cdn-cache;desc=MISS,edge;dur=51,origin;dur=137\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"via\":\"cache8.l2cm9-6[137,0], cache13.cn3833[188,0]\",\"x-tt-logid\":\"202602240844218E901BBAEC05E89CCBD8\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3af7b3ccf4bdd3b3f580d2d4e3af62fe027f16bc54d3808bb989edca9d9ca5d0b22fe45570ac07e06f6a6824669efd1c99118745f8836d32e44153e2f9f187956ce696b667b1bd9155255af74c4a0afe87017c4bdf638546467970bb1065e351b1\",\"x-tt-trace-id\":\"00-2602240844218E901BBAEC05E89CCBD8-76A361A50BFEC0EB-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"}},\"duration\":202},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893859931,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-lv-buz.vlabstatic.com/obj/image-lvweb-buz/ies/lvweb/dreamina_cn/static/css/async/aigc-data-detail-feature-loader.37763303.css\",\"entryType\":\"resource\",\"startTime\":129227.71500000008,\"duration\":17.12999999988824,\"initiatorType\":\"link\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":129227.71500000008,\"domainLookupStart\":129227.71500000008,\"domainLookupEnd\":129227.71500000008,\"connectStart\":129227.71500000008,\"secureConnectionStart\":129227.71500000008,\"connectEnd\":129227.71500000008,\"requestStart\":129229.85499999998,\"responseStart\":129241.63500000001,\"firstInterimResponseStart\":0,\"responseEnd\":129244.84499999997,\"transferSize\":7275,\"encodedBodySize\":6975,\"decodedBodySize\":34252,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":103,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893863954,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://lf3-lv-buz.vlabstatic.com/obj/image-lvweb-buz/ies/lvweb/dreamina_cn/static/js/async/aigc-data-detail-feature-loader.c47d4725.js\",\"entryType\":\"resource\",\"startTime\":129228.45500000007,\"duration\":17.260000000009313,\"initiatorType\":\"script\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":129228.45500000007,\"domainLookupStart\":129228.45500000007,\"domainLookupEnd\":129228.45500000007,\"connectStart\":129228.45500000007,\"secureConnectionStart\":129228.45500000007,\"connectEnd\":129228.45500000007,\"requestStart\":129231.81000000006,\"responseStart\":129243.3999999999,\"firstInterimResponseStart\":0,\"responseEnd\":129245.71500000008,\"transferSize\":38054,\"encodedBodySize\":37754,\"decodedBodySize\":141860,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":5,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893863956,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:23 AM]获取应用下载配置失败: Error: 获取应用下载配置失败\",\"type\":\"log\",\"level\":\"error\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893863966,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:23 AM]获取应用下载配置失败: Error: 获取应用下载配置失败\",\"type\":\"log\",\"level\":\"error\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893863966,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:23 AM]获取应用下载配置失败: Error: 获取应用下载配置失败\",\"type\":\"log\",\"level\":\"error\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893863966,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"action\",\"payload\":{\"start_time\":129226.33000000007,\"id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"type\":\"click\",\"target\":{\"name\":\"ai-generated-image-record-card\",\"path\":\"div.content-container > div.image-card-container > div.container.image > div > img.image\"},\"metrics\":{\"resource\":{\"count\":2}},\"duration\":126.99499999987893,\"frontend_time\":126.99499999987893},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893863934,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"sdk_offset\":1055.5,\"sample_rate\":0.05}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=vC1lCmE%2FWpFIZdAKI7yUmC9sG%2Bs%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":129354.2250000001,\"duration\":28.59499999997206,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":129354.2250000001,\"domainLookupStart\":129354.2250000001,\"domainLookupEnd\":129354.2250000001,\"connectStart\":129354.2250000001,\"secureConnectionStart\":129354.2250000001,\"connectEnd\":129354.2250000001,\"requestStart\":129356.13500000001,\"responseStart\":129381.69500000007,\"firstInterimResponseStart\":0,\"responseEnd\":129382.82000000007,\"transferSize\":12430,\"encodedBodySize\":12130,\"decodedBodySize\":12130,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893864102,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"image\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=vC1lCmE%2FWpFIZdAKI7yUmC9sG%2Bs%3D&format=.webp\",\"source\":\"img\",\"dpr\":1,\"needCompress\":false,\"needSizeOptim\":true,\"needFormatOptim\":false,\"hitLocalCache\":false,\"hitCdnCache\":true,\"size\":12130,\"duration\":28.59499999997206,\"redirect\":0,\"dns\":0,\"tcp\":0,\"ssl\":0,\"request\":25.56000000005588,\"download\":1.125,\"timingDetail\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=vC1lCmE%2FWpFIZdAKI7yUmC9sG%2Bs%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":129354.2250000001,\"duration\":28.59499999997206,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":129354.2250000001,\"domainLookupStart\":129354.2250000001,\"domainLookupEnd\":129354.2250000001,\"connectStart\":129354.2250000001,\"secureConnectionStart\":129354.2250000001,\"connectEnd\":129354.2250000001,\"requestStart\":129356.13500000001,\"responseStart\":129381.69500000007,\"firstInterimResponseStart\":0,\"responseEnd\":129382.82000000007,\"transferSize\":12430,\"encodedBodySize\":12130,\"decodedBodySize\":12130,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":3,\"description\":\"\"}]},\"monitorVersion\":\"0.2.6\",\"imageSampleRate\":0.1,\"imagexType\":null,\"imagexVersion\":null,\"isLazyLoad\":true,\"width\":360,\"height\":203,\"viewerWidth\":156,\"viewerHeight\":87,\"format\":\"webp\",\"status\":200,\"resizeSavings\":2253},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893864144,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:720:720.webp?lk3s=43402efa&x-expires=1774224000&x-signature=82W3lXpIm7RiiynYjMTSuWS4jLI%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":129358.8999999999,\"duration\":218.92000000015832,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":129358.8999999999,\"domainLookupStart\":129358.8999999999,\"domainLookupEnd\":129358.8999999999,\"connectStart\":129358.8999999999,\"secureConnectionStart\":129358.8999999999,\"connectEnd\":129358.8999999999,\"requestStart\":129360.1499999999,\"responseStart\":129576.06499999994,\"firstInterimResponseStart\":0,\"responseEnd\":129577.82000000007,\"transferSize\":28212,\"encodedBodySize\":27912,\"decodedBodySize\":27912,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":44,\"description\":\"\"},{\"name\":\"origin\",\"duration\":167,\"description\":\"\"},{\"name\":\"inner\",\"duration\":158,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893864297,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"fetch\",\"request\":{\"method\":\"get\",\"timestamp\":1771893864102,\"url\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=vC1lCmE%2FWpFIZdAKI7yUmC9sG%2Bs%3D&format=.webp\",\"headers\":{}},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893864143,\"headers\":{\"cache-control\":\"max-age=31536000\",\"content-length\":\"12130\",\"content-type\":\"image/webp\",\"last-modified\":\"Tue, 24 Feb 2026 00:44:12 GMT\"},\"timing\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=vC1lCmE%2FWpFIZdAKI7yUmC9sG%2Bs%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":129395.22999999998,\"duration\":35.764999999897555,\"initiatorType\":\"fetch\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":129395.22999999998,\"domainLookupStart\":129395.22999999998,\"domainLookupEnd\":129395.22999999998,\"connectStart\":129395.22999999998,\"secureConnectionStart\":129395.22999999998,\"connectEnd\":129395.22999999998,\"requestStart\":129397.20999999996,\"responseStart\":129427.05499999993,\"firstInterimResponseStart\":0,\"responseEnd\":129430.99499999988,\"transferSize\":12430,\"encodedBodySize\":12130,\"decodedBodySize\":12130,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":6,\"description\":\"\"}]}},\"duration\":41},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893864102,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"ef4cffea-6062-4c19-b646-faa89e51d77e\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"action\",\"payload\":{\"start_time\":132374.95999999996,\"id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"type\":\"click\",\"target\":{\"name\":\"ANONYMOUS_SVG\",\"path\":\"div.operation-area > button.icon-button.close-button > svg > g > path\"},\"metrics\":{},\"duration\":100.48999999999069,\"frontend_time\":100.48999999999069},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893867083,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":0.05}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/get_history_queue_info?aid=513695&web_version=7.5.0&da_version=3.3.9&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"sign\":\"b455ce04243cab9429ffbb87850c5686\",\"device-time\":\"1771893870\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893870075},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893870251,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:31 GMT\",\"eagleid\":\"79e4822117718938710831074e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=57, cdn-cache;desc=MISS,edge;dur=12,origin;dur=135\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache58.l2ea120-5[135,0], cache13.cn3833[147,0]\",\"x-tt-logid\":\"20260224084431A4130370763EDD4C774E\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3a2989b26a306cb8875899d5e955b5f00b3a224c2432053dc35f56208aa21e72c7602f77fff9bb3d06289a72d6ff536ff8876141f4f270d7e8ee38e0d67d24632f3b1a35400059b92b6e7410cea0dd10e64634bd876895f4fef1eb9f7659a4d2cb\",\"x-tt-trace-id\":\"00-260224084431A4130370763EDD4C774E-0EE22E9766DCDE06-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/get_history_queue_info?aid=513695&web_version=7.5.0&da_version=3.3.9&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=O7lmvcgXMsm1JLj-AXkz9GBYcKD0YW5MgZENvyp7ezq0\",\"entryType\":\"resource\",\"startTime\":135372.7649999999,\"duration\":169.35499999998137,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":135372.7649999999,\"domainLookupStart\":135372.7649999999,\"domainLookupEnd\":135372.7649999999,\"connectStart\":135372.7649999999,\"secureConnectionStart\":135372.7649999999,\"connectEnd\":135372.7649999999,\"requestStart\":135376.49,\"responseStart\":135541.49,\"firstInterimResponseStart\":0,\"responseEnd\":135542.11999999988,\"transferSize\":715,\"encodedBodySize\":415,\"decodedBodySize\":768,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":57,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":12,\"description\":\"\"},{\"name\":\"origin\",\"duration\":135,\"description\":\"\"}]}},\"duration\":176},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893870075,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1e92720efb2d4c4589e58a7c2ca33645~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=BT9JZJyAF%2Bm%2FvVFrYyAY8F0abwM%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138653.94999999995,\"duration\":180.035000000149,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138653.94999999995,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138833.9850000001,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873559,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/2f879a420f7c4c7984a6e1ec1b50d138~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=ntYbSwev8Qz9%2FpcpuuI79knIbU0%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138654.29499999993,\"duration\":181.34000000008382,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138654.29499999993,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138835.635,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873559,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/52d4e578519c4057906a6ed43f78036f~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=BN85Qe7pHN8xnvjG9aP2TRiKWs0%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138654.6299999999,\"duration\":181.035000000149,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138654.6299999999,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138835.66500000004,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873560,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/59baa6d3e25740199f148f99cc3acea9~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=7LYYK47EtjvvWypSypIRRxfi%2Fs0%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138654.92500000005,\"duration\":180.7600000000093,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138654.92500000005,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138835.68500000006,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873560,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/99d00b3c9e164d368cbf492f89d5bf37~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=0hTdWYdY6w8seagzMRmYseI9viA%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138655.16999999993,\"duration\":180.54000000003725,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138655.16999999993,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138835.70999999996,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873560,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/27a651f37a76469db81bfdabec936bed~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=4vCEhJS41YlnXvTajAw99wkyexU%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138682.74499999988,\"duration\":152.9800000002142,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138682.74499999988,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138835.7250000001,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873560,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1e45b15d7dd646ebaf6a0f53da7ed9f4~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=d%2FjkUQu515H5lpuHU%2B5MXWduUNY%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138683.6499999999,\"duration\":185.86000000010245,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138683.6499999999,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138869.51,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873578,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/86dd618145544658a642fd9d070d7d76~tplv-tb4s082cfz-aigc_resize:480:480.webp?lk3s=43402efa&x-expires=1774224000&x-signature=wKM9hpLl1KgIlNnpRmmdKEx6Wfc%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138683.94999999995,\"duration\":185.84000000008382,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138683.94999999995,\"domainLookupStart\":0,\"domainLookupEnd\":0,\"connectStart\":0,\"secureConnectionStart\":0,\"connectEnd\":0,\"requestStart\":0,\"responseStart\":0,\"firstInterimResponseStart\":0,\"responseEnd\":138869.79000000004,\"transferSize\":0,\"encodedBodySize\":0,\"decodedBodySize\":0,\"responseStatus\":0,\"serverTiming\":[]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873578,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1e92720efb2d4c4589e58a7c2ca33645~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=YIqmDOXlAxkgek3jV69nLtj5JkU%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138819.24499999988,\"duration\":34.950000000186265,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138819.24499999988,\"domainLookupStart\":138819.24499999988,\"domainLookupEnd\":138819.24499999988,\"connectStart\":138819.24499999988,\"secureConnectionStart\":138819.24499999988,\"connectEnd\":138819.24499999988,\"requestStart\":138824.67999999993,\"responseStart\":138832.79000000004,\"firstInterimResponseStart\":0,\"responseEnd\":138854.19500000007,\"transferSize\":21278,\"encodedBodySize\":20978,\"decodedBodySize\":20978,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":5,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873608,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/2f879a420f7c4c7984a6e1ec1b50d138~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=T6cTJwOZ%2BcLYqUlAgFG4uDnDreI%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138819.85499999998,\"duration\":65.88000000012107,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138819.85499999998,\"domainLookupStart\":138819.85499999998,\"domainLookupEnd\":138819.85499999998,\"connectStart\":138819.85499999998,\"secureConnectionStart\":138819.85499999998,\"connectEnd\":138819.85499999998,\"requestStart\":138829.25,\"responseStart\":138858.21500000008,\"firstInterimResponseStart\":0,\"responseEnd\":138885.7350000001,\"transferSize\":24126,\"encodedBodySize\":23826,\"decodedBodySize\":23826,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":4,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873631,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/52d4e578519c4057906a6ed43f78036f~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=QHNJxJ8LLBzBfhWR80cTsEwVu60%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138820.36999999988,\"duration\":82.45000000018626,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138820.36999999988,\"domainLookupStart\":138820.36999999988,\"domainLookupEnd\":138820.36999999988,\"connectStart\":138820.36999999988,\"secureConnectionStart\":138820.36999999988,\"connectEnd\":138820.36999999988,\"requestStart\":138863.32000000007,\"responseStart\":138890.61999999988,\"firstInterimResponseStart\":0,\"responseEnd\":138902.82000000007,\"transferSize\":24040,\"encodedBodySize\":23740,\"decodedBodySize\":23740,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":4,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873631,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/59baa6d3e25740199f148f99cc3acea9~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=GCfVeOhDUhl2ZVN7DaAODRjo7Eg%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138820.86999999988,\"duration\":70.89500000001863,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138820.86999999988,\"domainLookupStart\":138820.86999999988,\"domainLookupEnd\":138820.86999999988,\"connectStart\":138820.86999999988,\"secureConnectionStart\":138820.86999999988,\"connectEnd\":138820.86999999988,\"requestStart\":138867.96500000008,\"responseStart\":138875.36999999988,\"firstInterimResponseStart\":0,\"responseEnd\":138891.7649999999,\"transferSize\":23006,\"encodedBodySize\":22706,\"decodedBodySize\":22706,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873631,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/99d00b3c9e164d368cbf492f89d5bf37~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=ZCTmBN6Uj%2FH8q2Z2zA77B7TaZvM%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138821.3999999999,\"duration\":78.86000000010245,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138821.3999999999,\"domainLookupStart\":138821.3999999999,\"domainLookupEnd\":138821.3999999999,\"connectStart\":138821.3999999999,\"secureConnectionStart\":138821.3999999999,\"connectEnd\":138821.3999999999,\"requestStart\":138881.08499999996,\"responseStart\":138887.875,\"firstInterimResponseStart\":0,\"responseEnd\":138900.26,\"transferSize\":30504,\"encodedBodySize\":30204,\"decodedBodySize\":30204,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873631,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/27a651f37a76469db81bfdabec936bed~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=k9mN8e1ktdlbjzyC9nmshxHs%2B3g%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138821.96500000008,\"duration\":122.30999999982305,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138821.96500000008,\"domainLookupStart\":138821.96500000008,\"domainLookupEnd\":138821.96500000008,\"connectStart\":138821.96500000008,\"secureConnectionStart\":138821.96500000008,\"connectEnd\":138821.96500000008,\"requestStart\":138894.74499999988,\"responseStart\":138921.65500000003,\"firstInterimResponseStart\":0,\"responseEnd\":138944.2749999999,\"transferSize\":32306,\"encodedBodySize\":32006,\"decodedBodySize\":32006,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873665,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1e45b15d7dd646ebaf6a0f53da7ed9f4~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=usRxbFgBRcvAs30kJ9kmKhX1ov0%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138854.94500000007,\"duration\":90.97999999998137,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138854.94500000007,\"domainLookupStart\":138854.94500000007,\"domainLookupEnd\":138854.94500000007,\"connectStart\":138854.94500000007,\"secureConnectionStart\":138854.94500000007,\"connectEnd\":138854.94500000007,\"requestStart\":138905.81499999994,\"responseStart\":138932.3999999999,\"firstInterimResponseStart\":0,\"responseEnd\":138945.92500000005,\"transferSize\":29080,\"encodedBodySize\":28780,\"decodedBodySize\":28780,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":4,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873665,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/86dd618145544658a642fd9d070d7d76~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=ulPms%2BsfN6xKlfnTF%2BQi%2BmI6WWY%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138856.1100000001,\"duration\":90,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138856.1100000001,\"domainLookupStart\":138856.1100000001,\"domainLookupEnd\":138856.1100000001,\"connectStart\":138856.1100000001,\"secureConnectionStart\":138856.1100000001,\"connectEnd\":138856.1100000001,\"requestStart\":138907.68999999994,\"responseStart\":138935.67999999993,\"firstInterimResponseStart\":0,\"responseEnd\":138946.1100000001,\"transferSize\":32012,\"encodedBodySize\":31712,\"decodedBodySize\":31712,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":3,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873665,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"image\",\"payload\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/52d4e578519c4057906a6ed43f78036f~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=QHNJxJ8LLBzBfhWR80cTsEwVu60%3D&format=.webp\",\"source\":\"img\",\"dpr\":1,\"needCompress\":false,\"needSizeOptim\":true,\"needFormatOptim\":false,\"hitLocalCache\":false,\"hitCdnCache\":true,\"size\":23740,\"duration\":82.45000000018626,\"redirect\":0,\"dns\":0,\"tcp\":0,\"ssl\":0,\"request\":27.299999999813735,\"download\":12.200000000186265,\"timingDetail\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/52d4e578519c4057906a6ed43f78036f~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=QHNJxJ8LLBzBfhWR80cTsEwVu60%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138820.36999999988,\"duration\":82.45000000018626,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138820.36999999988,\"domainLookupStart\":138820.36999999988,\"domainLookupEnd\":138820.36999999988,\"connectStart\":138820.36999999988,\"secureConnectionStart\":138820.36999999988,\"connectEnd\":138820.36999999988,\"requestStart\":138863.32000000007,\"responseStart\":138890.61999999988,\"firstInterimResponseStart\":0,\"responseEnd\":138902.82000000007,\"transferSize\":24040,\"encodedBodySize\":23740,\"decodedBodySize\":23740,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":4,\"description\":\"\"}]},\"monitorVersion\":\"0.2.6\",\"imageSampleRate\":0.1,\"imagexType\":null,\"imagexVersion\":null,\"isLazyLoad\":true,\"width\":360,\"height\":360,\"viewerWidth\":196,\"viewerHeight\":196,\"format\":\"webp\",\"status\":200,\"resizeSavings\":7037},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873689,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"fetch\",\"request\":{\"method\":\"get\",\"timestamp\":1771893873633,\"url\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/52d4e578519c4057906a6ed43f78036f~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=QHNJxJ8LLBzBfhWR80cTsEwVu60%3D&format=.webp\",\"headers\":{}},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893873688,\"headers\":{\"cache-control\":\"max-age=31536000\",\"content-length\":\"23740\",\"content-type\":\"image/webp\",\"last-modified\":\"Mon, 23 Feb 2026 07:13:03 GMT\"},\"timing\":{\"name\":\"https://p3-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/52d4e578519c4057906a6ed43f78036f~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=QHNJxJ8LLBzBfhWR80cTsEwVu60%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":138925.86999999988,\"duration\":54.52000000001863,\"initiatorType\":\"fetch\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":138925.86999999988,\"domainLookupStart\":138925.86999999988,\"domainLookupEnd\":138925.86999999988,\"connectStart\":138925.86999999988,\"secureConnectionStart\":138925.86999999988,\"connectEnd\":138925.86999999988,\"requestStart\":138954.08499999996,\"responseStart\":138977.95999999996,\"firstInterimResponseStart\":0,\"responseEnd\":138980.3899999999,\"transferSize\":24040,\"encodedBodySize\":23740,\"decodedBodySize\":23740,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"HIT\"},{\"name\":\"edge\",\"duration\":3,\"description\":\"\"}]}},\"duration\":55},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893873633,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":1}}]}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=QXBY6OgXMsm1o%2Fb-AXkz9Hx7cz60YWRhgZENvypDWzoD", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893880", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "8fc3bf0e10f6a53ae7c0f8fb6c4060c6", + "sign-ver": "1", + "tdid": "", + "x-platform": "pc", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"submit_ids\":[\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\"]}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=YfBY6OgXMsm1o%2Fb-AXkz9Hx7cz60YW-VgZENvypDozoe", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893880", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "8fc3bf0e10f6a53ae7c0f8fb6c4060c6", + "sign-ver": "1", + "tdid": "", + "x-platform": "pc", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"submit_ids\":[\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\"]}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=m7MY6cgXMsm1o%2Fb-AXkz9Hx7czf0YWRkgZENvypkUUop", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "app-sdk-version": "48.0.0", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893881", + "lan": "zh-Hans", + "loc": "cn", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "cd10f9d7d6a45a52bc58acf278a5314c", + "sign-ver": "1", + "tdid": "", + "x-platform": "pc", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"submit_ids\":[\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\"]}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893881", + "lan": "ZH", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "ba360efb1e59afe44e5d672d1224ec79", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"count\":20,\"cursor\":\"0\"}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893881", + "lan": "ZH", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "ba360efb1e59afe44e5d672d1224ec79", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"count\":20,\"cursor\":\"0\"}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/batch_collect?web_id=7605602965571765786", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "appid": "513695", + "cache-control": "no-cache", + "content-type": "application/json", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"events\":[{\"event_name\":\"server_generate_status\",\"params\":\"{\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"definition\\\":\\\"2k\\\",\\\"ratio\\\":\\\"1.7778\\\",\\\"prompt\\\":\\\"两个小马在一起跑步\\\",\\\"steps\\\":0.5,\\\"seed\\\":\\\"1357613421\\\",\\\"status\\\":\\\"success\\\",\\\"is_time_limited_free\\\":0,\\\"credits_need\\\":0,\\\"credits_now\\\":1180,\\\"generate_type\\\":1,\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"request_id\\\":\\\"\\\",\\\"picture_id\\\":\\\"7610225894170348838\\\",\\\"pe_ratio\\\":\\\"2560:1440\\\",\\\"action_type\\\":\\\"generate\\\",\\\"generate_app_name\\\":\\\"web\\\",\\\"prompt_cnt\\\":9,\\\"image_prompt_cnt\\\":0,\\\"prompt_source\\\":\\\"custom\\\",\\\"model_name\\\":\\\"图片5.0 Lite\\\",\\\"model_starling_key\\\":\\\"web_image_model_name_50\\\",\\\"model_key\\\":\\\"high_aes_general_v50\\\",\\\"enter_from\\\":\\\"click\\\",\\\"template_id\\\":\\\"0\\\",\\\"reference_cnt\\\":0,\\\"use_pre_llm\\\":0,\\\"generate_cnt\\\":1,\\\"is_box_select\\\":0,\\\"is_cutout\\\":0,\\\"is_agent_mode\\\":0,\\\"pe_target_num\\\":2,\\\"pe_is_group\\\":1,\\\"history_id\\\":\\\"13489993616908\\\",\\\"ab_tags\\\":\\\"high_aes_general_v50p_stream\\\",\\\"is_describe\\\":0,\\\"time_cost\\\":53885,\\\"event_index\\\":1771894585762}\"}],\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"}}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/mweb/v1/batch_collect?web_id=7605602965571765786", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "appid": "513695", + "cache-control": "no-cache", + "content-type": "application/json", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"events\":[{\"event_name\":\"server_generate_status\",\"params\":\"{\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"definition\\\":\\\"2k\\\",\\\"ratio\\\":\\\"1.7778\\\",\\\"prompt\\\":\\\"两个小马在一起跑步\\\",\\\"steps\\\":0.5,\\\"seed\\\":\\\"1357613421\\\",\\\"status\\\":\\\"success\\\",\\\"is_time_limited_free\\\":0,\\\"credits_need\\\":0,\\\"credits_now\\\":1180,\\\"generate_type\\\":1,\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"request_id\\\":\\\"\\\",\\\"picture_id\\\":\\\"7610225894170365222\\\",\\\"pe_ratio\\\":\\\"2560:1440\\\",\\\"action_type\\\":\\\"generate\\\",\\\"generate_app_name\\\":\\\"web\\\",\\\"prompt_cnt\\\":9,\\\"image_prompt_cnt\\\":0,\\\"prompt_source\\\":\\\"custom\\\",\\\"model_name\\\":\\\"图片5.0 Lite\\\",\\\"model_starling_key\\\":\\\"web_image_model_name_50\\\",\\\"model_key\\\":\\\"high_aes_general_v50\\\",\\\"enter_from\\\":\\\"click\\\",\\\"template_id\\\":\\\"0\\\",\\\"reference_cnt\\\":0,\\\"use_pre_llm\\\":0,\\\"generate_cnt\\\":1,\\\"is_box_select\\\":0,\\\"is_cutout\\\":0,\\\"is_agent_mode\\\":0,\\\"pe_target_num\\\":2,\\\"pe_is_group\\\":1,\\\"history_id\\\":\\\"13489993616908\\\",\\\"ab_tags\\\":\\\"high_aes_general_v50p_stream\\\",\\\"is_describe\\\":0,\\\"time_cost\\\":53886,\\\"event_index\\\":1771894585763}\"}],\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"}}", + "method": "POST" +}); ; +fetch("https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history", { + "headers": { + "accept": "application/json, text/plain, */*", + "accept-language": "zh-CN,zh;q=0.9", + "appid": "513695", + "appvr": "8.4.0", + "cache-control": "no-cache", + "content-type": "application/json", + "device-time": "1771893881", + "lan": "ZH", + "pf": "7", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "sign": "ba360efb1e59afe44e5d672d1224ec79", + "sign-ver": "1", + "tdid": "", + "cookie": "_isHitHomeHeaderRefreshExperiment=1; s_v_web_id=verify_mli2zh09_eQ5L9Cej_bFER_4ccU_9JK5_Ael0lBTb3f1K; COOKIE_CONSENT_PROMPT_CONFIG={%22status%22:1%2C%22settings%22:{%22firstPartyAnalytics%22:true%2C%22GoogleAnalytics%22:true}%2C%22updatedTime%22:1770817444874}; fpk1=148a20cd63817580d8e8d9df32cd9b08f2453b88009c7c8bebd01f333cce15c7626a440c525de2203bdc082bd9051722; passport_csrf_token=ce5085d40c0c9edf5268392eeba6903e; passport_csrf_token_default=ce5085d40c0c9edf5268392eeba6903e; n_mh=xSPw81I4URH-3hVkPcoqGh1J2A7uMjTD8qZw1F59WkQ; sid_guard=0b6873d7aa4f947b144dd55be06359ec%7C1770821461%7C31536000%7CThu%2C+11-Feb-2027+14%3A51%3A01+GMT; uid_tt=7ced300dac82637ad657f41cb285cdfd; uid_tt_ss=7ced300dac82637ad657f41cb285cdfd; sid_tt=0b6873d7aa4f947b144dd55be06359ec; sessionid=0b6873d7aa4f947b144dd55be06359ec; sessionid_ss=0b6873d7aa4f947b144dd55be06359ec; session_tlb_tag=sttt%7C19%7CC2hz16pPlHsUTdVb4GNZ7P________-tjvJ8OgKw-5e-zmSTtf2yhZkCkLhpu1O7odzc7jAax0U%3D; is_staff_user=false; sid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; ssid_ucp_v1=1.0.0-KGNhNzQzMDk0ZDliY2QwNzUwYjcxZDllMjQ2YjY5ZWRiNTU2YzdmNjAKHwiu1_Dtg42gARDVrrLMBhifrR8gDDDau4-EBjgIQCYaAmxxIiAwYjY4NzNkN2FhNGY5NDdiMTQ0ZGQ1NWJlMDYzNTllYw; user_spaces_idc={\"6954646182010290440\":\"hl\"}; dm_auid=6T58itIihnmLPAnsov+nbw==; uifid_temp=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf979487355215fd04954a5e33925193fc7ccbdd29b0b187b8d70ae376168de63643ab93f4025f47b9d1a4279a97bd4b92654a658b2b1; uifid=3d5c832fc871287d7ad4963d32df5aca8803a3d2a91cbed0592bf97948735521edf981832a5888f6de8426836c91e6e7beabc4eefe37adedf77629c420c674607ed44f52dd24901845b3081e04ecdd4837a6214df4a6ad9aa9cb58f1e731d13a4c2ec6dfaa71d3176186a2d994b505fddbdc62288e16eb34dc1ac099f7f4b6f3b86561b64b0ee189a363097d02fb2fd8570b6705b51a000f4d0c19176e726dc678a53a228ece78dd815cad3810392bb6; _v2_spipe_web_id=7606003060459978806; passport_mfa_token=CjjmvrvsaRSDPfoLf%2BDBmLAbuwJJDxiqC%2BHwu9ltw9GEkGilV%2BtOBusKn%2FFCFO6cwlFm6wgWDaK5mRpKCjwAAAAAAAAAAAAAUBQguICbvVY0ipQB7VhbH%2BFMdUuSBjo8WCjfD0mmn2DwVt3%2BYWeWtGtyM3BeLDy6Tw4QuOGJDhj2sdFsIAIiAQPFR%2FhM; _tea_web_id=7605602965571765786; DREAMINA_THEME=dark; odin_tt=24d7444414dbc3444791a95433f4d9953781e8e83bc9ac32cfe82c3f5fdf8dbbcca1d7ae88ef505ae0932f140a6785d9a46a7b376458f8cf2e5642679dca56ed; _uetsid=0cafbb40108711f1a52bb5009fae695d; _uetvid=b3c5085013b011f0a6cf3f171e4de2ae; ttwid=1|WfnGlJxqfilLYF7b-dzgFRlCRoYXBmnbtqai9ntlVwc|1771893824|43ab27aca3313957211fb20ea85fcd44fe2840f6c1e0fb1b2a292d30e1b9af08", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"count\":20,\"cursor\":\"0\"}", + "method": "POST" +}); ; +fetch("https://mcs.zijieapi.com/list", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json; charset=UTF-8", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "[{\"events\":[{\"event\":\"vip_function_details\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"action\\\":\\\"show\\\",\\\"enter_source\\\":\\\"generate_task_bottom_button_bar\\\",\\\"right_id\\\":\\\"image_basic_v5_2k\\\",\\\"right_type\\\":\\\"generate_img\\\",\\\"right_main_type\\\":\\\"aigc\\\",\\\"right_is_aigc\\\":\\\"1\\\",\\\"right_block_type\\\":\\\"click\\\",\\\"right_count_type\\\":\\\"times\\\",\\\"right_subscribe_type\\\":\\\"free\\\",\\\"right_oneoff_mix_type\\\":\\\"free\\\",\\\"right_is_trial\\\":\\\"1\\\",\\\"right_trial_mode\\\":\\\"period_trial\\\",\\\"right_trial_type\\\":\\\"limit_times\\\",\\\"right_trial_limit_left\\\":\\\"-1\\\",\\\"event_index\\\":1771894585767}\",\"local_time_ms\":1771893881597,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"generate_status_more\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"status\\\":\\\"success\\\",\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"picture_id\\\":\\\"7610225894170365222\\\",\\\"event_index\\\":1771894585766}\",\"local_time_ms\":1771893881531,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"generate_status_more\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"status\\\":\\\"success\\\",\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"picture_id\\\":\\\"7610225894170348838\\\",\\\"event_index\\\":1771894585765}\",\"local_time_ms\":1771893881531,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"perf_ai_image_generate\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"definition\\\":\\\"2k\\\",\\\"ratio\\\":\\\"1.7778\\\",\\\"prompt\\\":\\\"两个小马在一起跑步\\\",\\\"steps\\\":0.5,\\\"seed\\\":\\\"1357613421\\\",\\\"status\\\":\\\"success\\\",\\\"perf_pre_process_cost\\\":7,\\\"perf_gen_process_cost\\\":54895,\\\"perf_estimated_queue_cost\\\":0,\\\"perf_queue_cost_type\\\":\\\"actual\\\",\\\"perf_queue_cost\\\":43947,\\\"perf_server_total_cost\\\":54356,\\\"fail_item_count\\\":0,\\\"perf_post_process_cost\\\":329,\\\"perf_server_to_websocket_cost\\\":-799,\\\"perf_total_cost\\\":55231,\\\"perf_client_total_cost\\\":336,\\\"notification_type\\\":\\\"websocket_push\\\",\\\"is_time_limited_free\\\":0,\\\"credits_need\\\":0,\\\"credits_now\\\":1180,\\\"generate_type\\\":1,\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"request_id\\\":\\\"\\\",\\\"picture_id\\\":\\\"7610225894170365222\\\",\\\"pe_ratio\\\":\\\"2560:1440\\\",\\\"action_type\\\":\\\"generate\\\",\\\"generate_app_name\\\":\\\"web\\\",\\\"prompt_cnt\\\":9,\\\"image_prompt_cnt\\\":0,\\\"prompt_source\\\":\\\"custom\\\",\\\"model_name\\\":\\\"图片5.0 Lite\\\",\\\"model_starling_key\\\":\\\"web_image_model_name_50\\\",\\\"model_key\\\":\\\"high_aes_general_v50\\\",\\\"enter_from\\\":\\\"click\\\",\\\"template_id\\\":\\\"0\\\",\\\"reference_cnt\\\":0,\\\"use_pre_llm\\\":0,\\\"generate_cnt\\\":1,\\\"is_box_select\\\":0,\\\"is_cutout\\\":0,\\\"is_agent_mode\\\":0,\\\"pe_target_num\\\":2,\\\"pe_is_group\\\":1,\\\"history_id\\\":\\\"13489993616908\\\",\\\"ab_tags\\\":\\\"high_aes_general_v50p_stream\\\",\\\"is_describe\\\":0,\\\"time_cost\\\":53886,\\\"perf_is_add_image\\\":\\\"0\\\",\\\"perf_is_agent_mode\\\":\\\"0\\\",\\\"generate_type_str\\\":\\\"1\\\",\\\"error_code\\\":\\\"0\\\",\\\"event_index\\\":1771894585764}\",\"local_time_ms\":1771893881531,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"generate_status\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"definition\\\":\\\"2k\\\",\\\"ratio\\\":\\\"1.7778\\\",\\\"prompt\\\":\\\"两个小马在一起跑步\\\",\\\"steps\\\":0.5,\\\"seed\\\":\\\"1357613421\\\",\\\"status\\\":\\\"success\\\",\\\"is_time_limited_free\\\":0,\\\"credits_need\\\":0,\\\"credits_now\\\":1180,\\\"generate_type\\\":1,\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"request_id\\\":\\\"\\\",\\\"picture_id\\\":\\\"7610225894170365222\\\",\\\"pe_ratio\\\":\\\"2560:1440\\\",\\\"action_type\\\":\\\"generate\\\",\\\"generate_app_name\\\":\\\"web\\\",\\\"prompt_cnt\\\":9,\\\"image_prompt_cnt\\\":0,\\\"prompt_source\\\":\\\"custom\\\",\\\"model_name\\\":\\\"图片5.0 Lite\\\",\\\"model_starling_key\\\":\\\"web_image_model_name_50\\\",\\\"model_key\\\":\\\"high_aes_general_v50\\\",\\\"enter_from\\\":\\\"click\\\",\\\"template_id\\\":\\\"0\\\",\\\"reference_cnt\\\":0,\\\"use_pre_llm\\\":0,\\\"generate_cnt\\\":1,\\\"is_box_select\\\":0,\\\"is_cutout\\\":0,\\\"is_agent_mode\\\":0,\\\"pe_target_num\\\":2,\\\"pe_is_group\\\":1,\\\"history_id\\\":\\\"13489993616908\\\",\\\"ab_tags\\\":\\\"high_aes_general_v50p_stream\\\",\\\"is_describe\\\":0,\\\"time_cost\\\":53886,\\\"event_index\\\":1771894585763}\",\"local_time_ms\":1771893881530,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"},{\"event\":\"generate_status\",\"params\":\"{\\\"_staging_flag\\\":0,\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\",\\\"url_path\\\":\\\"/ai-tool/generate\\\",\\\"referrer\\\":\\\"/home/\\\",\\\"page\\\":\\\"generation\\\",\\\"definition\\\":\\\"2k\\\",\\\"ratio\\\":\\\"1.7778\\\",\\\"prompt\\\":\\\"两个小马在一起跑步\\\",\\\"steps\\\":0.5,\\\"seed\\\":\\\"1357613421\\\",\\\"status\\\":\\\"success\\\",\\\"is_time_limited_free\\\":0,\\\"credits_need\\\":0,\\\"credits_now\\\":1180,\\\"generate_type\\\":1,\\\"submit_id\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"generate_id\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"request_id\\\":\\\"\\\",\\\"picture_id\\\":\\\"7610225894170348838\\\",\\\"pe_ratio\\\":\\\"2560:1440\\\",\\\"action_type\\\":\\\"generate\\\",\\\"generate_app_name\\\":\\\"web\\\",\\\"prompt_cnt\\\":9,\\\"image_prompt_cnt\\\":0,\\\"prompt_source\\\":\\\"custom\\\",\\\"model_name\\\":\\\"图片5.0 Lite\\\",\\\"model_starling_key\\\":\\\"web_image_model_name_50\\\",\\\"model_key\\\":\\\"high_aes_general_v50\\\",\\\"enter_from\\\":\\\"click\\\",\\\"template_id\\\":\\\"0\\\",\\\"reference_cnt\\\":0,\\\"use_pre_llm\\\":0,\\\"generate_cnt\\\":1,\\\"is_box_select\\\":0,\\\"is_cutout\\\":0,\\\"is_agent_mode\\\":0,\\\"pe_target_num\\\":2,\\\"pe_is_group\\\":1,\\\"history_id\\\":\\\"13489993616908\\\",\\\"ab_tags\\\":\\\"high_aes_general_v50p_stream\\\",\\\"is_describe\\\":0,\\\"time_cost\\\":53885,\\\"event_index\\\":1771894585762}\",\"local_time_ms\":1771893881530,\"is_bav\":0,\"ab_sdk_version\":\"91249282,14674564,13753331,15628237,15174027,15174145,15170779,15407184,15567817,15504129,15481561,14902980\",\"session_id\":\"95ac96eb-cba1-47fe-94a4-fbc644d0f38b\"}],\"user\":{\"user_unique_id\":\"704135154117550\",\"user_type\":12,\"user_id\":\"704135154117550\",\"user_is_login\":true,\"web_id\":\"7605602965571765786\"},\"header\":{\"app_id\":513695,\"app_version\":\"0.1.0\",\"os_name\":\"windows\",\"os_version\":\"10\",\"device_model\":\"Windows NT 10.0\",\"language\":\"zh-Hans\",\"platform\":\"web\",\"sdk_version\":\"5.0.53\",\"sdk_lib\":\"js\",\"timezone\":8,\"tz_offset\":-28800,\"resolution\":\"1536x864\",\"browser\":\"Chrome\",\"browser_version\":\"132.0.0.0\",\"referrer\":\"\",\"referrer_host\":\"\",\"width\":1536,\"height\":864,\"screen_width\":1536,\"screen_height\":864,\"tracer_data\":\"{\\\"$utm_from_url\\\":1}\",\"custom\":\"{\\\"channel_level1\\\":\\\"Direct\\\",\\\"channel_level2\\\":\\\"enter_url\\\",\\\"channel_level3\\\":\\\"\\\",\\\"channel_level4\\\":\\\"\\\",\\\"channel_from\\\":\\\"ut\\\",\\\"session_start_url\\\":\\\"https://jimeng.jianying.com/ai-tool/home/\\\",\\\"branch\\\":\\\"release/950\\\",\\\"theme_mode\\\":\\\"dark\\\",\\\"resolution\\\":480,\\\"gpu_exist\\\":\\\"1\\\",\\\"network_type\\\":\\\"4g\\\",\\\"downlink\\\":10,\\\"rtt\\\":0,\\\"web_id\\\":\\\"7605602965571765786\\\",\\\"is_new_framework\\\":1,\\\"store_country\\\":\\\"CN\\\",\\\"language\\\":\\\"zh-Hans\\\",\\\"is_vip\\\":1,\\\"user_subscribe_type\\\":\\\"standard\\\"}\"},\"local_time\":1771893883,\"verbose\":1}]", + "method": "POST" +}); ; +fetch("https://mon.zijieapi.com/monitor_browser/collect/batch/?biz_id=cn_mweb", { + "headers": { + "accept": "*/*", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "content-type": "application/json", + "pragma": "no-cache", + "priority": "u=1, i", + "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "cross-site", + "Referer": "https://jimeng.jianying.com/ai-tool/generate?type=image", + "Referrer-Policy": "no-referrer-when-downgrade" + }, + "body": "{\"ev_type\":\"batch\",\"list\":[{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:41 AM][WebsocketPollingManager:10016] 收到WebSocket消息: {\\\"historyId\\\":\\\"13489993616908\\\",\\\"submitId\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"priorityQueueTaskMeta\\\":{\\\"taskStatus\\\":3,\\\"historyId\\\":13489993616908,\\\"taskScore\\\":306.6436790103451},\\\"queueInfo\\\":{\\\"priority\\\":3,\\\"queueIdx\\\":0,\\\"queueStatus\\\":3,\\\"queueLength\\\":0,\\\"pollingConfig\\\":{\\\"intervalSeconds\\\":30,\\\"timeoutSeconds\\\":86400},\\\"priorityQueueDisplayThreshold\\\":{\\\"vipQueuingTimeThreshold\\\":300,\\\"waitingTimeThreshold\\\":60},\\\"debugInfo\\\":\\\"{\\\\\\\"have_no_dreamina_queue_name\\\\\\\":true,\\\\\\\"dreamina_matrix_queue_name\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"have_no_queue_name\\\\\\\":false,\\\\\\\"queue_name\\\\\\\":\\\\\\\"high_aes_general_v50\\\\\\\",\\\\\\\"matrix_req_key\\\\\\\":\\\\\\\"MImageGen:high_aes_general_v50\\\\\\\",\\\\\\\"matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\"}\\\"}}\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881223,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:41 AM][WebsocketPollingManager:10016] 释放资源\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881225,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:41 AM][WebsocketPollingManager:10016] 释放WebSocket处理器\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881225,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:41 AM][WebsocketPollingManager:10016] 消息处理结果: accepted=true, done=true\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881225,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:41 AM][WebsocketPollingManager:10016] 释放资源\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881225,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:41 AM][WebsocketPollingManager:10016] 释放WebSocket处理器\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881225,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"x-platform\":\"pc\",\"sign\":\"8fc3bf0e10f6a53ae7c0f8fb6c4060c6\",\"device-time\":\"1771893880\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893880950},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881242,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938819483820e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=194, cdn-cache;desc=MISS,edge;dur=63,origin;dur=210\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache30.l2cm9-6[210,0], cache13.cn3833[273,0]\",\"x-tt-logid\":\"20260224084442FF5351EED1B4E2770F1A\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3af73538558477decabd66d7160bce59b481767a10ee56813cec34c1fd8277b36e675caa1700f6d92f425f9314519b085b751acc94b60263ded07cae7c2c9bb14ab594b0e71fb6e8a4ab2a4e6267ef93d8891a30c608aed86dd67ab36d04b58a22\",\"x-tt-trace-id\":\"00-260224084442FF5351EED1B4E2770F1A-76738D1806587D56-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=QXBY6OgXMsm1o%2Fb-AXkz9Hx7cz60YWRhgZENvypDWzoD\",\"entryType\":\"resource\",\"startTime\":146244.54499999993,\"duration\":288.0700000000652,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":146244.54499999993,\"domainLookupStart\":146244.54499999993,\"domainLookupEnd\":146244.54499999993,\"connectStart\":146244.54499999993,\"secureConnectionStart\":146244.54499999993,\"connectEnd\":146244.54499999993,\"requestStart\":146246.55499999993,\"responseStart\":146531.93999999994,\"firstInterimResponseStart\":0,\"responseEnd\":146532.615,\"transferSize\":4700,\"encodedBodySize\":4400,\"decodedBodySize\":20932,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":194,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":63,\"description\":\"\"},{\"name\":\"origin\",\"duration\":210,\"description\":\"\"}]}},\"duration\":292},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893880950,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"x-platform\":\"pc\",\"sign\":\"8fc3bf0e10f6a53ae7c0f8fb6c4060c6\",\"device-time\":\"1771893880\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893880991},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881304,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938819894076e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=212, cdn-cache;desc=MISS,edge;dur=21,origin;dur=269\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache9.l2cm9-6[269,0], cache13.cn3833[290,0]\",\"x-tt-logid\":\"2026022408444215A92CE8C12130271BE0\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3ad997f1bc011a7cfd366c9495345054eec735ebaa5c2d209cb5547374a30da826b9e01c2a4d7d318118b83348ce53d23ac84d6e79c47a77bedbd0c9d1c8c91dfc2e4269abb7ad4930b6e73983f985602df897c0aa3ab221e9205735d6ffa3f777\",\"x-tt-trace-id\":\"00-26022408444215A92CE8C12130271BE0-613E5CD2919C01CB-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=YfBY6OgXMsm1o%2Fb-AXkz9Hx7cz60YW-VgZENvypDozoe\",\"entryType\":\"resource\",\"startTime\":146285.0149999999,\"duration\":310.73500000010245,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":146285.0149999999,\"domainLookupStart\":146285.0149999999,\"domainLookupEnd\":146285.0149999999,\"connectStart\":146285.0149999999,\"secureConnectionStart\":146285.0149999999,\"connectEnd\":146285.0149999999,\"requestStart\":146286.03000000003,\"responseStart\":146589.85499999998,\"firstInterimResponseStart\":0,\"responseEnd\":146595.75,\"transferSize\":4753,\"encodedBodySize\":4453,\"decodedBodySize\":20920,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":212,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":21,\"description\":\"\"},{\"name\":\"origin\",\"duration\":269,\"description\":\"\"}]}},\"duration\":313},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893880991,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"appid\":\"513695\",\"lan\":\"ZH\",\"sign\":\"ba360efb1e59afe44e5d672d1224ec79\",\"device-time\":\"1771893881\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\"},\"timestamp\":1771893881247},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881372,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938822466009e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=28, cdn-cache;desc=MISS,edge;dur=25,origin;dur=67\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache38.l2cm9-2[67,0], cache13.cn3833[92,0]\",\"x-tt-logid\":\"20260224084442F5A90089B14FDF7705A6\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3ac4f9ea674a9cf6436ead3be2763b8b3f4315d29676189eb1e472619185c146fbafb8926324989cdfaf402aa09c65af08c79684bcf67d11dd36bfc0a20a3df9daddf2509698b69f5828189ebe85dd70266b123d2e7163a2f4e89323342c805341\",\"x-tt-trace-id\":\"00-260224084442F5A90089B14FDF7705A6-2F2902534893DC0F-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"}},\"duration\":125},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881247,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"name\":\"perf_ai_image_generate\",\"type\":\"event\",\"metrics\":{\"steps\":0.5,\"perf_pre_process_cost\":7,\"perf_gen_process_cost\":54895,\"perf_estimated_queue_cost\":0,\"perf_queue_cost\":43947,\"perf_server_total_cost\":54356,\"fail_item_count\":0,\"perf_post_process_cost\":329,\"perf_server_to_websocket_cost\":-799,\"perf_total_cost\":55231,\"perf_client_total_cost\":336,\"is_time_limited_free\":0,\"credits_need\":0,\"credits_now\":1180,\"generate_type\":1,\"prompt_cnt\":9,\"image_prompt_cnt\":0,\"reference_cnt\":0,\"use_pre_llm\":0,\"generate_cnt\":1,\"is_box_select\":0,\"is_cutout\":0,\"is_agent_mode\":0,\"pe_target_num\":2,\"pe_is_group\":1,\"is_describe\":0,\"time_cost\":53886},\"categories\":{\"pc_sessionId\":\"\",\"app_channel\":\"\",\"pc_did\":\"\",\"branch\":\"release/950\",\"definition\":\"2k\",\"ratio\":\"1.7778\",\"prompt\":\"两个小马在一起跑步\",\"seed\":\"1357613421\",\"status\":\"success\",\"perf_queue_cost_type\":\"actual\",\"notification_type\":\"websocket_push\",\"submit_id\":\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\",\"generate_id\":\"20260224084347D8F218F0D45862717C7C\",\"request_id\":\"\",\"picture_id\":\"7610225894170365222\",\"pe_ratio\":\"2560:1440\",\"action_type\":\"generate\",\"generate_app_name\":\"web\",\"prompt_source\":\"custom\",\"model_name\":\"图片5.0 Lite\",\"model_starling_key\":\"web_image_model_name_50\",\"model_key\":\"high_aes_general_v50\",\"enter_from\":\"click\",\"template_id\":\"0\",\"history_id\":\"13489993616908\",\"ab_tags\":\"high_aes_general_v50p_stream\",\"perf_is_add_image\":\"0\",\"perf_is_agent_mode\":\"0\",\"generate_type_str\":\"1\",\"error_code\":\"0\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881531,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"custom\",\"payload\":{\"content\":\"[dreamina-global-logger][2/24/2026, 8:44:41 AM][ContentGeneratorTaskReportService] content_generator_task_query_end {\\\"submitId\\\":\\\"717c5e9b-d3ff-444d-8d22-85f59dd38da7\\\",\\\"type\\\":\\\"\\\",\\\"generateType\\\":\\\"1\\\",\\\"historyId\\\":\\\"13489993616908\\\",\\\"generateId\\\":\\\"20260224084347D8F218F0D45862717C7C\\\",\\\"statusModel\\\":{\\\"statusCode\\\":50,\\\"recordStatus\\\":2,\\\"errorMsg\\\":\\\"Success\\\",\\\"failStarlingMessage\\\":\\\"\\\",\\\"timeModel\\\":{\\\"createdTime\\\":1771893827644,\\\"finishedTime\\\":1771893882000,\\\"estimatedQueueCostTime\\\":0,\\\"estimatedGenCostTime\\\":43000},\\\"queueInfo\\\":{\\\"priority\\\":3,\\\"queueIdx\\\":0,\\\"queueStatus\\\":3,\\\"queueLength\\\":0,\\\"pollingConfig\\\":{\\\"intervalSeconds\\\":30,\\\"timeoutSeconds\\\":86400},\\\"priorityQueueDisplayThreshold\\\":{\\\"vipQueuingTimeThreshold\\\":300,\\\"waitingTimeThreshold\\\":60},\\\"debugInfo\\\":\\\"{\\\\\\\"have_no_dreamina_queue_name\\\\\\\":true,\\\\\\\"dreamina_matrix_queue_name\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"dreamina_matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"have_no_queue_name\\\\\\\":false,\\\\\\\"queue_name\\\\\\\":\\\\\\\"high_aes_general_v50\\\\\\\",\\\\\\\"matrix_req_key\\\\\\\":\\\\\\\"MImageGen:high_aes_general_v50\\\\\\\",\\\\\\\"matrix_second_req_key\\\\\\\":\\\\\\\"\\\\\\\"}\\\"}}}\",\"type\":\"log\",\"level\":\"info\",\"metrics\":{},\"categories\":{\"branch\":\"release/950\"}},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881531,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/7ade6c55c59b4807b39fdafe226a061b~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=t8RsvYciFQQDYQZgaUIt3XgVb6w%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":146638.93999999994,\"duration\":161.01500000013039,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":146638.93999999994,\"domainLookupStart\":146638.93999999994,\"domainLookupEnd\":146638.93999999994,\"connectStart\":146638.93999999994,\"secureConnectionStart\":146638.93999999994,\"connectEnd\":146638.93999999994,\"requestStart\":146642.34000000008,\"responseStart\":146795.71500000008,\"firstInterimResponseStart\":0,\"responseEnd\":146799.95500000007,\"transferSize\":16976,\"encodedBodySize\":16676,\"decodedBodySize\":16676,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":42,\"description\":\"\"},{\"name\":\"origin\",\"duration\":108,\"description\":\"\"},{\"name\":\"inner\",\"duration\":102,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881545,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"appid\":\"513695\",\"lan\":\"ZH\",\"sign\":\"ba360efb1e59afe44e5d672d1224ec79\",\"device-time\":\"1771893881\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\"},\"timestamp\":1771893881308},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881438,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938823146490e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=43, cdn-cache;desc=MISS,edge;dur=22,origin;dur=65\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache40.l2cm9-6[65,0], cache13.cn3833[87,0]\",\"x-tt-logid\":\"20260224084442665C4FE57ACD6371C0C9\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3ad210d245355e6cdd8ea5148afb82fe9c4edbb9b4cd03d5fc6bbcf707c71596e9b8b7b9a2544cf2ccc5564fad92ef9c0f351c56c718c93d8485bdfeb6d3378bcf7664f852904282c440c60b8474912da238b39ef34d0c3abb306253b2b4bb2b31\",\"x-tt-trace-id\":\"00-260224084442665C4FE57ACD6371C0C9-0A64AC5F21D8A516-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"}},\"duration\":130},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881308,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"x-platform\":\"pc\",\"sign\":\"cd10f9d7d6a45a52bc58acf278a5314c\",\"device-time\":\"1771893881\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\",\"loc\":\"cn\",\"lan\":\"zh-Hans\",\"app-sdk-version\":\"48.0.0\",\"appid\":\"513695\"},\"timestamp\":1771893881202},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881524,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938822015672e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=200, cdn-cache;desc=MISS,edge;dur=7,origin;dur=271\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache54.l2ea120-5[271,0], cache13.cn3833[278,0]\",\"x-tt-logid\":\"20260224084442386016622F03A26D867C\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3aa0acf1ff0796fd3b29f06d5bc5479c88a224a2cc80afe7c8143821d6d70cc35d10dbfc4609d3be6ac921b4ebcec62d243aa6edf028b6c06bc3120d9ce02bdb0aa5495db65a9ab08b11b46e473b224ed0ff5ae4e97302cd70b56054d04b66bf3a\",\"x-tt-trace-id\":\"00-260224084442386016622F03A26D867C-313B8AC31C77C855-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/get_history_by_ids?aid=513695&device_platform=web®ion=cn&webId=7605602965571765786&da_version=3.3.9&web_version=7.5.0&aigc_features=app_lip_sync&msToken=ihykpW25F6ZdjhjeVFqU1JlJcnS7q1jpt3V0MMj57KcgSYXexymGclx9WUAZR1KqlKf3iBxnkNxtzZj1u75VJDsZIxv72ralFzbne1AtshBzB1TFg5Ju2A%3D%3D&a_bogus=m7MY6cgXMsm1o%2Fb-AXkz9Hx7czf0YWRkgZENvypkUUop\",\"entryType\":\"resource\",\"startTime\":146496.68500000006,\"duration\":295.2449999998789,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":146496.68500000006,\"domainLookupStart\":146496.68500000006,\"domainLookupEnd\":146496.68500000006,\"connectStart\":146496.68500000006,\"secureConnectionStart\":146496.68500000006,\"connectEnd\":146496.68500000006,\"requestStart\":146498.47999999998,\"responseStart\":146790.08000000007,\"firstInterimResponseStart\":0,\"responseEnd\":146791.92999999993,\"transferSize\":4792,\"encodedBodySize\":4492,\"decodedBodySize\":20958,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":200,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":7,\"description\":\"\"},{\"name\":\"origin\",\"duration\":271,\"description\":\"\"}]}},\"duration\":322},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881202,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"resource\",\"payload\":{\"name\":\"https://p26-dreamina-sign.byteimg.com/tos-cn-i-tb4s082cfz/1f315f04e5c74478b17c0c11144e92fa~tplv-tb4s082cfz-aigc_resize:360:360.webp?lk3s=43402efa&x-expires=1774224000&x-signature=2%2Fl%2BO%2ByjZ69tyyuBpqEMYoh9uYM%3D&format=.webp\",\"entryType\":\"resource\",\"startTime\":146849.71500000008,\"duration\":120.48499999986961,\"initiatorType\":\"img\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":146849.71500000008,\"domainLookupStart\":146849.71500000008,\"domainLookupEnd\":146849.71500000008,\"connectStart\":146849.71500000008,\"secureConnectionStart\":146849.71500000008,\"connectEnd\":146849.71500000008,\"requestStart\":146851.9850000001,\"responseStart\":146969.4750000001,\"firstInterimResponseStart\":0,\"responseEnd\":146970.19999999995,\"transferSize\":12430,\"encodedBodySize\":12130,\"decodedBodySize\":12130,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":49,\"description\":\"\"},{\"name\":\"origin\",\"duration\":64,\"description\":\"\"},{\"name\":\"inner\",\"duration\":4,\"description\":\"\"}]},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881679,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":0.1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/batch_collect?web_id=7605602965571765786\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"appid\":\"513695\"},\"timestamp\":1771893881532},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881642,\"headers\":{\"content-length\":\"98\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938825297940e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=32, cdn-cache;desc=MISS,edge;dur=22,origin;dur=53\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"via\":\"cache38.l2cm9-2[53,0], cache13.cn3833[75,0]\",\"x-tt-logid\":\"202602240844425FFC80077308D06F931D\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3a14900263fbe6e2722234a3c9eb71e0f6df18a4d616a009e461cb5aa806a6c9c77805b2aded47434d298ad44c24cf1b057907e35903e966557e268312bc7680fe295cbb7039db32eecf01d7350feb21f5d757c2b75f3f8329689fa9566ad6ddf6\",\"x-tt-trace-id\":\"00-2602240844425FFC80077308D06F931D-6865E0155A6F6166-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/batch_collect?web_id=7605602965571765786\",\"entryType\":\"resource\",\"startTime\":146824.78000000003,\"duration\":104.68999999994412,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":146824.78000000003,\"domainLookupStart\":146824.78000000003,\"domainLookupEnd\":146824.78000000003,\"connectStart\":146824.78000000003,\"secureConnectionStart\":146824.78000000003,\"connectEnd\":146824.78000000003,\"requestStart\":146826.16999999993,\"responseStart\":146915.21999999997,\"firstInterimResponseStart\":0,\"responseEnd\":146929.46999999997,\"transferSize\":398,\"encodedBodySize\":98,\"decodedBodySize\":98,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":32,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":22,\"description\":\"\"},{\"name\":\"origin\",\"duration\":53,\"description\":\"\"}]}},\"duration\":110},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881532,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/mweb/v1/batch_collect?web_id=7605602965571765786\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"appid\":\"513695\"},\"timestamp\":1771893881533},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881649,\"headers\":{\"content-length\":\"98\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938825367979e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=21, cdn-cache;desc=MISS,edge;dur=22,origin;dur=61\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"via\":\"cache9.l2cm9-2[61,0], cache13.cn3833[83,0]\",\"x-tt-logid\":\"20260224084442F2C75B08C18605AC442B\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3a208114c1238e3362d62c19122f1eab3a28daf18355edfc2b29ea4b67010a58724b35b970fe9441190471f42c38d73bdc9ac440d47e6e10838b1a440fba58ed7d4a135d04c47f203999d310e7e8756a3e05ff51ac15ad8a3e7e534df02f73f179\",\"x-tt-trace-id\":\"00-260224084442F2C75B08C18605AC442B-12E125524A885F46-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"},\"timing\":{\"name\":\"https://jimeng.jianying.com/mweb/v1/batch_collect?web_id=7605602965571765786\",\"entryType\":\"resource\",\"startTime\":146824.78000000003,\"duration\":104.68999999994412,\"initiatorType\":\"xmlhttprequest\",\"deliveryType\":\"\",\"nextHopProtocol\":\"h2\",\"renderBlockingStatus\":\"non-blocking\",\"workerStart\":0,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":146824.78000000003,\"domainLookupStart\":146824.78000000003,\"domainLookupEnd\":146824.78000000003,\"connectStart\":146824.78000000003,\"secureConnectionStart\":146824.78000000003,\"connectEnd\":146824.78000000003,\"requestStart\":146826.16999999993,\"responseStart\":146915.21999999997,\"firstInterimResponseStart\":0,\"responseEnd\":146929.46999999997,\"transferSize\":398,\"encodedBodySize\":98,\"decodedBodySize\":98,\"responseStatus\":200,\"serverTiming\":[{\"name\":\"inner\",\"duration\":32,\"description\":\"\"},{\"name\":\"cdn-cache\",\"duration\":0,\"description\":\"MISS\"},{\"name\":\"edge\",\"duration\":22,\"description\":\"\"},{\"name\":\"origin\",\"duration\":53,\"description\":\"\"}]}},\"duration\":116},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881533,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"action_id\":\"1604f566-6181-4ebd-a5d8-80c900642674\",\"sdk_offset\":1055.5,\"sample_rate\":1}},{\"ev_type\":\"http\",\"payload\":{\"api\":\"xhr\",\"request\":{\"url\":\"https://jimeng.jianying.com/commerce/v1/benefits/user_credit_history\",\"method\":\"post\",\"headers\":{\"accept\":\"application/json, text/plain, */*\",\"content-type\":\"application/json\",\"appid\":\"513695\",\"lan\":\"ZH\",\"sign\":\"ba360efb1e59afe44e5d672d1224ec79\",\"device-time\":\"1771893881\",\"sign-ver\":\"1\",\"pf\":\"7\",\"appvr\":\"8.4.0\"},\"timestamp\":1771893881534},\"response\":{\"status\":200,\"is_custom_error\":false,\"timestamp\":1771893881680,\"headers\":{\"content-encoding\":\"br\",\"content-type\":\"application/json; charset=utf-8\",\"date\":\"Tue, 24 Feb 2026 00:44:42 GMT\",\"eagleid\":\"79e4822117718938825448037e\",\"server\":\"Tengine\",\"server-timing\":\"inner; dur=40, cdn-cache;desc=MISS,edge;dur=20,origin;dur=96\",\"strict-transport-security\":\"max-age=31536000; includeSubDomains; preload\",\"timing-allow-origin\":\"*\",\"tt_stable\":\"1\",\"vary\":\"Accept-Encoding\",\"via\":\"cache29.l2nu20-8[96,0], cache13.cn3833[116,0]\",\"x-tt-logid\":\"202602240844423579B00BE4C2DA710C34\",\"x-tt-trace-host\":\"01317a0b267e6f7b60df5311a11f49fe3a3932144bf41ab18680c84b8532b3007a3169b484af42199674ce56813c81f159d03cc51063df205eacaace2a24b3fd8fd2450a185ac72d8d5dcb1de1b856601c3c8328a85492450a3fa6f13724b14d1c89b168bab69b9880793edbe4a262ba0e\",\"x-tt-trace-id\":\"00-2602240844423579B00BE4C2DA710C34-47EB6C3D0F80BBF6-00\",\"x-tt-trace-tag\":\"id=03;cdn-cache=miss;type=dyn\"}},\"duration\":146},\"common\":{\"bid\":\"cn_mweb\",\"user_id\":\"704135154117550\",\"device_id\":\"ec92ab28-fedf-43fe-bc90-38c858bebf1a\",\"session_id\":\"2026022408421578356F9C41F3519F4FFA\",\"release\":\"1.0.10.5857\",\"env\":\"production\",\"url\":\"https://jimeng.jianying.com/ai-tool/generate?type=image\",\"timestamp\":1771893881534,\"sdk_version\":\"1.16.5\",\"sdk_name\":\"SDK_SLARDAR_WEB\",\"pid\":\"/ai-tool/generate\",\"view_id\":\"/ai-tool/generate_1771893759737\",\"context\":{\"ssrPreRenderContent\":\"both\",\"isAGWInjectSuccess\":\"true\",\"idc\":\"lf\",\"hasHidden\":\"false\",\"renderCacheStatus\":\"hit\",\"homeRenderRaceResult\":\"finishRender\"},\"network_type\":\"4g\",\"sdk_offset\":1055.5,\"sample_rate\":1}}]}", + "method": "POST" +}); \ No newline at end of file diff --git a/doc/example-0.png b/doc/example-0.png new file mode 100644 index 0000000000000000000000000000000000000000..3969a94638703a5130b941a61d3d00115a898590 GIT binary patch literal 459267 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%0DYSd^T}l*nIkDt4kQ2*H6VAyGg}> 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 W!2S~V!0U?VyTo@qZ!y36G4o$vQ)%%4 literal 0 HcmV?d00001 diff --git a/doc/example-1.jpeg b/doc/example-1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c1019426efa39f0cb03475cb0e973ded75b38b63 GIT binary patch literal 315036 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 z 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.>p+Nn$!0CNr>DoWg4*evzG4P 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

    cbzMaeg59M)$hXYgSiR8f3=j?K4FzTe`MM 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" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@hapi/bourne": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz", + "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==", + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz", + "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/formidable": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-2.0.6.tgz", + "integrity": "sha512-L4HcrA05IgQyNYJj6kItuIkXrInJvsXTPC5B1i64FggWKKqSL+4hgt7asiSNva75AoLQjq29oPxFfU4GAQ6Z2w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/luxon": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz", + "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", + "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.14.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.12.tgz", + "integrity": "sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", + "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/bundle-require": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", + "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "license": "MIT", + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/co-body": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz", + "integrity": "sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==", + "license": "MIT", + "dependencies": { + "inflation": "^2.0.0", + "qs": "^6.4.0", + "raw-body": "^2.2.0", + "type-is": "^1.6.14" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/copy-to": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz", + "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==", + "license": "MIT" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cron": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/cron/-/cron-3.1.7.tgz", + "integrity": "sha512-tlBg7ARsAMQLzgwqVxy8AZl/qlTc5nibqYwtNGoCrd+cV+ugI+tvZC1oT/8dFH8W455YrywGykx/KMmAqOr7Jw==", + "license": "MIT", + "dependencies": { + "@types/luxon": "~3.4.0", + "luxon": "~3.4.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/eventsource-parser": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", + "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==", + "license": "MIT", + "engines": { + "node": ">=14.18" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fix-dts-default-cjs-exports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz", + "integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "rollup": "^4.34.8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz", + "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==", + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "dezalgo": "^1.0.4", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "license": "MIT", + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "license": "MIT", + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.3.tgz", + "integrity": "sha512-zPPuIt+ku1iCpFBRwseMcPYQ1cJL8l60rSmKeOuGfOXyE6YnTBmf2aEFNL2HQGrD0cPcLO/t+v9RTgC+fwEh/g==", + "license": "MIT", + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.9.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-body": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-body/-/koa-body-5.0.0.tgz", + "integrity": "sha512-nHwEODrQGiyKBILCWO8QSS40C87cKr2cp3y/Cw8u9Z8w5t0CdSkGm3+y9WK5BIAlPpo9tTw5RtSbxpVyG79vmw==", + "license": "MIT", + "dependencies": { + "@types/formidable": "^2.0.4", + "co-body": "^5.1.1", + "formidable": "^2.0.1" + } + }, + "node_modules/koa-bodyparser": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz", + "integrity": "sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w==", + "license": "MIT", + "dependencies": { + "co-body": "^6.0.0", + "copy-to": "^2.0.1", + "type-is": "^1.6.18" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/koa-bodyparser/node_modules/co-body": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.2.0.tgz", + "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==", + "license": "MIT", + "dependencies": { + "@hapi/bourne": "^3.0.0", + "inflation": "^2.0.0", + "qs": "^6.5.2", + "raw-body": "^2.3.3", + "type-is": "^1.6.16" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "license": "MIT" + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "license": "MIT", + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/koa-range": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/koa-range/-/koa-range-0.3.0.tgz", + "integrity": "sha512-Ich3pCz6RhtbajYXRWjIl6O5wtrLs6kE3nkXc9XmaWe+MysJyZO7K4L3oce1Jpg/iMgCbj+5UCiMm/rqVtcDIg==", + "license": "MIT", + "dependencies": { + "stream-slice": "^0.1.2" + }, + "engines": { + "node": ">=7" + } + }, + "node_modules/koa-router": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/koa-router/-/koa-router-12.0.1.tgz", + "integrity": "sha512-gaDdj3GtzoLoeosacd50kBBTnnh3B9AYxDThQUo4sfUyXdOhY6ku1qyZKW88tQCRgc3Sw6ChXYXWZwwgjOxE0w==", + "deprecated": "Please use @koa/router instead, starting from v9! ", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "http-errors": "^2.0.0", + "koa-compose": "^4.1.0", + "methods": "^1.1.2", + "path-to-regexp": "^6.2.1" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/koa-router/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa-router/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa2-cors": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/koa2-cors/-/koa2-cors-2.0.6.tgz", + "integrity": "sha512-JRCcSM4lamM+8kvKGDKlesYk2ASrmSTczDtGUnIadqMgnHU4Ct5Gw7Bxt3w3m6d6dy3WN0PU4oMP43HbddDEWg==", + "license": "MIT", + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/luxon": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", + "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz", + "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/playwright-core": { + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", + "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/randombytes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "integrity": "sha512-lDVjxQQFoCG1jcrP06LNo2lbWp4QTShEXnhActFBwYuHprllQV6VUpwreApsYqCgD+N1mHoqJ/BI/4eV4R2GYg==", + "license": "MIT" + }, + "node_modules/randomstring": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.3.0.tgz", + "integrity": "sha512-gY7aQ4i1BgwZ8I1Op4YseITAyiDiajeZOPQUbIq9TPGPhUm5FX59izIaOpmKbME1nmnEiABf28d9K2VSii6BBg==", + "license": "MIT", + "dependencies": { + "randombytes": "2.0.3" + }, + "bin": { + "randomstring": "bin/randomstring" + }, + "engines": { + "node": "*" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-slice": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tsup": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", + "integrity": "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-require": "^5.1.0", + "cac": "^6.7.14", + "chokidar": "^4.0.3", + "consola": "^3.4.0", + "debug": "^4.4.0", + "esbuild": "^0.27.0", + "fix-dts-default-cjs-exports": "^1.0.0", + "joycon": "^3.1.1", + "picocolors": "^1.1.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.34.8", + "source-map": "^0.7.6", + "sucrase": "^3.35.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.11", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..1b5d63d --- /dev/null +++ b/package.json @@ -0,0 +1,52 @@ +{ + "name": "jimeng-free-api", + "version": "0.8.6", + "description": "jimeng Free API Server", + "type": "module", + "main": "dist/index.js", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "directories": { + "dist": "dist" + }, + "files": [ + "dist/" + ], + "scripts": { + "dev": "tsup src/index.ts --format cjs,esm --sourcemap --dts --publicDir public --watch --onSuccess \"node --enable-source-maps --no-node-snapshot dist/index.js --port 8000\"", + "start": "node --enable-source-maps --no-node-snapshot dist/index.js", + "build": "tsup src/index.ts --format cjs,esm --sourcemap --dts --clean --publicDir public" + }, + "author": "Vinlic", + "license": "ISC", + "dependencies": { + "axios": "^1.6.7", + "colors": "^1.4.0", + "crc-32": "^1.2.2", + "cron": "^3.1.6", + "date-fns": "^3.3.1", + "eventsource-parser": "^1.1.2", + "form-data": "^4.0.0", + "fs-extra": "^11.2.0", + "koa": "^2.15.0", + "koa-body": "^5.0.0", + "koa-bodyparser": "^4.4.1", + "koa-range": "^0.3.0", + "koa-router": "^12.0.1", + "koa2-cors": "^2.0.6", + "lodash": "^4.17.21", + "mime": "^4.0.1", + "minimist": "^1.2.8", + "randomstring": "^1.3.0", + "semver": "^7.7.2", + "uuid": "^9.0.1", + "yaml": "^2.3.4", + "playwright-core": "^1.49.0" + }, + "devDependencies": { + "@types/lodash": "^4.14.202", + "@types/mime": "^3.0.4", + "tsup": "^8.0.2", + "typescript": "^5.3.3" + } +} \ No newline at end of file diff --git a/public/welcome.html b/public/welcome.html new file mode 100644 index 0000000..19de049 --- /dev/null +++ b/public/welcome.html @@ -0,0 +1,10 @@ + + + + + 🚀 服务已启动 + + +

    jimeng-free-api已启动!
    请通过LobeChat / NextChat / Dify等客户端或OpenAI SDK接入!

    + + \ No newline at end of file diff --git a/src/api/consts/exceptions.ts b/src/api/consts/exceptions.ts new file mode 100644 index 0000000..cbe8e7a --- /dev/null +++ b/src/api/consts/exceptions.ts @@ -0,0 +1,13 @@ +export default { + API_TEST: [-9999, 'API异常错误'], + API_REQUEST_PARAMS_INVALID: [-2000, '请求参数非法'], + API_REQUEST_FAILED: [-2001, '请求失败'], + API_TOKEN_EXPIRES: [-2002, 'Token已失效'], + API_FILE_URL_INVALID: [-2003, '远程文件URL非法'], + API_FILE_EXECEEDS_SIZE: [-2004, '远程文件超出大小'], + API_CHAT_STREAM_PUSHING: [-2005, '已有对话流正在输出'], + API_CONTENT_FILTERED: [-2006, '内容由于合规问题已被阻止生成'], + API_IMAGE_GENERATION_FAILED: [-2007, '图像生成失败'], + API_VIDEO_GENERATION_FAILED: [-2008, '视频生成失败'], + API_IMAGE_GENERATION_INSUFFICIENT_POINTS: [-2009, '即梦积分不足'], +} \ No newline at end of file diff --git a/src/api/controllers/chat.ts b/src/api/controllers/chat.ts new file mode 100644 index 0000000..554645a --- /dev/null +++ b/src/api/controllers/chat.ts @@ -0,0 +1,524 @@ +import _ from "lodash"; +import { PassThrough } from "stream"; + +import APIException from "@/lib/exceptions/APIException.ts"; +import EX from "@/api/consts/exceptions.ts"; +import logger from "@/lib/logger.ts"; +import util from "@/lib/util.ts"; +import { generateImages, DEFAULT_MODEL } from "./images.ts"; +import { generateVideo, generateSeedanceVideo, isSeedanceModel, DEFAULT_MODEL as DEFAULT_VIDEO_MODEL } from "./videos.ts"; + +// 最大重试次数 +const MAX_RETRY_COUNT = 3; +// 重试延迟 +const RETRY_DELAY = 5000; + +/** + * 解析模型 + * + * @param model 模型名称 + * @returns 模型信息 + */ +function parseModel(model: string) { + const [_model, size] = model.split(":"); + const [_, width, height] = /(\d+)[\W\w](\d+)/.exec(size) ?? []; + return { + model: _model, + width: size ? Math.ceil(parseInt(width) / 2) * 2 : 1024, + height: size ? Math.ceil(parseInt(height) / 2) * 2 : 1024, + }; +} + +/** + * 检测是否为视频生成请求 + * + * @param model 模型名称 + * @returns 是否为视频生成请求 + */ +function isVideoModel(model: string) { + return model.startsWith("jimeng-video") || model.startsWith("seedance-"); +} + +/** + * 同步对话补全 + * + * @param messages 参考gpt系列消息格式,多轮对话请完整提供上下文 + * @param refreshToken 用于刷新access_token的refresh_token + * @param assistantId 智能体ID,默认使用jimeng原版 + * @param retryCount 重试次数 + */ +export async function createCompletion( + messages: any[], + refreshToken: string, + _model = DEFAULT_MODEL, + retryCount = 0 +) { + return (async () => { + if (messages.length === 0) + throw new APIException(EX.API_REQUEST_PARAMS_INVALID, "消息不能为空"); + + const { model, width, height } = parseModel(_model); + logger.info(messages); + + // 检查是否为视频生成请求 + if (isVideoModel(_model)) { + try { + // 视频生成 + logger.info(`开始生成视频,模型: ${_model}`); + + let videoUrl: string; + + // 判断是否为 Seedance 模型 + if (isSeedanceModel(_model)) { + // Seedance 模型需要图片,在 chat 模式下不支持图片上传 + // 返回友好提示 + return { + id: util.uuid(), + model: _model, + object: "chat.completion", + choices: [ + { + index: 0, + message: { + role: "assistant", + content: `Seedance 2.0 是多图智能视频生成模型,需要上传图片才能生成视频。\n\n请使用 POST /v1/videos/generations API 接口:\n\n\`\`\`bash\ncurl -X POST http://localhost:3000/v1/videos/generations \\\n -H "Authorization: your_token" \\\n -F "model=jimeng-video-seedance-2.0" \\\n -F "prompt=@1 图片中的人物开始跳舞" \\\n -F "ratio=4:3" \\\n -F "duration=4" \\\n -F "files=@/path/to/image1.jpg" \\\n -F "files=@/path/to/image2.jpg"\n\`\`\`\n\n**参数说明:**\n- \`model\`: jimeng-video-seedance-2.0(推荐)、jimeng-video-seedance-2.0-fast(快速版)或 seedance-2.0(兼容)\n- \`prompt\`: 提示词,使用 @1, @2 等引用上传的图片\n- \`ratio\`: 视频比例 (默认 4:3)\n- \`duration\`: 视频时长 4-15 秒 (默认 4 秒)\n- \`files\`: 上传的图片文件(支持多张)`, + }, + finish_reason: "stop", + }, + ], + usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }, + created: util.unixTimestamp(), + }; + } + + videoUrl = await generateVideo( + _model, + messages[messages.length - 1].content, + { + ratio: "16:9", + resolution: "720p", // 默认分辨率 + }, + refreshToken + ); + + logger.info(`视频生成成功,URL: ${videoUrl}`); + return { + id: util.uuid(), + model: _model, + object: "chat.completion", + choices: [ + { + index: 0, + message: { + role: "assistant", + content: `![video](${videoUrl})\n`, + }, + finish_reason: "stop", + }, + ], + usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }, + created: util.unixTimestamp(), + }; + } catch (error) { + logger.error(`视频生成失败: ${error.message}`); + // 如果是积分不足等特定错误,直接抛出 + if (error instanceof APIException) { + throw error; + } + + // 其他错误返回友好提示 + return { + id: util.uuid(), + model: _model, + object: "chat.completion", + choices: [ + { + index: 0, + message: { + role: "assistant", + content: `生成视频失败: ${error.message}\n\n如果您在即梦官网看到已生成的视频,可能是获取结果时出现了问题,请前往即梦官网查看。`, + }, + finish_reason: "stop", + }, + ], + usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }, + created: util.unixTimestamp(), + }; + } + } else { + // 图像生成 + const imageUrls = await generateImages( + model, + messages[messages.length - 1].content, + { + width, + height, + }, + refreshToken + ); + + return { + id: util.uuid(), + model: _model || model, + object: "chat.completion", + choices: [ + { + index: 0, + message: { + role: "assistant", + content: imageUrls.reduce( + (acc, url, i) => acc + `![image_${i}](${url})\n`, + "" + ), + }, + finish_reason: "stop", + }, + ], + usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }, + created: util.unixTimestamp(), + }; + } + })().catch((err) => { + if (retryCount < MAX_RETRY_COUNT) { + logger.error(`Response error: ${err.stack}`); + logger.warn(`Try again after ${RETRY_DELAY / 1000}s...`); + return (async () => { + await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY)); + return createCompletion(messages, refreshToken, _model, retryCount + 1); + })(); + } + throw err; + }); +} + +/** + * 流式对话补全 + * + * @param messages 参考gpt系列消息格式,多轮对话请完整提供上下文 + * @param refreshToken 用于刷新access_token的refresh_token + * @param assistantId 智能体ID,默认使用jimeng原版 + * @param retryCount 重试次数 + */ +export async function createCompletionStream( + messages: any[], + refreshToken: string, + _model = DEFAULT_MODEL, + retryCount = 0 +) { + return (async () => { + const { model, width, height } = parseModel(_model); + logger.info(messages); + + const stream = new PassThrough(); + + if (messages.length === 0) { + logger.warn("消息为空,返回空流"); + stream.end("data: [DONE]\n\n"); + return stream; + } + + // 检查是否为视频生成请求 + if (isVideoModel(_model)) { + // 视频生成 + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model, + object: "chat.completion.chunk", + choices: [ + { + index: 0, + delta: { role: "assistant", content: "🎬 视频生成中,请稍候...\n这可能需要1-2分钟,请耐心等待" }, + finish_reason: null, + }, + ], + }) + + "\n\n" + ); + + // 视频生成 + logger.info(`开始生成视频,提示词: ${messages[messages.length - 1].content}`); + + // 进度更新定时器 + const progressInterval = setInterval(() => { + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model, + object: "chat.completion.chunk", + choices: [ + { + index: 0, + delta: { role: "assistant", content: "." }, + finish_reason: null, + }, + ], + }) + + "\n\n" + ); + }, 5000); + + // 设置超时,防止无限等待 + const timeoutId = setTimeout(() => { + clearInterval(progressInterval); + logger.warn(`视频生成超时(2分钟),提示用户前往即梦官网查看`); + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model, + object: "chat.completion.chunk", + choices: [ + { + index: 1, + delta: { + role: "assistant", + content: "\n\n视频生成时间较长(已等待2分钟),但视频可能仍在生成中。\n\n请前往即梦官网查看您的视频:\n1. 访问 https://jimeng.jianying.com/ai-tool/video/generate\n2. 登录后查看您的创作历史\n3. 如果视频已生成,您可以直接在官网下载或分享\n\n您也可以继续等待,系统将在后台继续尝试获取视频(最长约20分钟)。", + }, + finish_reason: "stop", + }, + ], + }) + + "\n\n" + ); + // 注意:这里不结束流,让后台继续尝试获取视频 + // stream.end("data: [DONE]\n\n"); + }, 2 * 60 * 1000); + + logger.info(`开始生成视频,模型: ${_model}, 提示词: ${messages[messages.length - 1].content.substring(0, 50)}...`); + + // 先给用户一个初始提示 + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model, + object: "chat.completion.chunk", + choices: [ + { + index: 0, + delta: { + role: "assistant", + content: "\n\n🎬 视频生成已开始,这可能需要几分钟时间...", + }, + finish_reason: null, + }, + ], + }) + + "\n\n" + ); + + generateVideo( + _model, + messages[messages.length - 1].content, + { ratio: "16:9", resolution: "720p" }, + refreshToken + ) + .then((videoUrl) => { + clearInterval(progressInterval); + clearTimeout(timeoutId); + + logger.info(`视频生成成功,URL: ${videoUrl}`); + + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model, + object: "chat.completion.chunk", + choices: [ + { + index: 1, + delta: { + role: "assistant", + content: `\n\n✅ 视频生成完成!\n\n![video](${videoUrl})\n\n您可以:\n1. 直接查看上方视频\n2. 使用以下链接下载或分享:${videoUrl}`, + }, + finish_reason: null, + }, + ], + }) + + "\n\n" + ); + + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model, + object: "chat.completion.chunk", + choices: [ + { + index: 2, + delta: { + role: "assistant", + content: "", + }, + finish_reason: "stop", + }, + ], + }) + + "\n\n" + ); + stream.end("data: [DONE]\n\n"); + }) + .catch((err) => { + clearInterval(progressInterval); + clearTimeout(timeoutId); + + logger.error(`视频生成失败: ${err.message}`); + logger.error(`错误详情: ${JSON.stringify(err)}`); + + // 记录详细错误信息 + logger.error(`视频生成失败: ${err.message}`); + logger.error(`错误详情: ${JSON.stringify(err)}`); + + // 构建更详细的错误信息 + let errorMessage = `⚠️ 视频生成过程中遇到问题: ${err.message}`; + + // 如果是历史记录不存在的错误,提供更具体的建议 + if (err.message.includes("历史记录不存在")) { + errorMessage += "\n\n可能原因:\n1. 视频生成请求已发送,但API无法获取历史记录\n2. 视频生成服务暂时不可用\n3. 历史记录ID无效或已过期\n\n建议操作:\n1. 请前往即梦官网查看您的视频是否已生成:https://jimeng.jianying.com/ai-tool/video/generate\n2. 如果官网已显示视频,但这里无法获取,可能是API连接问题\n3. 如果官网也没有显示,请稍后再试或重新生成视频"; + } else if (err.message.includes("获取视频生成结果超时")) { + errorMessage += "\n\n视频生成可能仍在进行中,但等待时间已超过系统设定的限制。\n\n请前往即梦官网查看您的视频:https://jimeng.jianying.com/ai-tool/video/generate\n\n如果您在官网上看到视频已生成,但这里无法显示,可能是因为:\n1. 获取结果的过程超时\n2. 网络连接问题\n3. API访问限制"; + } else { + errorMessage += "\n\n如果您在即梦官网看到已生成的视频,可能是获取结果时出现了问题。\n\n请访问即梦官网查看您的创作历史:https://jimeng.jianying.com/ai-tool/video/generate"; + } + + // 添加历史ID信息,方便用户在官网查找 + if (err.historyId) { + errorMessage += `\n\n历史记录ID: ${err.historyId}(您可以使用此ID在官网搜索您的视频)`; + } + + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model, + object: "chat.completion.chunk", + choices: [ + { + index: 1, + delta: { + role: "assistant", + content: `\n\n${errorMessage}`, + }, + finish_reason: "stop", + }, + ], + }) + + "\n\n" + ); + stream.end("data: [DONE]\n\n"); + }); + } else { + // 图像生成 + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model || model, + object: "chat.completion.chunk", + choices: [ + { + index: 0, + delta: { role: "assistant", content: "🎨 图像生成中,请稍候..." }, + finish_reason: null, + }, + ], + }) + + "\n\n" + ); + + generateImages( + model, + messages[messages.length - 1].content, + { width, height }, + refreshToken + ) + .then((imageUrls) => { + for (let i = 0; i < imageUrls.length; i++) { + const url = imageUrls[i]; + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model || model, + object: "chat.completion.chunk", + choices: [ + { + index: i + 1, + delta: { + role: "assistant", + content: `![image_${i}](${url})\n`, + }, + finish_reason: i < imageUrls.length - 1 ? null : "stop", + }, + ], + }) + + "\n\n" + ); + } + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model || model, + object: "chat.completion.chunk", + choices: [ + { + index: imageUrls.length + 1, + delta: { + role: "assistant", + content: "图像生成完成!", + }, + finish_reason: "stop", + }, + ], + }) + + "\n\n" + ); + stream.end("data: [DONE]\n\n"); + }) + .catch((err) => { + stream.write( + "data: " + + JSON.stringify({ + id: util.uuid(), + model: _model || model, + object: "chat.completion.chunk", + choices: [ + { + index: 1, + delta: { + role: "assistant", + content: `生成图片失败: ${err.message}`, + }, + finish_reason: "stop", + }, + ], + }) + + "\n\n" + ); + stream.end("data: [DONE]\n\n"); + }); + } + return stream; + })().catch((err) => { + if (retryCount < MAX_RETRY_COUNT) { + logger.error(`Response error: ${err.stack}`); + logger.warn(`Try again after ${RETRY_DELAY / 1000}s...`); + return (async () => { + await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY)); + return createCompletionStream( + messages, + refreshToken, + _model, + retryCount + 1 + ); + })(); + } + throw err; + }); +} diff --git a/src/api/controllers/core.ts b/src/api/controllers/core.ts new file mode 100644 index 0000000..8110ec3 --- /dev/null +++ b/src/api/controllers/core.ts @@ -0,0 +1,458 @@ +import { PassThrough } from "stream"; +import path from "path"; +import _ from "lodash"; +import mime from "mime"; +import axios, { AxiosRequestConfig, AxiosResponse } from "axios"; + +import APIException from "@/lib/exceptions/APIException.ts"; +import EX from "@/api/consts/exceptions.ts"; +import { createParser } from "eventsource-parser"; +import logger from "@/lib/logger.ts"; +import util from "@/lib/util.ts"; + +// 模型名称 +const MODEL_NAME = "jimeng"; +// 默认的AgentID +export const DEFAULT_ASSISTANT_ID = 513695; +// 版本号 +const VERSION_CODE = "8.4.0"; +// 平台代码 +const PLATFORM_CODE = "7"; +// 设备ID +const DEVICE_ID = Math.random() * 999999999999999999 + 7000000000000000000; +// WebID +export const WEB_ID = Math.random() * 999999999999999999 + 7000000000000000000; +// 用户ID +export const USER_ID = util.uuid(false); +// 最大重试次数 +const MAX_RETRY_COUNT = 3; +// 重试延迟 +const RETRY_DELAY = 5000; +// 伪装headers +const FAKE_HEADERS = { + Accept: "application/json, text/plain, */*", + "Accept-Encoding": "gzip, deflate, br, zstd", + "Accept-language": "zh-CN,zh;q=0.9", + "App-Sdk-Version": "48.0.0", + "Cache-control": "no-cache", + Appid: DEFAULT_ASSISTANT_ID, + Appvr: VERSION_CODE, + Lan: "zh-Hans", + Loc: "cn", + Origin: "https://jimeng.jianying.com", + Pragma: "no-cache", + Priority: "u=1, i", + Referer: "https://jimeng.jianying.com", + Pf: PLATFORM_CODE, + "Sec-Ch-Ua": + '"Google Chrome";v="132", "Chromium";v="132", "Not_A Brand";v="8"', + "Sec-Ch-Ua-Mobile": "?0", + "Sec-Ch-Ua-Platform": '"Windows"', + "Sec-Fetch-Dest": "empty", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Site": "same-origin", + "User-Agent": + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36", +}; +// 文件最大大小 +const FILE_MAX_SIZE = 100 * 1024 * 1024; + +/** + * 获取缓存中的access_token + * + * 目前jimeng的access_token是固定的,暂无刷新功能 + * + * @param refreshToken 用于刷新access_token的refresh_token + */ +export async function acquireToken(refreshToken: string): Promise { + return refreshToken; +} + +/** + * 生成cookie + */ +export function generateCookie(refreshToken: string) { + return [ + `_tea_web_id=${WEB_ID}`, + `is_staff_user=false`, + `store-region=cn-gd`, + `store-region-src=uid`, + `sid_guard=${refreshToken}%7C${util.unixTimestamp()}%7C5184000%7CMon%2C+03-Feb-2025+08%3A17%3A09+GMT`, + `uid_tt=${USER_ID}`, + `uid_tt_ss=${USER_ID}`, + `sid_tt=${refreshToken}`, + `sessionid=${refreshToken}`, + `sessionid_ss=${refreshToken}`, + `sid_tt=${refreshToken}` + ].join("; "); +} + +/** + * 获取浏览器格式的cookie数组(用于Playwright context.addCookies) + */ +export function getCookiesForBrowser(refreshToken: string) { + const domain = ".jianying.com"; + return [ + { name: "_tea_web_id", value: String(WEB_ID), domain, path: "/" }, + { name: "is_staff_user", value: "false", domain, path: "/" }, + { name: "store-region", value: "cn-gd", domain, path: "/" }, + { name: "store-region-src", value: "uid", domain, path: "/" }, + { name: "uid_tt", value: USER_ID, domain, path: "/" }, + { name: "uid_tt_ss", value: USER_ID, domain, path: "/" }, + { name: "sid_tt", value: refreshToken, domain, path: "/" }, + { name: "sessionid", value: refreshToken, domain, path: "/" }, + { name: "sessionid_ss", value: refreshToken, domain, path: "/" }, + ]; +} + +/** + * 获取积分信息 + * + * @param refreshToken 用于刷新access_token的refresh_token + */ +export async function getCredit(refreshToken: string) { + const { + credit: { gift_credit, purchase_credit, vip_credit } + } = await request("POST", "/commerce/v1/benefits/user_credit", refreshToken, { + data: {}, + headers: { + // Cookie: 'x-web-secsdk-uid=ef44bd0d-0cf6-448c-b517-fd1b5a7267ba; s_v_web_id=verify_m4b1lhlu_DI8qKRlD_7mJJ_4eqx_9shQ_s8eS2QLAbc4n; passport_csrf_token=86f3619c0c4a9c13f24117f71dc18524; passport_csrf_token_default=86f3619c0c4a9c13f24117f71dc18524; n_mh=9-mIeuD4wZnlYrrOvfzG3MuT6aQmCUtmr8FxV8Kl8xY; sid_guard=a7eb745aec44bb3186dbc2083ea9e1a6%7C1733386629%7C5184000%7CMon%2C+03-Feb-2025+08%3A17%3A09+GMT; uid_tt=59a46c7d3f34bda9588b93590cca2e12; uid_tt_ss=59a46c7d3f34bda9588b93590cca2e12; sid_tt=a7eb745aec44bb3186dbc2083ea9e1a6; sessionid=a7eb745aec44bb3186dbc2083ea9e1a6; sessionid_ss=a7eb745aec44bb3186dbc2083ea9e1a6; is_staff_user=false; sid_ucp_v1=1.0.0-KGRiOGY2ODQyNWU1OTk3NzRhYTE2ZmZhYmFjNjdmYjY3NzRmZGRiZTgKHgjToPCw0cwbEIXDxboGGJ-tHyAMMITDxboGOAhAJhoCaGwiIGE3ZWI3NDVhZWM0NGJiMzE4NmRiYzIwODNlYTllMWE2; ssid_ucp_v1=1.0.0-KGRiOGY2ODQyNWU1OTk3NzRhYTE2ZmZhYmFjNjdmYjY3NzRmZGRiZTgKHgjToPCw0cwbEIXDxboGGJ-tHyAMMITDxboGOAhAJhoCaGwiIGE3ZWI3NDVhZWM0NGJiMzE4NmRiYzIwODNlYTllMWE2; store-region=cn-gd; store-region-src=uid; user_spaces_idc={"7444764277623653426":"lf"}; ttwid=1|cxHJViEev1mfkjntdMziir8SwbU8uPNVSaeh9QpEUs8|1733966961|d8d52f5f56607427691be4ac44253f7870a34d25dd05a01b4d89b8a7c5ea82ad; _tea_web_id=7444838473275573797; fpk1=fa6c6a4d9ba074b90003896f36b6960066521c1faec6a60bdcb69ec8ddf85e8360b4c0704412848ec582b2abca73d57a; odin_tt=efe9dc150207879b88509e651a1c4af4e7ffb4cfcb522425a75bd72fbf894eda570bbf7ffb551c8b1de0aa2bfa0bd1be6c4157411ecdcf4464fcaf8dd6657d66', + Referer: "https://jimeng.jianying.com/ai-tool/image/generate", + // "Device-Time": 1733966964, + // Sign: "f3dbb824b378abea7c03cbb152b3a365" + } + }); + logger.info(`\n积分信息: \n赠送积分: ${gift_credit}, 购买积分: ${purchase_credit}, VIP积分: ${vip_credit}`); + return { + giftCredit: gift_credit, + purchaseCredit: purchase_credit, + vipCredit: vip_credit, + totalCredit: gift_credit + purchase_credit + vip_credit + } +} + +/** + * 接收今日积分 + * + * @param refreshToken 用于刷新access_token的refresh_token + */ +export async function receiveCredit(refreshToken: string) { + logger.info("正在收取今日积分...") + const { cur_total_credits, receive_quota } = await request("POST", "/commerce/v1/benefits/credit_receive", refreshToken, { + data: { + time_zone: "Asia/Shanghai" + }, + headers: { + Referer: "https://jimeng.jianying.com/ai-tool/image/generate" + } + }); + logger.info(`\n今日${receive_quota}积分收取成功\n剩余积分: ${cur_total_credits}`); + return cur_total_credits; +} + +/** + * 请求jimeng + * + * @param method 请求方法 + * @param uri 请求路径 + * @param params 请求参数 + * @param headers 请求头 + */ +export async function request( + method: string, + uri: string, + refreshToken: string, + options: AxiosRequestConfig = {} +) { + const token = await acquireToken(refreshToken); + const deviceTime = util.unixTimestamp(); + const sign = util.md5( + `9e2c|${uri.slice(-7)}|${PLATFORM_CODE}|${VERSION_CODE}|${deviceTime}||11ac` + ); + + const fullUrl = `https://jimeng.jianying.com${uri}`; + const requestParams = { + aid: DEFAULT_ASSISTANT_ID, + device_platform: "web", + region: "cn", + webId: WEB_ID, + da_version: "3.3.2", + web_component_open_flag: 1, + web_version: "7.5.0", + aigc_features: "app_lip_sync", + ...(options.params || {}), + }; + + const headers = { + ...FAKE_HEADERS, + Cookie: generateCookie(token), + "Device-Time": deviceTime, + Sign: sign, + "Sign-Ver": "1", + ...(options.headers || {}), + }; + + logger.info(`发送请求: ${method.toUpperCase()} ${fullUrl}`); + logger.info(`请求参数: ${JSON.stringify(requestParams)}`); + logger.info(`请求数据: ${JSON.stringify(options.data || {})}`); + + // 添加重试逻辑 + let retries = 0; + const maxRetries = 3; // 最大重试次数 + let lastError = null; + + while (retries <= maxRetries) { + try { + if (retries > 0) { + logger.info(`第 ${retries} 次重试请求: ${method.toUpperCase()} ${fullUrl}`); + // 重试前等待一段时间 + await new Promise(resolve => setTimeout(resolve, 1000 * retries)); + } + + const response = await axios.request({ + method, + url: fullUrl, + params: requestParams, + headers: headers, + timeout: 45000, // 增加超时时间到45秒 + validateStatus: () => true, // 允许任何状态码 + ..._.omit(options, "params", "headers"), + }); + + // 记录响应状态和头信息 + logger.info(`响应状态: ${response.status} ${response.statusText}`); + + // 流式响应直接返回response + if (options.responseType == "stream") return response; + + // 记录响应数据摘要 + const responseDataSummary = JSON.stringify(response.data).substring(0, 500) + + (JSON.stringify(response.data).length > 500 ? "..." : ""); + logger.info(`响应数据摘要: ${responseDataSummary}`); + + // 检查HTTP状态码 + if (response.status >= 400) { + logger.warn(`HTTP错误: ${response.status} ${response.statusText}`); + if (retries < maxRetries) { + retries++; + continue; + } + } + + return checkResult(response); + } + catch (error) { + lastError = error; + logger.error(`请求失败 (尝试 ${retries + 1}/${maxRetries + 1}): ${error.message}`); + + // 如果是网络错误或超时,尝试重试 + if ((error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT' || + error.message.includes('timeout') || error.message.includes('network')) && + retries < maxRetries) { + retries++; + continue; + } + + // 其他错误直接抛出 + break; + } + } + + // 所有重试都失败了,抛出最后一个错误 + logger.error(`请求失败,已重试 ${retries} 次: ${lastError.message}`); + if (lastError.response) { + logger.error(`响应状态: ${lastError.response.status}`); + logger.error(`响应数据: ${JSON.stringify(lastError.response.data)}`); + } + throw lastError; + } + + /** + * 预检查文件URL有效性 + * + * @param fileUrl 文件URL + */ + export async function checkFileUrl(fileUrl: string) { + if (util.isBASE64Data(fileUrl)) return; + const result = await axios.head(fileUrl, { + timeout: 15000, + validateStatus: () => true, + }); + if (result.status >= 400) + throw new APIException( + EX.API_FILE_URL_INVALID, + `File ${fileUrl} is not valid: [${result.status}] ${result.statusText}` + ); + // 检查文件大小 + if (result.headers && result.headers["content-length"]) { + const fileSize = parseInt(result.headers["content-length"], 10); + if (fileSize > FILE_MAX_SIZE) + throw new APIException( + EX.API_FILE_EXECEEDS_SIZE, + `File ${fileUrl} is not valid` + ); + } +} + +/** + * 上传文件 + * + * @param refreshToken 用于刷新access_token的refresh_token + * @param fileUrl 文件URL或BASE64数据 + * @param isVideoImage 是否是用于视频图像 + * @returns 上传结果,包含image_uri + */ +export async function uploadFile( + refreshToken: string, + fileUrl: string, + isVideoImage: boolean = false +) { + try { + logger.info(`开始上传文件: ${fileUrl}, 视频图像模式: ${isVideoImage}`); + + // 预检查远程文件URL可用性 + await checkFileUrl(fileUrl); + + let filename, fileData, mimeType; + // 如果是BASE64数据则直接转换为Buffer + if (util.isBASE64Data(fileUrl)) { + mimeType = util.extractBASE64DataFormat(fileUrl); + const ext = mime.getExtension(mimeType); + filename = `${util.uuid()}.${ext}`; + fileData = Buffer.from(util.removeBASE64DataHeader(fileUrl), "base64"); + logger.info(`处理BASE64数据,文件名: ${filename}, 类型: ${mimeType}, 大小: ${fileData.length}字节`); + } + // 下载文件到内存,如果您的服务器内存很小,建议考虑改造为流直传到下一个接口上,避免停留占用内存 + else { + filename = path.basename(fileUrl); + logger.info(`开始下载远程文件: ${fileUrl}`); + ({ data: fileData } = await axios.get(fileUrl, { + responseType: "arraybuffer", + // 100M限制 + maxContentLength: FILE_MAX_SIZE, + // 60秒超时 + timeout: 60000, + })); + logger.info(`文件下载完成,文件名: ${filename}, 大小: ${fileData.length}字节`); + } + + // 获取文件的MIME类型 + mimeType = mimeType || mime.getType(filename); + logger.info(`文件MIME类型: ${mimeType}`); + + // 构建FormData + const formData = new FormData(); + const blob = new Blob([fileData], { type: mimeType }); + formData.append('file', blob, filename); + + // 获取上传凭证 + logger.info(`请求上传凭证,场景: ${isVideoImage ? 'video_cover' : 'aigc_image'}`); + const uploadProofUrl = 'https://imagex.bytedanceapi.com/'; + const proofResult = await request( + 'POST', + '/mweb/v1/get_upload_image_proof', + refreshToken, + { + data: { + scene: isVideoImage ? 'video_cover' : 'aigc_image', + file_name: filename, + file_size: fileData.length, + } + } + ); + + if (!proofResult || !proofResult.proof_info) { + logger.error(`获取上传凭证失败: ${JSON.stringify(proofResult)}`); + throw new APIException(EX.API_REQUEST_FAILED, '获取上传凭证失败'); + } + + logger.info(`获取上传凭证成功`); + + // 上传文件 + const { proof_info } = proofResult; + logger.info(`开始上传文件到: ${uploadProofUrl}`); + + const uploadResult = await axios.post( + uploadProofUrl, + formData, + { + headers: { + ...proof_info.headers, + 'Content-Type': 'multipart/form-data', + }, + params: proof_info.query_params, + timeout: 60000, + validateStatus: () => true, // 允许任何状态码以便详细处理 + } + ); + + logger.info(`上传响应状态: ${uploadResult.status}`); + + if (!uploadResult || uploadResult.status !== 200) { + logger.error(`上传文件失败: 状态码 ${uploadResult?.status}, 响应: ${JSON.stringify(uploadResult?.data)}`); + throw new APIException(EX.API_REQUEST_FAILED, `上传文件失败: 状态码 ${uploadResult?.status}`); + } + + // 验证 proof_info.image_uri 是否存在 + if (!proof_info.image_uri) { + logger.error(`上传凭证中缺少 image_uri: ${JSON.stringify(proof_info)}`); + throw new APIException(EX.API_REQUEST_FAILED, '上传凭证中缺少 image_uri'); + } + + logger.info(`文件上传成功: ${proof_info.image_uri}`); + + // 返回上传结果 + return { + image_uri: proof_info.image_uri, + uri: proof_info.image_uri, + } + } catch (error) { + logger.error(`文件上传过程中发生错误: ${error.message}`); + throw error; + } +} + +/** + * 检查请求结果 + * + * @param result 结果 + */ +export function checkResult(result: AxiosResponse) { + const { ret, errmsg, data } = result.data; + if (!_.isFinite(Number(ret))) return result.data; + if (ret === '0') return data; + if (ret === '5000') + throw new APIException(EX.API_IMAGE_GENERATION_INSUFFICIENT_POINTS, `[无法生成图像]: 即梦积分可能不足,${errmsg}`); + throw new APIException(EX.API_REQUEST_FAILED, `[请求jimeng失败]: ${errmsg}`); +} + +/** + * Token切分 + * + * @param authorization 认证字符串 + */ +export function tokenSplit(authorization: string) { + return authorization.replace("Bearer ", "").split(","); +} + +/** + * 获取Token存活状态 + */ +export async function getTokenLiveStatus(refreshToken: string) { + const result = await request( + "POST", + "/passport/account/info/v2", + refreshToken, + { + params: { + account_sdk_source: "web", + }, + } + ); + try { + const { user_id } = checkResult(result); + return !!user_id; + } catch (err) { + return false; + } +} \ No newline at end of file diff --git a/src/api/controllers/images.ts b/src/api/controllers/images.ts new file mode 100644 index 0000000..76886df --- /dev/null +++ b/src/api/controllers/images.ts @@ -0,0 +1,1480 @@ +import _ from "lodash"; +import crypto from "crypto"; + +import APIException from "@/lib/exceptions/APIException.ts"; +import EX from "@/api/consts/exceptions.ts"; +import util from "@/lib/util.ts"; +import { getCredit, receiveCredit, request } from "./core.ts"; +import logger from "@/lib/logger.ts"; +import { getModelConfig } from "@/lib/configs/model-config.ts"; + +const DEFAULT_ASSISTANT_ID = 513695; +export const DEFAULT_MODEL = "jimeng-4.5"; +const DRAFT_VERSION = "3.3.4"; +const DRAFT_MIN_VERSION = "3.0.2"; + +// 支持的图片比例和分辨率配置 +const RESOLUTION_OPTIONS: { + [resolution: string]: { + [ratio: string]: { width: number; height: number; ratio: number }; + }; +} = { + "1k": { + "1:1": { width: 1024, height: 1024, ratio: 1 }, + "4:3": { width: 768, height: 1024, ratio: 4 }, + "3:4": { width: 1024, height: 768, ratio: 2 }, + "16:9": { width: 1024, height: 576, ratio: 3 }, + "9:16": { width: 576, height: 1024, ratio: 5 }, + "3:2": { width: 1024, height: 682, ratio: 7 }, + "2:3": { width: 682, height: 1024, ratio: 6 }, + "21:9": { width: 1195, height: 512, ratio: 8 }, + }, + "2k": { + "1:1": { width: 2048, height: 2048, ratio: 1 }, + "4:3": { width: 2304, height: 1728, ratio: 4 }, + "3:4": { width: 1728, height: 2304, ratio: 2 }, + "16:9": { width: 2560, height: 1440, ratio: 3 }, + "9:16": { width: 1440, height: 2560, ratio: 5 }, + "3:2": { width: 2496, height: 1664, ratio: 7 }, + "2:3": { width: 1664, height: 2496, ratio: 6 }, + "21:9": { width: 3024, height: 1296, ratio: 8 }, + }, + "4k": { + "1:1": { width: 4096, height: 4096, ratio: 101 }, + "4:3": { width: 4608, height: 3456, ratio: 104 }, + "3:4": { width: 3456, height: 4608, ratio: 102 }, + "16:9": { width: 5120, height: 2880, ratio: 103 }, + "9:16": { width: 2880, height: 5120, ratio: 105 }, + "3:2": { width: 4992, height: 3328, ratio: 107 }, + "2:3": { width: 3328, height: 4992, ratio: 106 }, + "21:9": { width: 6048, height: 2592, ratio: 108 }, + }, +}; + +// 解析分辨率参数 +function resolveResolution( + resolution: string = "2k", + ratio: string = "1:1" +): { width: number; height: number; imageRatio: number; resolutionType: string } { + const resolutionGroup = RESOLUTION_OPTIONS[resolution]; + if (!resolutionGroup) { + const supportedResolutions = Object.keys(RESOLUTION_OPTIONS).join(", "); + throw new Error(`不支持的分辨率 "${resolution}"。支持的分辨率: ${supportedResolutions}`); + } + + const ratioConfig = resolutionGroup[ratio]; + if (!ratioConfig) { + const supportedRatios = Object.keys(resolutionGroup).join(", "); + throw new Error(`在 "${resolution}" 分辨率下,不支持的比例 "${ratio}"。支持的比例: ${supportedRatios}`); + } + + return { + width: ratioConfig.width, + height: ratioConfig.height, + imageRatio: ratioConfig.ratio, + resolutionType: resolution, + }; +} + +// 模型特定的版本配置 +const MODEL_DRAFT_VERSIONS: { [key: string]: string } = { + "jimeng-5.0": "3.3.9", + "jimeng-4.6": "3.3.9", + "jimeng-4.5": "3.3.4", + "jimeng-4.1": "3.3.4", + "jimeng-4.0": "3.3.4", + "jimeng-3.1": "3.0.2", + "jimeng-3.0": "3.0.2", + "jimeng-2.1": "3.0.2", + "jimeng-2.0-pro": "3.0.2", + "jimeng-2.0": "3.0.2", + "jimeng-1.4": "3.0.2", + "jimeng-xl-pro": "3.0.2", +}; + +// 获取模型对应的draft版本 +function getDraftVersion(model: string): string { + try { + const config = getModelConfig(model); + return config.draftVersion; + } catch (e) { + // 如果配置中没有,使用旧的映射 + return MODEL_DRAFT_VERSIONS[model] || DRAFT_VERSION; + } +} +const MODEL_MAP = { + "jimeng-5.0": "high_aes_general_v50", + "jimeng-4.6": "high_aes_general_v42", + "jimeng-4.5": "high_aes_general_v40l", + "jimeng-4.1": "high_aes_general_v41", + "jimeng-4.0": "high_aes_general_v40", + "jimeng-3.1": "high_aes_general_v30l_art_fangzhou:general_v3.0_18b", + "jimeng-3.0": "high_aes_general_v30l:general_v3.0_18b", + "jimeng-2.1": "high_aes_general_v21_L:general_v2.1_L", + "jimeng-2.0-pro": "high_aes_general_v20_L:general_v2.0_L", + "jimeng-2.0": "high_aes_general_v20:general_v2.0", + "jimeng-1.4": "high_aes_general_v14:general_v1.4", + "jimeng-xl-pro": "text2img_xl_sft", +}; + +// 向后兼容的函数 +export function getModel(model: string) { + try { + const config = getModelConfig(model); + return config.internalModel; + } catch (e) { + // 如果配置中没有,使用旧的映射 + return MODEL_MAP[model] || MODEL_MAP[DEFAULT_MODEL]; + } +} + + +// AWS4-HMAC-SHA256 签名生成函数 +function createSignature( + method: string, + url: string, + headers: { [key: string]: string }, + accessKeyId: string, + secretAccessKey: string, + sessionToken?: string, + payload: string = '' +) { + const urlObj = new URL(url); + const pathname = urlObj.pathname || '/'; + const search = urlObj.search; + + // 创建规范请求 + const timestamp = headers['x-amz-date']; + const date = timestamp.substr(0, 8); + const region = 'cn-north-1'; + const service = 'imagex'; + + // 规范化查询参数 - 手动处理以确保正确的顺序 + const queryParams: Array<[string, string]> = []; + const searchParams = new URLSearchParams(search); + searchParams.forEach((value, key) => { + queryParams.push([key, value]); + }); + + // 按键名排序 - 大小写敏感,先大写字母,后小写字母 + queryParams.sort(([a], [b]) => { + // AWS要求大小写敏感的ASCII排序 + if (a < b) return -1; + if (a > b) return 1; + return 0; + }); + + // 构建规范查询字符串(不进行额外编码,因为URL中已经编码) + const canonicalQueryString = queryParams + .map(([key, value]) => `${key}=${value}`) + .join('&'); + + // 规范化头部 - 只包含必要的头部 + const headersToSign: { [key: string]: string } = { + 'x-amz-date': timestamp + }; + + // 添加 session token + if (sessionToken) { + headersToSign['x-amz-security-token'] = sessionToken; + } + + // 如果是POST请求且包含payload,添加content-sha256头 + let payloadHash = crypto.createHash('sha256').update('').digest('hex'); // 默认空payload + if (method.toUpperCase() === 'POST' && payload) { + payloadHash = crypto.createHash('sha256').update(payload, 'utf8').digest('hex'); + headersToSign['x-amz-content-sha256'] = payloadHash; + } + + const signedHeaders = Object.keys(headersToSign) + .map(key => key.toLowerCase()) + .sort() + .join(';'); + + const canonicalHeaders = Object.keys(headersToSign) + .sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())) + .map(key => `${key.toLowerCase()}:${headersToSign[key].trim()}\n`) + .join(''); + + // 创建规范请求 + const canonicalRequest = [ + method.toUpperCase(), + pathname, + canonicalQueryString, + canonicalHeaders, + signedHeaders, + payloadHash + ].join('\n'); + + // 调试输出 + logger.debug(`规范请求: +Method: ${method.toUpperCase()} +Path: ${pathname} +Query: ${canonicalQueryString} +Headers: ${canonicalHeaders} +SignedHeaders: ${signedHeaders} +PayloadHash: ${payloadHash} +---完整规范请求--- +${canonicalRequest} +---结束---`); + + // 创建待签名字符串 + const credentialScope = `${date}/${region}/${service}/aws4_request`; + const stringToSign = [ + 'AWS4-HMAC-SHA256', + timestamp, + credentialScope, + crypto.createHash('sha256').update(canonicalRequest, 'utf8').digest('hex') + ].join('\n'); + + logger.debug(`待签名字符串: +${stringToSign}`); + + // 生成签名 + const kDate = crypto.createHmac('sha256', `AWS4${secretAccessKey}`).update(date).digest(); + const kRegion = crypto.createHmac('sha256', kDate).update(region).digest(); + const kService = crypto.createHmac('sha256', kRegion).update(service).digest(); + const kSigning = crypto.createHmac('sha256', kService).update('aws4_request').digest(); + const signature = crypto.createHmac('sha256', kSigning).update(stringToSign, 'utf8').digest('hex'); + + return `AWS4-HMAC-SHA256 Credential=${accessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`; +} + +// 计算文件的CRC32值 +function calculateCRC32(buffer: ArrayBuffer): string { + const crcTable = []; + for (let i = 0; i < 256; i++) { + let crc = i; + for (let j = 0; j < 8; j++) { + crc = (crc & 1) ? (0xEDB88320 ^ (crc >>> 1)) : (crc >>> 1); + } + crcTable[i] = crc; + } + + let crc = 0 ^ (-1); + const bytes = new Uint8Array(buffer); + for (let i = 0; i < bytes.length; i++) { + crc = (crc >>> 8) ^ crcTable[(crc ^ bytes[i]) & 0xFF]; + } + return ((crc ^ (-1)) >>> 0).toString(16).padStart(8, '0'); +} + +// 图片上传功能:将外部图片URL上传到即梦系统 +async function uploadImageFromUrl(imageUrl: string, refreshToken: string): Promise { + try { + logger.info(`开始上传图片: ${imageUrl}`); + + // 第一步:获取上传令牌 + const tokenResult = await request("post", "/mweb/v1/get_upload_token", refreshToken, { + data: { + scene: 2, // AIGC 图片上传场景 + }, + }); + + const { access_key_id, secret_access_key, session_token, service_id } = tokenResult; + if (!access_key_id || !secret_access_key || !session_token) { + throw new Error("获取上传令牌失败"); + } + + // 使用固定的service_id + const actualServiceId = service_id || "tb4s082cfz"; + + logger.info(`获取上传令牌成功: service_id=${actualServiceId}`); + + // 下载图片数据 + const imageResponse = await fetch(imageUrl); + if (!imageResponse.ok) { + throw new Error(`下载图片失败: ${imageResponse.status}`); + } + + const imageBuffer = await imageResponse.arrayBuffer(); + const fileSize = imageBuffer.byteLength; + const crc32 = calculateCRC32(imageBuffer); + + logger.info(`图片下载完成: 大小=${fileSize}字节, CRC32=${crc32}`); + + // 第二步:申请图片上传权限 + // 使用UTC时间格式 YYYYMMDD'T'HHMMSS'Z' + const now = new Date(); + const timestamp = now.toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + + // 生成随机字符串作为签名参数 + const randomStr = Math.random().toString(36).substring(2, 12); + // 保持原始的参数顺序(这是API期望的顺序) + const applyUrl = `https://imagex.bytedanceapi.com/?Action=ApplyImageUpload&Version=2018-08-01&ServiceId=${actualServiceId}&FileSize=${fileSize}&s=${randomStr}`; + + logger.debug(`原始URL: ${applyUrl}`); + + // 构建AWS签名所需的头部 + const requestHeaders = { + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token + }; + + // 生成AWS签名 + const authorization = createSignature('GET', applyUrl, requestHeaders, access_key_id, secret_access_key, session_token); + + // 调试日志 + logger.info(`AWS签名调试信息: + URL: ${applyUrl} + AccessKeyId: ${access_key_id} + SessionToken: ${session_token ? '存在' : '不存在'} + Timestamp: ${timestamp} + Authorization: ${authorization} + `); + + const applyResponse = await fetch(applyUrl, { + method: 'GET', + headers: { + 'accept': '*/*', + 'accept-language': 'zh-CN,zh;q=0.9', + 'authorization': authorization, + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/generate', + 'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Google Chrome";v="132"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"Windows"', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'cross-site', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token, + }, + }); + + if (!applyResponse.ok) { + const errorText = await applyResponse.text(); + throw new Error(`申请上传权限失败: ${applyResponse.status} - ${errorText}`); + } + + const applyResult = await applyResponse.json(); + + // 检查是否有错误 + if (applyResult?.ResponseMetadata?.Error) { + throw new Error(`申请上传权限失败: ${JSON.stringify(applyResult.ResponseMetadata.Error)}`); + } + + logger.info(`申请上传权限成功`); + + // 解析上传信息 + const uploadAddress = applyResult?.Result?.UploadAddress; + if (!uploadAddress || !uploadAddress.StoreInfos || !uploadAddress.UploadHosts) { + throw new Error(`获取上传地址失败: ${JSON.stringify(applyResult)}`); + } + + const storeInfo = uploadAddress.StoreInfos[0]; + const uploadHost = uploadAddress.UploadHosts[0]; + const auth = storeInfo.Auth; + + // 构建上传URL + const uploadUrl = `https://${uploadHost}/upload/v1/${storeInfo.StoreUri}`; + + // 提取图片ID (StoreUri最后一个斜杠后的部分) + const imageId = storeInfo.StoreUri.split('/').pop(); + + logger.info(`准备上传图片: imageId=${imageId}, uploadUrl=${uploadUrl}`); + + // 第三步:上传图片文件 + const uploadResponse = await fetch(uploadUrl, { + method: 'POST', + headers: { + 'Accept': '*/*', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'Authorization': auth, + 'Connection': 'keep-alive', + 'Content-CRC32': crc32, + 'Content-Disposition': 'attachment; filename="undefined"', + 'Content-Type': 'application/octet-stream', + 'Origin': 'https://jimeng.jianying.com', + 'Referer': 'https://jimeng.jianying.com/ai-tool/generate', + 'Sec-Fetch-Dest': 'empty', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Site': 'cross-site', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'X-Storage-U': '704135154117550', // 用户ID,可以从token或其他地方获取 + }, + body: imageBuffer, + }); + + if (!uploadResponse.ok) { + const errorText = await uploadResponse.text(); + throw new Error(`图片上传失败: ${uploadResponse.status} - ${errorText}`); + } + + logger.info(`图片文件上传成功`); + + // 第四步:提交上传 + const commitUrl = `https://imagex.bytedanceapi.com/?Action=CommitImageUpload&Version=2018-08-01&ServiceId=${actualServiceId}`; + + const commitTimestamp = new Date().toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + const commitPayload = JSON.stringify({ + SessionKey: uploadAddress.SessionKey, + SuccessActionStatus: "200" + }); + + // 计算payload的SHA256哈希值 + const payloadHash = crypto.createHash('sha256').update(commitPayload, 'utf8').digest('hex'); + + // 构建AWS签名所需的头部 + const commitRequestHeaders = { + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash + }; + + // 生成AWS签名 + const commitAuthorization = createSignature('POST', commitUrl, commitRequestHeaders, access_key_id, secret_access_key, session_token, commitPayload); + + const commitResponse = await fetch(commitUrl, { + method: 'POST', + headers: { + 'accept': '*/*', + 'accept-language': 'zh-CN,zh;q=0.9', + 'authorization': commitAuthorization, + 'content-type': 'application/json', + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/generate', + 'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Google Chrome";v="132"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"Windows"', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'cross-site', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash, + }, + body: commitPayload, + }); + + if (!commitResponse.ok) { + const errorText = await commitResponse.text(); + throw new Error(`提交上传失败: ${commitResponse.status} - ${errorText}`); + } + + const commitResult = await commitResponse.json(); + + // 检查提交结果 + if (commitResult?.ResponseMetadata?.Error) { + throw new Error(`提交上传失败: ${JSON.stringify(commitResult.ResponseMetadata.Error)}`); + } + + if (!commitResult?.Result?.Results || commitResult.Result.Results.length === 0) { + throw new Error(`提交上传响应缺少结果: ${JSON.stringify(commitResult)}`); + } + + const uploadResult = commitResult.Result.Results[0]; + if (uploadResult.UriStatus !== 2000) { + throw new Error(`图片上传状态异常: UriStatus=${uploadResult.UriStatus}`); + } + + // 获取完整的URI(包含前缀) + const fullImageUri = uploadResult.Uri; // 如: "tos-cn-i-tb4s082cfz/bab623359bd9410da0c1f07897b16fec" + + // 验证图片信息 + const pluginResult = commitResult.Result?.PluginResult?.[0]; + if (pluginResult) { + logger.info(`图片上传成功详情:`, { + imageUri: pluginResult.ImageUri, + sourceUri: pluginResult.SourceUri, + size: `${pluginResult.ImageWidth}x${pluginResult.ImageHeight}`, + format: pluginResult.ImageFormat, + fileSize: pluginResult.ImageSize, + md5: pluginResult.ImageMd5 + }); + + // 优先使用PluginResult中的ImageUri,因为它可能是最准确的 + if (pluginResult.ImageUri) { + logger.info(`图片上传完成: ${pluginResult.ImageUri}`); + return pluginResult.ImageUri; // 返回完整的URI + } + } + + logger.info(`图片上传完成: ${fullImageUri}`); + return fullImageUri; // 返回完整的URI + + } catch (error) { + logger.error(`图片上传失败: ${error.message}`); + throw error; + } +} + +// 从Buffer上传图片 +async function uploadImageBuffer(buffer: Buffer, refreshToken: string): Promise { + try { + logger.info(`开始从Buffer上传图片,大小: ${buffer.length}字节`); + + // 获取上传凭证 + const proofResult = await request( + 'POST', + '/mweb/v1/get_upload_image_proof', + refreshToken, + { + data: { + scene: 'aigc_image', + file_name: `${util.uuid()}.jpg`, + file_size: buffer.length, + } + } + ); + + if (!proofResult || !proofResult.proof_info) { + logger.error(`获取上传凭证失败: ${JSON.stringify(proofResult)}`); + throw new APIException(EX.API_REQUEST_FAILED, '获取上传凭证失败'); + } + + logger.info(`获取上传凭证成功`); + + // 上传文件 + const { proof_info } = proofResult; + const uploadProofUrl = 'https://imagex.bytedanceapi.com/'; + + const formData = new FormData(); + const blob = new Blob([buffer], { type: 'image/jpeg' }); + formData.append('file', blob, `${util.uuid()}.jpg`); + + const uploadResult = await fetch(uploadProofUrl + '?' + new URLSearchParams(proof_info.query_params).toString(), { + method: 'POST', + headers: proof_info.headers, + body: formData, + }); + + if (!uploadResult.ok) { + logger.error(`上传文件失败: 状态码 ${uploadResult.status}`); + throw new APIException(EX.API_REQUEST_FAILED, `上传文件失败: 状态码 ${uploadResult.status}`); + } + + // 验证 proof_info.image_uri 是否存在 + if (!proof_info.image_uri) { + logger.error(`上传凭证中缺少 image_uri: ${JSON.stringify(proof_info)}`); + throw new APIException(EX.API_REQUEST_FAILED, '上传凭证中缺少 image_uri'); + } + + logger.info(`Buffer图片上传成功: ${proof_info.image_uri}`); + return proof_info.image_uri; + } catch (error) { + logger.error(`Buffer图片上传失败: ${error.message}`); + throw error; + } +} + +// 图片合成功能:先上传图片,然后进行图生图 +export async function generateImageComposition( + _model: string, + prompt: string, + imageUrls: (string | Buffer)[], + { + ratio = "1:1", + resolution = "2k", + sampleStrength = 0.5, + negativePrompt = "", + intelligentRatio = false, + }: { + ratio?: string; + resolution?: string; + sampleStrength?: number; + negativePrompt?: string; + intelligentRatio?: boolean; + }, + refreshToken: string +) { + const model = getModel(_model); + const draftVersion = getDraftVersion(_model); + const imageCount = imageUrls.length; + + // 解析分辨率 + const resolutionResult = resolveResolution(resolution, ratio); + const { width, height, imageRatio, resolutionType } = resolutionResult; + + logger.info(`使用模型: ${_model} 映射模型: ${model} 图生图功能 ${imageCount}张图片 ${width}x${height} (${ratio}@${resolution}) 精细度: ${sampleStrength}`); + + const { totalCredit } = await getCredit(refreshToken); + if (totalCredit <= 0) + await receiveCredit(refreshToken); + + // 上传所有输入图片 + const uploadedImageIds: string[] = []; + for (let i = 0; i < imageUrls.length; i++) { + try { + const image = imageUrls[i]; + let imageId: string; + if (typeof image === 'string') { + logger.info(`正在处理第 ${i + 1}/${imageCount} 张图片 (URL)...`); + imageId = await uploadImageFromUrl(image, refreshToken); + } else { + logger.info(`正在处理第 ${i + 1}/${imageCount} 张图片 (Buffer)...`); + imageId = await uploadImageBuffer(image, refreshToken); + } + uploadedImageIds.push(imageId); + logger.info(`图片 ${i + 1}/${imageCount} 上传成功: ${imageId}`); + } catch (error) { + logger.error(`图片 ${i + 1}/${imageCount} 上传失败: ${error.message}`); + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, `图片上传失败: ${error.message}`); + } + } + + logger.info(`所有图片上传完成,开始图生图: ${uploadedImageIds.join(', ')}`); + + const componentId = util.uuid(); + const submitId = util.uuid(); + + // 构建图生图的 sceneOptions(不包含 benefitCount 以避免扣积分) + // 注意:sceneOptions 需要是对象,在 metrics_extra 中会被 JSON.stringify + const sceneOption = { + type: "image", + scene: "ImageBasicGenerate", + modelReqKey: _model, + resolutionType, + abilityList: uploadedImageIds.map(() => ({ + abilityName: "byte_edit", + strength: sampleStrength, + source: { + imageUrl: `blob:https://jimeng.jianying.com/${util.uuid()}` + } + })), + reportParams: { + enterSource: "generate", + vipSource: "generate", + extraVipFunctionKey: `${_model}-${resolutionType}`, + useVipFunctionDetailsReporterHoc: true, + }, + }; + + const { aigc_data } = await request( + "post", + "/mweb/v1/aigc_draft/generate", + refreshToken, + { + data: { + extend: { + root_model: model, + }, + submit_id: submitId, + metrics_extra: JSON.stringify({ + promptSource: "custom", + generateCount: 1, + enterFrom: "click", + sceneOptions: JSON.stringify([sceneOption]), + generateId: submitId, + isRegenerate: false + }), + draft_content: JSON.stringify({ + type: "draft", + id: util.uuid(), + min_version: "3.2.9", + min_features: [], + is_from_tsn: true, + version: "3.2.9", + main_component_id: componentId, + component_list: [ + { + type: "image_base_component", + id: componentId, + min_version: "3.0.2", + aigc_mode: "workbench", + metadata: { + type: "", + id: util.uuid(), + created_platform: 3, + created_platform_version: "", + created_time_in_ms: Date.now().toString(), + created_did: "", + }, + generate_type: "blend", + abilities: { + type: "", + id: util.uuid(), + blend: { + type: "", + id: util.uuid(), + min_version: "3.2.9", + min_features: [], + core_param: { + type: "", + id: util.uuid(), + model, + prompt: `${'#'.repeat(imageCount * 2)}${prompt}`, + sample_strength: sampleStrength, + image_ratio: imageRatio, + large_image_info: { + type: "", + id: util.uuid(), + height, + width, + resolution_type: resolutionType + }, + intelligent_ratio: intelligentRatio, + }, + ability_list: uploadedImageIds.map((imageId) => ({ + type: "", + id: util.uuid(), + name: "byte_edit", + image_uri_list: [imageId], + image_list: [{ + type: "image", + id: util.uuid(), + source_from: "upload", + platform_type: 1, + name: "", + image_uri: imageId, + width: 0, + height: 0, + format: "", + uri: imageId + }], + strength: 0.5 + })), + prompt_placeholder_info_list: uploadedImageIds.map((_, index) => ({ + type: "", + id: util.uuid(), + ability_index: index + })), + postedit_param: { + type: "", + id: util.uuid(), + generate_type: 0 + } + }, + }, + }, + ], + }), + http_common_info: { + aid: DEFAULT_ASSISTANT_ID, + }, + }, + } + ); + + const historyId = aigc_data?.history_record_id; + if (!historyId) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录ID不存在"); + + logger.info(`图生图任务已提交,history_id: ${historyId},等待生成完成...`); + + let status = 20, failCode, item_list = []; + let pollCount = 0; + const maxPollCount = 600; // 最多轮询10分钟 + + while (pollCount < maxPollCount) { + await new Promise((resolve) => setTimeout(resolve, 1000)); + pollCount++; + + if (pollCount % 30 === 0) { + logger.info(`图生图进度: 第 ${pollCount} 次轮询 (history_id: ${historyId}),当前状态: ${status},已生成: ${item_list.length} 张图片...`); + } + + const result = await request("post", "/mweb/v1/get_history_by_ids", refreshToken, { + data: { + history_ids: [historyId], + image_info: { + width: 2048, + height: 2048, + format: "webp", + image_scene_list: [ + { + scene: "smart_crop", + width: 360, + height: 360, + uniq_key: "smart_crop-w:360-h:360", + format: "webp", + }, + { + scene: "smart_crop", + width: 480, + height: 480, + uniq_key: "smart_crop-w:480-h:480", + format: "webp", + }, + { + scene: "smart_crop", + width: 720, + height: 720, + uniq_key: "smart_crop-w:720-h:720", + format: "webp", + }, + { + scene: "smart_crop", + width: 720, + height: 480, + uniq_key: "smart_crop-w:720-h:480", + format: "webp", + }, + { + scene: "normal", + width: 2400, + height: 2400, + uniq_key: "2400", + format: "webp", + }, + { + scene: "normal", + width: 1080, + height: 1080, + uniq_key: "1080", + format: "webp", + }, + { + scene: "normal", + width: 720, + height: 720, + uniq_key: "720", + format: "webp", + }, + { + scene: "normal", + width: 480, + height: 480, + uniq_key: "480", + format: "webp", + }, + { + scene: "normal", + width: 360, + height: 360, + uniq_key: "360", + format: "webp", + }, + ], + }, + http_common_info: { + aid: DEFAULT_ASSISTANT_ID, + }, + }, + }); + + if (!result[historyId]) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录不存在"); + + status = result[historyId].status; + failCode = result[historyId].fail_code; + item_list = result[historyId].item_list || []; + + // 检查是否已生成图片 + if (item_list.length > 0) { + logger.info(`图生图完成: 状态=${status}, 已生成 ${item_list.length} 张图片`); + break; + } + + // 记录详细状态 + if (pollCount % 60 === 0) { + logger.info(`图生图详细状态: status=${status}, item_list.length=${item_list.length}, failCode=${failCode || 'none'}`); + } + + // 如果状态是完成但图片数量为0,记录并继续等待 + if (status === 10 && item_list.length === 0 && pollCount % 30 === 0) { + logger.info(`图生图状态已完成但无图片生成: 状态=${status}, 继续等待...`); + } + } + + if (pollCount >= maxPollCount) { + logger.warn(`图生图超时: 轮询了 ${pollCount} 次,当前状态: ${status},已生成图片数: ${item_list.length}`); + } + + if (status === 30) { + if (failCode === '2038') + throw new APIException(EX.API_CONTENT_FILTERED); + else + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, `图生图失败,错误代码: ${failCode}`); + } + + const resultImageUrls = item_list.map((item) => { + if(!item?.image?.large_images?.[0]?.image_url) + return item?.common_attr?.cover_url || null; + return item.image.large_images[0].image_url; + }).filter(url => url !== null); + + logger.info(`图生图结果: 成功生成 ${resultImageUrls.length} 张图片`); + return resultImageUrls; +} + +// 多图生成函数(支持jimeng-4.0及以上版本) +async function generateMultiImages( + _model: string, + prompt: string, + { + ratio = "1:1", + resolution = "2k", + sampleStrength = 0.5, + negativePrompt = "", + intelligentRatio = false, + }: { + ratio?: string; + resolution?: string; + sampleStrength?: number; + negativePrompt?: string; + intelligentRatio?: boolean; + }, + refreshToken: string +) { + const model = getModel(_model); + + // 解析分辨率 + const resolutionResult = resolveResolution(resolution, ratio); + const { width, height, imageRatio, resolutionType } = resolutionResult; + + // 从prompt中提取图片数量,默认为4张 + const targetImageCount = prompt.match(/(\d+)张/) ? parseInt(prompt.match(/(\d+)张/)[1]) : 4; + + logger.info(`使用 ${_model} 多图生成: ${targetImageCount}张图片 ${width}x${height} (${ratio}@${resolution}) 精细度: ${sampleStrength}`); + + const componentId = util.uuid(); + const submitId = util.uuid(); + + // 构建多图模式的 sceneOptions(不包含 benefitCount 以避免扣积分) + const sceneOption = { + type: "image", + scene: "ImageMultiGenerate", + modelReqKey: _model, + resolutionType, + abilityList: [], + reportParams: { + enterSource: "generate", + vipSource: "generate", + extraVipFunctionKey: `${_model}-${resolutionType}`, + useVipFunctionDetailsReporterHoc: true, + }, + }; + + const { aigc_data } = await request( + "post", + "/mweb/v1/aigc_draft/generate", + refreshToken, + { + data: { + extend: { + root_model: model, + }, + submit_id: submitId, + metrics_extra: JSON.stringify({ + promptSource: "custom", + generateCount: 1, + enterFrom: "click", + sceneOptions: JSON.stringify([sceneOption]), + generateId: submitId, + isRegenerate: false, + templateId: "", + templateSource: "", + lastRequestId: "", + originRequestId: "", + }), + draft_content: JSON.stringify({ + type: "draft", + id: util.uuid(), + min_version: DRAFT_MIN_VERSION, + min_features: [], + is_from_tsn: true, + version: DRAFT_VERSION, + main_component_id: componentId, + component_list: [ + { + type: "image_base_component", + id: componentId, + min_version: DRAFT_MIN_VERSION, + aigc_mode: "workbench", + metadata: { + type: "", + id: util.uuid(), + created_platform: 3, + created_platform_version: "", + created_time_in_ms: Date.now().toString(), + created_did: "", + }, + generate_type: "generate", + abilities: { + type: "", + id: util.uuid(), + generate: { + type: "", + id: util.uuid(), + core_param: { + type: "", + id: util.uuid(), + model, + prompt, + negative_prompt: negativePrompt, + seed: Math.floor(Math.random() * 100000000) + 2500000000, + sample_strength: sampleStrength, + image_ratio: imageRatio, + large_image_info: { + type: "", + id: util.uuid(), + min_version: DRAFT_MIN_VERSION, + height, + width, + resolution_type: resolutionType, + }, + intelligent_ratio: intelligentRatio, + }, + gen_option: { + type: "", + id: util.uuid(), + generate_all: false, + }, + }, + }, + }, + ], + }), + http_common_info: { + aid: DEFAULT_ASSISTANT_ID, + }, + }, + } + ); + + const historyId = aigc_data?.history_record_id; + if (!historyId) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录ID不存在"); + + logger.info(`多图生成任务已提交,submit_id: ${submitId}, history_id: ${historyId},等待生成 ${targetImageCount} 张图片...`); + + // 直接使用 history_id 轮询生成结果(增加轮询时间) + let status = 20, failCode, item_list = []; + let pollCount = 0; + const maxPollCount = 600; // 最多轮询10分钟(600次 * 1秒) + + while (pollCount < maxPollCount) { + await new Promise((resolve) => setTimeout(resolve, 1000)); // 每1秒轮询一次 + pollCount++; + + if (pollCount % 30 === 0) { + logger.info(`多图生成进度: 第 ${pollCount} 次轮询 (history_id: ${historyId}),当前状态: ${status},已生成: ${item_list.length}/${targetImageCount} 张图片...`); + } + + const result = await request("post", "/mweb/v1/get_history_by_ids", refreshToken, { + data: { + history_ids: [historyId], + image_info: { + width: 2048, + height: 2048, + format: "webp", + image_scene_list: [ + { + scene: "smart_crop", + width: 360, + height: 360, + uniq_key: "smart_crop-w:360-h:360", + format: "webp", + }, + { + scene: "smart_crop", + width: 480, + height: 480, + uniq_key: "smart_crop-w:480-h:480", + format: "webp", + }, + { + scene: "smart_crop", + width: 720, + height: 720, + uniq_key: "smart_crop-w:720-h:720", + format: "webp", + }, + { + scene: "smart_crop", + width: 720, + height: 480, + uniq_key: "smart_crop-w:720-h:480", + format: "webp", + }, + { + scene: "normal", + width: 2400, + height: 2400, + uniq_key: "2400", + format: "webp", + }, + { + scene: "normal", + width: 1080, + height: 1080, + uniq_key: "1080", + format: "webp", + }, + { + scene: "normal", + width: 720, + height: 720, + uniq_key: "720", + format: "webp", + }, + { + scene: "normal", + width: 480, + height: 480, + uniq_key: "480", + format: "webp", + }, + { + scene: "normal", + width: 360, + height: 360, + uniq_key: "360", + format: "webp", + }, + ], + }, + http_common_info: { + aid: DEFAULT_ASSISTANT_ID, + }, + }, + }); + + if (!result[historyId]) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录不存在"); + + status = result[historyId].status; + failCode = result[historyId].fail_code; + item_list = result[historyId].item_list || []; + + // 检查是否已生成足够的图片 + if (item_list.length >= targetImageCount) { + logger.info(`多图生成完成: 状态=${status}, 已生成 ${item_list.length} 张图片`); + break; + } + + // 记录详细状态 + if (pollCount % 60 === 0) { + logger.info(`jimeng-4.0 详细状态: status=${status}, item_list.length=${item_list.length}, failCode=${failCode || 'none'}`); + } + + // 如果状态是完成但图片数量不够,记录并继续等待 + if (status === 10 && item_list.length < targetImageCount && pollCount % 30 === 0) { + logger.info(`jimeng-4.0 状态已完成但图片数量不足: 状态=${status}, 已生成 ${item_list.length}/${targetImageCount} 张图片,继续等待...`); + } + } + + if (pollCount >= maxPollCount) { + logger.warn(`多图生成超时: 轮询了 ${pollCount} 次,当前状态: ${status},已生成图片数: ${item_list.length}`); + } + + if (status === 30) { + if (failCode === '2038') + throw new APIException(EX.API_CONTENT_FILTERED); + else + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, `生成失败,错误代码: ${failCode}`); + } + + const imageUrls = item_list.map((item) => { + if(!item?.image?.large_images?.[0]?.image_url) + return item?.common_attr?.cover_url || null; + return item.image.large_images[0].image_url; + }).filter(url => url !== null); + + logger.info(`多图生成结果: 成功生成 ${imageUrls.length} 张图片`); + return imageUrls; +} + +export async function generateImages( + _model: string, + prompt: string, + { + ratio = "1:1", + resolution = "2k", + sampleStrength = 0.5, + negativePrompt = "", + intelligentRatio = false, + }: { + ratio?: string; + resolution?: string; + sampleStrength?: number; + negativePrompt?: string; + intelligentRatio?: boolean; + }, + refreshToken: string +) { + const model = getModel(_model); + + // 解析分辨率 + const resolutionResult = resolveResolution(resolution, ratio); + const { width, height, imageRatio, resolutionType } = resolutionResult; + + logger.info(`使用模型: ${_model} 映射模型: ${model} ${width}x${height} (${ratio}@${resolution}) 精细度: ${sampleStrength}`); + + + const { totalCredit } = await getCredit(refreshToken); + if (totalCredit <= 0) + await receiveCredit(refreshToken); + + // 检测是否为多图生成请求 + const isMultiImageRequest = (/jimeng-[45]\.[0-9]/.test(_model)) && ( + prompt.includes("连续") || + prompt.includes("绘本") || + prompt.includes("故事") || + /\d+张/.test(prompt) + ); + + // 如果是多图请求,使用专门的处理逻辑 + if (isMultiImageRequest) { + return await generateMultiImages(_model, prompt, { ratio, resolution, sampleStrength, negativePrompt, intelligentRatio }, refreshToken); + } + + const componentId = util.uuid(); + const submitId = util.uuid(); + + // 构建 sceneOptions 用于 metrics_extra(不包含 benefitCount 以避免扣积分) + const sceneOption = { + type: "image", + scene: "ImageBasicGenerate", + modelReqKey: _model, + resolutionType, + abilityList: [], + reportParams: { + enterSource: "generate", + vipSource: "generate", + extraVipFunctionKey: `${_model}-${resolutionType}`, + useVipFunctionDetailsReporterHoc: true, + }, + }; + + const { aigc_data } = await request( + "post", + "/mweb/v1/aigc_draft/generate", + refreshToken, + { + data: { + extend: { + root_model: model, + }, + submit_id: submitId, + metrics_extra: JSON.stringify({ + promptSource: "custom", + generateCount: 1, + enterFrom: "click", + sceneOptions: JSON.stringify([sceneOption]), + generateId: submitId, + isRegenerate: false, + }), + draft_content: JSON.stringify({ + type: "draft", + id: util.uuid(), + min_version: DRAFT_MIN_VERSION, + min_features: [], + is_from_tsn: true, + version: DRAFT_VERSION, + main_component_id: componentId, + component_list: [ + { + type: "image_base_component", + id: componentId, + min_version: DRAFT_MIN_VERSION, + aigc_mode: "workbench", + metadata: { + type: "", + id: util.uuid(), + created_platform: 3, + created_platform_version: "", + created_time_in_ms: Date.now().toString(), + created_did: "", + }, + generate_type: "generate", + abilities: { + type: "", + id: util.uuid(), + generate: { + type: "", + id: util.uuid(), + core_param: { + type: "", + id: util.uuid(), + model, + prompt, + negative_prompt: negativePrompt, + seed: Math.floor(Math.random() * 100000000) + 2500000000, + sample_strength: sampleStrength, + image_ratio: imageRatio, + large_image_info: { + type: "", + id: util.uuid(), + min_version: DRAFT_MIN_VERSION, + height, + width, + resolution_type: resolutionType, + }, + intelligent_ratio: intelligentRatio, + }, + gen_option: { + type: "", + id: util.uuid(), + generate_all: false, + }, + }, + }, + }, + ], + }), + http_common_info: { + aid: DEFAULT_ASSISTANT_ID, + }, + }, + } + ); + const historyId = aigc_data.history_record_id; + if (!historyId) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录ID不存在"); + + logger.info(`文生图任务已提交,submit_id: ${submitId}, history_id: ${historyId},等待生成完成...`); + + let status = 20, failCode, item_list = []; + let pollCount = 0; + const maxPollCount = 600; // 最多轮询10分钟 + + while (pollCount < maxPollCount) { + await new Promise((resolve) => setTimeout(resolve, 1000)); + pollCount++; + + if (pollCount % 30 === 0) { + logger.info(`文生图进度: 第 ${pollCount} 次轮询 (history_id: ${historyId}),当前状态: ${status},已生成: ${item_list.length} 张图片...`); + } + + const result = await request("post", "/mweb/v1/get_history_by_ids", refreshToken, { + data: { + history_ids: [historyId], + image_info: { + width: 2048, + height: 2048, + format: "webp", + image_scene_list: [ + { + scene: "smart_crop", + width: 360, + height: 360, + uniq_key: "smart_crop-w:360-h:360", + format: "webp", + }, + { + scene: "smart_crop", + width: 480, + height: 480, + uniq_key: "smart_crop-w:480-h:480", + format: "webp", + }, + { + scene: "smart_crop", + width: 720, + height: 720, + uniq_key: "smart_crop-w:720-h:720", + format: "webp", + }, + { + scene: "smart_crop", + width: 720, + height: 480, + uniq_key: "smart_crop-w:720-h:480", + format: "webp", + }, + { + scene: "smart_crop", + width: 360, + height: 240, + uniq_key: "smart_crop-w:360-h:240", + format: "webp", + }, + { + scene: "smart_crop", + width: 240, + height: 320, + uniq_key: "smart_crop-w:240-h:320", + format: "webp", + }, + { + scene: "smart_crop", + width: 480, + height: 640, + uniq_key: "smart_crop-w:480-h:640", + format: "webp", + }, + { + scene: "normal", + width: 2400, + height: 2400, + uniq_key: "2400", + format: "webp", + }, + { + scene: "normal", + width: 1080, + height: 1080, + uniq_key: "1080", + format: "webp", + }, + { + scene: "normal", + width: 720, + height: 720, + uniq_key: "720", + format: "webp", + }, + { + scene: "normal", + width: 480, + height: 480, + uniq_key: "480", + format: "webp", + }, + { + scene: "normal", + width: 360, + height: 360, + uniq_key: "360", + format: "webp", + }, + ], + }, + http_common_info: { + aid: DEFAULT_ASSISTANT_ID, + }, + }, + }); + if (!result[historyId]) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录不存在"); + + status = result[historyId].status; + failCode = result[historyId].fail_code; + item_list = result[historyId].item_list || []; + + // 检查是否已生成图片 + if (item_list.length > 0) { + logger.info(`文生图完成: 状态=${status}, 已生成 ${item_list.length} 张图片`); + break; + } + + // 记录详细状态 + if (pollCount % 60 === 0) { + logger.info(`文生图详细状态: status=${status}, item_list.length=${item_list.length}, failCode=${failCode || 'none'}`); + } + + // 如果状态是完成但图片数量为0,记录并继续等待 + if (status === 10 && item_list.length === 0 && pollCount % 30 === 0) { + logger.info(`文生图状态已完成但无图片生成: 状态=${status}, 继续等待...`); + } + } + + if (pollCount >= maxPollCount) { + logger.warn(`文生图超时: 轮询了 ${pollCount} 次,当前状态: ${status},已生成图片数: ${item_list.length}`); + } + + if (status === 30) { + if (failCode === '2038') + throw new APIException(EX.API_CONTENT_FILTERED); + else + throw new APIException(EX.API_IMAGE_GENERATION_FAILED); + } + + const imageUrls = item_list.map((item) => { + if(!item?.image?.large_images?.[0]?.image_url) + return item?.common_attr?.cover_url || null; + return item.image.large_images[0].image_url; + }).filter(url => url !== null); + + logger.info(`文生图结果: 成功生成 ${imageUrls.length} 张图片`); + return imageUrls; +} + +export default { + generateImages, + generateImageComposition, +}; diff --git a/src/api/controllers/videos.ts b/src/api/controllers/videos.ts new file mode 100644 index 0000000..f4d0a3c --- /dev/null +++ b/src/api/controllers/videos.ts @@ -0,0 +1,2003 @@ +import _ from "lodash"; +import crypto from "crypto"; +import fs from "fs"; + +import APIException from "@/lib/exceptions/APIException.ts"; +import EX from "@/api/consts/exceptions.ts"; +import util from "@/lib/util.ts"; +import { getCredit, receiveCredit, request, DEFAULT_ASSISTANT_ID as CORE_ASSISTANT_ID, WEB_ID, acquireToken } from "./core.ts"; +import logger from "@/lib/logger.ts"; +import browserService from "@/lib/browser-service.ts"; + +const DEFAULT_ASSISTANT_ID = 513695; +export const DEFAULT_MODEL = "jimeng-video-3.0"; +const DEFAULT_DRAFT_VERSION = "3.2.8"; + +const MODEL_DRAFT_VERSIONS: { [key: string]: string } = { + "jimeng-video-3.5-pro": "3.3.4", + "jimeng-video-3.0-pro": "3.2.8", + "jimeng-video-3.0": "3.2.8", + "jimeng-video-2.0": "3.2.8", + "jimeng-video-2.0-pro": "3.2.8", + // Seedance 模型(与上游 iptag/jimeng-api 保持一致) + "jimeng-video-seedance-2.0": "3.3.9", + "seedance-2.0": "3.3.9", + "seedance-2.0-pro": "3.3.9", + // Seedance 2.0-fast 模型(v1.9.3 新增) + "jimeng-video-seedance-2.0-fast": "3.3.9", + "seedance-2.0-fast": "3.3.9", +}; + +const MODEL_MAP = { + "jimeng-video-3.5-pro": "dreamina_ic_generate_video_model_vgfm_3.5_pro", + "jimeng-video-3.0-pro": "dreamina_ic_generate_video_model_vgfm_3.0_pro", + "jimeng-video-3.0": "dreamina_ic_generate_video_model_vgfm_3.0", + "jimeng-video-2.0": "dreamina_ic_generate_video_model_vgfm_lite", + "jimeng-video-2.0-pro": "dreamina_ic_generate_video_model_vgfm1.0", + // Seedance 多图智能视频生成模型(jimeng-video-seedance-2.0 为上游标准名称) + "jimeng-video-seedance-2.0": "dreamina_seedance_40_pro", + "seedance-2.0": "dreamina_seedance_40_pro", + "seedance-2.0-pro": "dreamina_seedance_40_pro", + // Seedance 2.0-fast 快速生成模型(v1.9.3 新增,内部模型为 dreamina_seedance_40) + "jimeng-video-seedance-2.0-fast": "dreamina_seedance_40", + "seedance-2.0-fast": "dreamina_seedance_40", +}; + +// Seedance 模型的 benefit_type 映射 +const SEEDANCE_BENEFIT_TYPE_MAP: { [key: string]: string } = { + "jimeng-video-seedance-2.0": "dreamina_video_seedance_20_pro", + "seedance-2.0": "dreamina_video_seedance_20_pro", + "seedance-2.0-pro": "dreamina_video_seedance_20_pro", + // Seedance 2.0-fast(v1.9.3 新增,注意:无 "video_" 前缀) + "jimeng-video-seedance-2.0-fast": "dreamina_seedance_20_fast", + "seedance-2.0-fast": "dreamina_seedance_20_fast", +}; + +// 判断是否为 Seedance 模型 +export function isSeedanceModel(model: string): boolean { + return model.startsWith("seedance-") || model.startsWith("jimeng-video-seedance-"); +} + +// ========== Seedance 多类型素材支持 ========== + +// 素材类型 +type SeedanceMaterialType = "image" | "video" | "audio"; + +// 上传结果统一接口 +interface UploadedMaterial { + type: SeedanceMaterialType; + // 图片 + uri?: string; + // 视频/音频(VOD) + vid?: string; + // 通用 + width?: number; + height?: number; + duration?: number; + fps?: number; + name?: string; +} + +// MIME 类型 → 素材类型映射 +const MIME_TO_MATERIAL_TYPE: Record = { + "image/jpeg": "image", "image/png": "image", "image/webp": "image", + "image/gif": "image", "image/bmp": "image", + "video/mp4": "video", "video/quicktime": "video", "video/x-m4v": "video", + "audio/mpeg": "audio", "audio/wav": "audio", "audio/x-wav": "audio", + "audio/mp3": "audio", +}; + +// 扩展名 → 素材类型映射(兜底) +const EXT_TO_MATERIAL_TYPE: Record = { + ".jpg": "image", ".jpeg": "image", ".png": "image", ".webp": "image", + ".gif": "image", ".bmp": "image", + ".mp4": "video", ".mov": "video", ".m4v": "video", + ".mp3": "audio", ".wav": "audio", +}; + +// materialTypes 编码映射 +const MATERIAL_TYPE_CODE: Record = { + image: 1, video: 2, audio: 3, +}; + +/** + * 检测上传文件的素材类型 + * 优先通过 MIME 类型判断,兜底通过文件扩展名 + */ +function detectMaterialType(file: any): SeedanceMaterialType { + // 优先通过 MIME 类型判断 + const mime = (file.mimetype || file.mimeType || "").toLowerCase(); + if (mime && MIME_TO_MATERIAL_TYPE[mime]) return MIME_TO_MATERIAL_TYPE[mime]; + // 兜底:通过文件扩展名判断 + const filename = (file.originalFilename || file.newFilename || "").toLowerCase(); + const dotIdx = filename.lastIndexOf("."); + if (dotIdx >= 0) { + const ext = filename.substring(dotIdx); + if (EXT_TO_MATERIAL_TYPE[ext]) return EXT_TO_MATERIAL_TYPE[ext]; + } + // 默认视为图片(向后兼容) + return "image"; +} + +/** + * 从 URL 检测素材类型 + * 通过 URL 路径的扩展名判断 + */ +function detectMaterialTypeFromUrl(url: string): SeedanceMaterialType { + try { + const pathname = new URL(url).pathname.toLowerCase(); + const dotIdx = pathname.lastIndexOf("."); + if (dotIdx >= 0) { + const ext = pathname.substring(dotIdx); + if (EXT_TO_MATERIAL_TYPE[ext]) return EXT_TO_MATERIAL_TYPE[ext]; + } + } catch {} + // 默认视为图片(向后兼容) + return "image"; +} + +// 视频支持的分辨率和比例配置 +const VIDEO_RESOLUTION_OPTIONS: { + [resolution: string]: { + [ratio: string]: { width: number; height: number }; + }; +} = { + "480p": { + "1:1": { width: 480, height: 480 }, + "4:3": { width: 640, height: 480 }, + "3:4": { width: 480, height: 640 }, + "16:9": { width: 854, height: 480 }, + "9:16": { width: 480, height: 854 }, + }, + "720p": { + "1:1": { width: 720, height: 720 }, + "4:3": { width: 960, height: 720 }, + "3:4": { width: 720, height: 960 }, + "16:9": { width: 1280, height: 720 }, + "9:16": { width: 720, height: 1280 }, + }, + "1080p": { + "1:1": { width: 1080, height: 1080 }, + "4:3": { width: 1440, height: 1080 }, + "3:4": { width: 1080, height: 1440 }, + "16:9": { width: 1920, height: 1080 }, + "9:16": { width: 1080, height: 1920 }, + }, +}; + +// 解析视频分辨率参数 +function resolveVideoResolution( + resolution: string = "720p", + ratio: string = "1:1" +): { width: number; height: number } { + const resolutionGroup = VIDEO_RESOLUTION_OPTIONS[resolution]; + if (!resolutionGroup) { + const supportedResolutions = Object.keys(VIDEO_RESOLUTION_OPTIONS).join(", "); + throw new Error(`不支持的视频分辨率 "${resolution}"。支持的分辨率: ${supportedResolutions}`); + } + + const ratioConfig = resolutionGroup[ratio]; + if (!ratioConfig) { + const supportedRatios = Object.keys(resolutionGroup).join(", "); + throw new Error(`在 "${resolution}" 分辨率下,不支持的比例 "${ratio}"。支持的比例: ${supportedRatios}`); + } + + return { + width: ratioConfig.width, + height: ratioConfig.height, + }; +} + +export function getModel(model: string) { + return MODEL_MAP[model] || MODEL_MAP[DEFAULT_MODEL]; +} + +// AWS4-HMAC-SHA256 签名生成函数(从 images.ts 复制) +function createSignature( + method: string, + url: string, + headers: { [key: string]: string }, + accessKeyId: string, + secretAccessKey: string, + sessionToken?: string, + payload: string = '', + awsRegion: string = 'cn-north-1', + serviceName: string = 'imagex' +) { + const urlObj = new URL(url); + const pathname = urlObj.pathname || '/'; + const search = urlObj.search; + + // 创建规范请求 + const timestamp = headers['x-amz-date']; + const date = timestamp.substr(0, 8); + const region = awsRegion; + const service = serviceName; + + // 规范化查询参数 + const queryParams: Array<[string, string]> = []; + const searchParams = new URLSearchParams(search); + searchParams.forEach((value, key) => { + queryParams.push([key, value]); + }); + + // 按键名排序 + queryParams.sort(([a], [b]) => { + if (a < b) return -1; + if (a > b) return 1; + return 0; + }); + + const canonicalQueryString = queryParams + .map(([key, value]) => `${key}=${value}`) + .join('&'); + + // 规范化头部 + const headersToSign: { [key: string]: string } = { + 'x-amz-date': timestamp + }; + + if (sessionToken) { + headersToSign['x-amz-security-token'] = sessionToken; + } + + let payloadHash = crypto.createHash('sha256').update('').digest('hex'); + if (method.toUpperCase() === 'POST' && payload) { + payloadHash = crypto.createHash('sha256').update(payload, 'utf8').digest('hex'); + headersToSign['x-amz-content-sha256'] = payloadHash; + } + + const signedHeaders = Object.keys(headersToSign) + .map(key => key.toLowerCase()) + .sort() + .join(';'); + + const canonicalHeaders = Object.keys(headersToSign) + .sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())) + .map(key => `${key.toLowerCase()}:${headersToSign[key].trim()}\n`) + .join(''); + + const canonicalRequest = [ + method.toUpperCase(), + pathname, + canonicalQueryString, + canonicalHeaders, + signedHeaders, + payloadHash + ].join('\n'); + + // 创建待签名字符串 + const credentialScope = `${date}/${region}/${service}/aws4_request`; + const stringToSign = [ + 'AWS4-HMAC-SHA256', + timestamp, + credentialScope, + crypto.createHash('sha256').update(canonicalRequest, 'utf8').digest('hex') + ].join('\n'); + + // 生成签名 + const kDate = crypto.createHmac('sha256', `AWS4${secretAccessKey}`).update(date).digest(); + const kRegion = crypto.createHmac('sha256', kDate).update(region).digest(); + const kService = crypto.createHmac('sha256', kRegion).update(service).digest(); + const kSigning = crypto.createHmac('sha256', kService).update('aws4_request').digest(); + const signature = crypto.createHmac('sha256', kSigning).update(stringToSign, 'utf8').digest('hex'); + + return `AWS4-HMAC-SHA256 Credential=${accessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`; +} + +// 计算文件的CRC32值(从 images.ts 复制) +function calculateCRC32(buffer: ArrayBuffer): string { + const crcTable = []; + for (let i = 0; i < 256; i++) { + let crc = i; + for (let j = 0; j < 8; j++) { + crc = (crc & 1) ? (0xEDB88320 ^ (crc >>> 1)) : (crc >>> 1); + } + crcTable[i] = crc; + } + + let crc = 0 ^ (-1); + const bytes = new Uint8Array(buffer); + for (let i = 0; i < bytes.length; i++) { + crc = (crc >>> 8) ^ crcTable[(crc ^ bytes[i]) & 0xFF]; + } + return ((crc ^ (-1)) >>> 0).toString(16).padStart(8, '0'); +} + +// 视频专用图片上传功能(基于 images.ts 的 uploadImageFromUrl) +async function uploadImageForVideo(imageUrl: string, refreshToken: string): Promise { + try { + logger.info(`开始上传视频图片: ${imageUrl}`); + + // 第一步:获取上传令牌 + const tokenResult = await request("post", "/mweb/v1/get_upload_token", refreshToken, { + data: { + scene: 2, // AIGC 图片上传场景 + }, + }); + + const { access_key_id, secret_access_key, session_token, service_id } = tokenResult; + if (!access_key_id || !secret_access_key || !session_token) { + throw new Error("获取上传令牌失败"); + } + + const actualServiceId = service_id || "tb4s082cfz"; + logger.info(`获取上传令牌成功: service_id=${actualServiceId}`); + + // 下载图片数据 + const imageResponse = await fetch(imageUrl); + if (!imageResponse.ok) { + throw new Error(`下载图片失败: ${imageResponse.status}`); + } + + const imageBuffer = await imageResponse.arrayBuffer(); + const fileSize = imageBuffer.byteLength; + const crc32 = calculateCRC32(imageBuffer); + + logger.info(`图片下载完成: 大小=${fileSize}字节, CRC32=${crc32}`); + + // 第二步:申请图片上传权限 + const now = new Date(); + const timestamp = now.toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + + const randomStr = Math.random().toString(36).substring(2, 12); + const applyUrl = `https://imagex.bytedanceapi.com/?Action=ApplyImageUpload&Version=2018-08-01&ServiceId=${actualServiceId}&FileSize=${fileSize}&s=${randomStr}`; + + const requestHeaders = { + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token + }; + + const authorization = createSignature('GET', applyUrl, requestHeaders, access_key_id, secret_access_key, session_token); + + logger.info(`申请上传权限: ${applyUrl}`); + + const applyResponse = await fetch(applyUrl, { + method: 'GET', + headers: { + 'accept': '*/*', + 'accept-language': 'zh-CN,zh;q=0.9', + 'authorization': authorization, + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Google Chrome";v="132"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"Windows"', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'cross-site', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token, + }, + }); + + if (!applyResponse.ok) { + const errorText = await applyResponse.text(); + throw new Error(`申请上传权限失败: ${applyResponse.status} - ${errorText}`); + } + + const applyResult = await applyResponse.json(); + + if (applyResult?.ResponseMetadata?.Error) { + throw new Error(`申请上传权限失败: ${JSON.stringify(applyResult.ResponseMetadata.Error)}`); + } + + logger.info(`申请上传权限成功`); + + // 解析上传信息 + const uploadAddress = applyResult?.Result?.UploadAddress; + if (!uploadAddress || !uploadAddress.StoreInfos || !uploadAddress.UploadHosts) { + throw new Error(`获取上传地址失败: ${JSON.stringify(applyResult)}`); + } + + const storeInfo = uploadAddress.StoreInfos[0]; + const uploadHost = uploadAddress.UploadHosts[0]; + const auth = storeInfo.Auth; + + const uploadUrl = `https://${uploadHost}/upload/v1/${storeInfo.StoreUri}`; + const imageId = storeInfo.StoreUri.split('/').pop(); + + logger.info(`准备上传图片: imageId=${imageId}, uploadUrl=${uploadUrl}`); + + // 第三步:上传图片文件 + const uploadResponse = await fetch(uploadUrl, { + method: 'POST', + headers: { + 'Accept': '*/*', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'Authorization': auth, + 'Connection': 'keep-alive', + 'Content-CRC32': crc32, + 'Content-Disposition': 'attachment; filename="undefined"', + 'Content-Type': 'application/octet-stream', + 'Origin': 'https://jimeng.jianying.com', + 'Referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'Sec-Fetch-Dest': 'empty', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Site': 'cross-site', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'X-Storage-U': '704135154117550', + }, + body: imageBuffer, + }); + + if (!uploadResponse.ok) { + const errorText = await uploadResponse.text(); + throw new Error(`图片上传失败: ${uploadResponse.status} - ${errorText}`); + } + + logger.info(`图片文件上传成功`); + + // 第四步:提交上传 + const commitUrl = `https://imagex.bytedanceapi.com/?Action=CommitImageUpload&Version=2018-08-01&ServiceId=${actualServiceId}`; + + const commitTimestamp = new Date().toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + const commitPayload = JSON.stringify({ + SessionKey: uploadAddress.SessionKey, + SuccessActionStatus: "200" + }); + + const payloadHash = crypto.createHash('sha256').update(commitPayload, 'utf8').digest('hex'); + + const commitRequestHeaders = { + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash + }; + + const commitAuthorization = createSignature('POST', commitUrl, commitRequestHeaders, access_key_id, secret_access_key, session_token, commitPayload); + + const commitResponse = await fetch(commitUrl, { + method: 'POST', + headers: { + 'accept': '*/*', + 'accept-language': 'zh-CN,zh;q=0.9', + 'authorization': commitAuthorization, + 'content-type': 'application/json', + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Google Chrome";v="132"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"Windows"', + 'sec-fetch-dest': 'empty', + 'sec-fetch-mode': 'cors', + 'sec-fetch-site': 'cross-site', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash, + }, + body: commitPayload, + }); + + if (!commitResponse.ok) { + const errorText = await commitResponse.text(); + throw new Error(`提交上传失败: ${commitResponse.status} - ${errorText}`); + } + + const commitResult = await commitResponse.json(); + + if (commitResult?.ResponseMetadata?.Error) { + throw new Error(`提交上传失败: ${JSON.stringify(commitResult.ResponseMetadata.Error)}`); + } + + if (!commitResult?.Result?.Results || commitResult.Result.Results.length === 0) { + throw new Error(`提交上传响应缺少结果: ${JSON.stringify(commitResult)}`); + } + + const uploadResult = commitResult.Result.Results[0]; + if (uploadResult.UriStatus !== 2000) { + throw new Error(`图片上传状态异常: UriStatus=${uploadResult.UriStatus}`); + } + + const fullImageUri = uploadResult.Uri; + + // 验证图片信息 + const pluginResult = commitResult.Result?.PluginResult?.[0]; + if (pluginResult && pluginResult.ImageUri) { + logger.info(`视频图片上传完成: ${pluginResult.ImageUri}`); + return pluginResult.ImageUri; + } + + logger.info(`视频图片上传完成: ${fullImageUri}`); + return fullImageUri; + + } catch (error) { + logger.error(`视频图片上传失败: ${error.message}`); + throw error; + } +} + +// 从Buffer上传视频图片 +async function uploadImageBufferForVideo(buffer: Buffer, refreshToken: string): Promise { + try { + logger.info(`开始从Buffer上传视频图片,大小: ${buffer.length}字节`); + + // 第一步:获取上传令牌 + const tokenResult = await request("post", "/mweb/v1/get_upload_token", refreshToken, { + data: { + scene: 2, + }, + }); + + const { access_key_id, secret_access_key, session_token, service_id } = tokenResult; + if (!access_key_id || !secret_access_key || !session_token) { + throw new Error("获取上传令牌失败"); + } + + const actualServiceId = service_id || "tb4s082cfz"; + logger.info(`获取上传令牌成功: service_id=${actualServiceId}`); + + const fileSize = buffer.length; + const crc32 = calculateCRC32(buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)); + + logger.info(`Buffer大小: ${fileSize}字节, CRC32=${crc32}`); + + // 第二步:申请图片上传权限 + const now = new Date(); + const timestamp = now.toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + + const randomStr = Math.random().toString(36).substring(2, 12); + const applyUrl = `https://imagex.bytedanceapi.com/?Action=ApplyImageUpload&Version=2018-08-01&ServiceId=${actualServiceId}&FileSize=${fileSize}&s=${randomStr}`; + + const requestHeaders = { + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token + }; + + const authorization = createSignature('GET', applyUrl, requestHeaders, access_key_id, secret_access_key, session_token); + + const applyResponse = await fetch(applyUrl, { + method: 'GET', + headers: { + 'accept': '*/*', + 'accept-language': 'zh-CN,zh;q=0.9', + 'authorization': authorization, + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token, + }, + }); + + if (!applyResponse.ok) { + const errorText = await applyResponse.text(); + throw new Error(`申请上传权限失败: ${applyResponse.status} - ${errorText}`); + } + + const applyResult = await applyResponse.json(); + + if (applyResult?.ResponseMetadata?.Error) { + throw new Error(`申请上传权限失败: ${JSON.stringify(applyResult.ResponseMetadata.Error)}`); + } + + const uploadAddress = applyResult?.Result?.UploadAddress; + if (!uploadAddress || !uploadAddress.StoreInfos || !uploadAddress.UploadHosts) { + throw new Error(`获取上传地址失败: ${JSON.stringify(applyResult)}`); + } + + const storeInfo = uploadAddress.StoreInfos[0]; + const uploadHost = uploadAddress.UploadHosts[0]; + const auth = storeInfo.Auth; + + const uploadUrl = `https://${uploadHost}/upload/v1/${storeInfo.StoreUri}`; + + // 第三步:上传图片文件 + const uploadResponse = await fetch(uploadUrl, { + method: 'POST', + headers: { + 'Accept': '*/*', + 'Authorization': auth, + 'Content-CRC32': crc32, + 'Content-Disposition': 'attachment; filename="undefined"', + 'Content-Type': 'application/octet-stream', + 'Origin': 'https://jimeng.jianying.com', + 'Referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + }, + body: buffer, + }); + + if (!uploadResponse.ok) { + const errorText = await uploadResponse.text(); + throw new Error(`图片上传失败: ${uploadResponse.status} - ${errorText}`); + } + + logger.info(`Buffer图片文件上传成功`); + + // 第四步:提交上传 + const commitUrl = `https://imagex.bytedanceapi.com/?Action=CommitImageUpload&Version=2018-08-01&ServiceId=${actualServiceId}`; + + const commitTimestamp = new Date().toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + const commitPayload = JSON.stringify({ + SessionKey: uploadAddress.SessionKey, + SuccessActionStatus: "200" + }); + + const payloadHash = crypto.createHash('sha256').update(commitPayload, 'utf8').digest('hex'); + + const commitRequestHeaders = { + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash + }; + + const commitAuthorization = createSignature('POST', commitUrl, commitRequestHeaders, access_key_id, secret_access_key, session_token, commitPayload); + + const commitResponse = await fetch(commitUrl, { + method: 'POST', + headers: { + 'accept': '*/*', + 'authorization': commitAuthorization, + 'content-type': 'application/json', + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash, + }, + body: commitPayload, + }); + + if (!commitResponse.ok) { + const errorText = await commitResponse.text(); + throw new Error(`提交上传失败: ${commitResponse.status} - ${errorText}`); + } + + const commitResult = await commitResponse.json(); + + if (commitResult?.ResponseMetadata?.Error) { + throw new Error(`提交上传失败: ${JSON.stringify(commitResult.ResponseMetadata.Error)}`); + } + + if (!commitResult?.Result?.Results || commitResult.Result.Results.length === 0) { + throw new Error(`提交上传响应缺少结果: ${JSON.stringify(commitResult)}`); + } + + const uploadResult = commitResult.Result.Results[0]; + if (uploadResult.UriStatus !== 2000) { + throw new Error(`图片上传状态异常: UriStatus=${uploadResult.UriStatus}`); + } + + const fullImageUri = uploadResult.Uri; + + const pluginResult = commitResult.Result?.PluginResult?.[0]; + if (pluginResult && pluginResult.ImageUri) { + logger.info(`Buffer视频图片上传完成: ${pluginResult.ImageUri}`); + return pluginResult.ImageUri; + } + + logger.info(`Buffer视频图片上传完成: ${fullImageUri}`); + return fullImageUri; + + } catch (error) { + logger.error(`Buffer视频图片上传失败: ${error.message}`); + throw error; + } +} + +/** + * 解析音频文件时长(毫秒) + * 支持 WAV 格式精确解析,其他格式按 128kbps 估算 + */ +function parseAudioDuration(buffer: Buffer): number { + try { + // WAV: RIFF header check + if (buffer.length >= 44 && + buffer[0] === 0x52 && buffer[1] === 0x49 && buffer[2] === 0x46 && buffer[3] === 0x46 && + buffer[8] === 0x57 && buffer[9] === 0x41 && buffer[10] === 0x56 && buffer[11] === 0x45) { + const byteRate = buffer.readUInt32LE(28); + if (byteRate > 0) { + // 查找 data chunk 获取精确大小 + let offset = 12; + while (offset < buffer.length - 8) { + const chunkId = buffer.toString('ascii', offset, offset + 4); + const chunkSize = buffer.readUInt32LE(offset + 4); + if (chunkId === 'data') { + return Math.round(chunkSize / byteRate * 1000); + } + offset += 8 + chunkSize; + } + // 兜底:用文件大小估算 + return Math.round((buffer.length - 44) / byteRate * 1000); + } + } + // 非 WAV:按 128kbps 估算 + return Math.round(buffer.length / (128 * 1000 / 8) * 1000); + } catch { + return 0; + } +} + +/** + * 上传视频/音频文件 + * 通过 ByteDance VOD (视频点播) API 上传 + * 流程: get_upload_token(scene=1) → ApplyUploadInner → Upload → CommitUploadInner + * + * @param buffer 文件 Buffer + * @param mediaType "video" 或 "audio" + * @param refreshToken 刷新令牌 + * @param filename 原始文件名(可选) + * @returns { vid, width?, height?, duration?, fps? } + */ +async function uploadMediaForVideo( + buffer: Buffer, + mediaType: "video" | "audio", + refreshToken: string, + filename?: string +): Promise<{ vid: string; width?: number; height?: number; duration?: number; fps?: number }> { + const label = mediaType === "audio" ? "音频" : "视频"; + const fileSize = buffer.length; + logger.info(`开始上传${label}文件,大小: ${fileSize} 字节`); + + // 第一步:获取 VOD 上传令牌(scene=1) + const tokenResult = await request("post", "/mweb/v1/get_upload_token", refreshToken, { + data: { scene: 1 }, + }); + + const { access_key_id, secret_access_key, session_token, space_name } = tokenResult; + if (!access_key_id || !secret_access_key || !session_token) { + throw new Error(`获取${label}上传令牌失败`); + } + + const spaceName = space_name || "dreamina"; + logger.info(`获取${label}上传令牌成功: spaceName=${spaceName}`); + + // 第二步:申请 VOD 上传权限(ApplyUploadInner) + const now = new Date(); + const timestamp = now.toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + const randomStr = Math.random().toString(36).substring(2, 12); + + const vodHost = "https://vod.bytedanceapi.com"; + const applyUrl = `${vodHost}/?Action=ApplyUploadInner&Version=2020-11-19&SpaceName=${spaceName}&FileType=video&IsInner=1&FileSize=${fileSize}&s=${randomStr}`; + + const requestHeaders: Record = { + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token, + }; + + const authorization = createSignature( + 'GET', applyUrl, requestHeaders, + access_key_id, secret_access_key, session_token, + '', 'cn-north-1', 'vod' + ); + + logger.info(`申请${label}上传权限: ${applyUrl}`); + + const applyResponse = await fetch(applyUrl, { + method: 'GET', + headers: { + 'accept': '*/*', + 'accept-language': 'zh-CN,zh;q=0.9', + 'authorization': authorization, + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': timestamp, + 'x-amz-security-token': session_token, + }, + }); + + if (!applyResponse.ok) { + const errorText = await applyResponse.text(); + throw new Error(`申请${label}上传权限失败: ${applyResponse.status} - ${errorText}`); + } + + const applyResult: any = await applyResponse.json(); + if (applyResult?.ResponseMetadata?.Error) { + throw new Error(`申请${label}上传权限失败: ${JSON.stringify(applyResult.ResponseMetadata.Error)}`); + } + + const uploadNodes = applyResult?.Result?.InnerUploadAddress?.UploadNodes; + if (!uploadNodes || uploadNodes.length === 0) { + throw new Error(`获取${label}上传节点失败: ${JSON.stringify(applyResult)}`); + } + + const uploadNode = uploadNodes[0]; + const storeInfo = uploadNode.StoreInfos?.[0]; + if (!storeInfo) { + throw new Error(`获取${label}上传存储信息失败: ${JSON.stringify(uploadNode)}`); + } + + const uploadHost = uploadNode.UploadHost; + const storeUri = storeInfo.StoreUri; + const auth = storeInfo.Auth; + const sessionKey = uploadNode.SessionKey; + const vid = uploadNode.Vid; + + logger.info(`获取${label}上传节点成功: host=${uploadHost}, vid=${vid}`); + + // 第三步:上传文件 + const uploadUrl = `https://${uploadHost}/upload/v1/${storeUri}`; + const crc32 = calculateCRC32(buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)); + + logger.info(`开始上传${label}文件: ${uploadUrl}, CRC32=${crc32}`); + + const uploadResponse = await fetch(uploadUrl, { + method: 'POST', + headers: { + 'Accept': '*/*', + 'Authorization': auth, + 'Content-CRC32': crc32, + 'Content-Type': 'application/octet-stream', + 'Origin': 'https://jimeng.jianying.com', + 'Referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + }, + body: buffer, + }); + + if (!uploadResponse.ok) { + const errorText = await uploadResponse.text(); + throw new Error(`${label}文件上传失败: ${uploadResponse.status} - ${errorText}`); + } + + const uploadData: any = await uploadResponse.json(); + if (uploadData?.code !== 2000) { + throw new Error(`${label}文件上传失败: code=${uploadData?.code}, message=${uploadData?.message}`); + } + + logger.info(`${label}文件上传成功: crc32=${uploadData.data?.crc32}`); + + // 第四步:确认上传(CommitUploadInner) + const commitUrl = `${vodHost}/?Action=CommitUploadInner&Version=2020-11-19&SpaceName=${spaceName}`; + const commitTimestamp = new Date().toISOString().replace(/[:\-]/g, '').replace(/\.\d{3}Z$/, 'Z'); + const commitPayload = JSON.stringify({ + SessionKey: sessionKey, + Functions: [], + }); + + const payloadHash = crypto.createHash('sha256').update(commitPayload, 'utf8').digest('hex'); + + const commitRequestHeaders: Record = { + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash, + }; + + const commitAuthorization = createSignature( + 'POST', commitUrl, commitRequestHeaders, + access_key_id, secret_access_key, session_token, + commitPayload, 'cn-north-1', 'vod' + ); + + logger.info(`提交${label}上传确认: ${commitUrl}`); + + const commitResponse = await fetch(commitUrl, { + method: 'POST', + headers: { + 'accept': '*/*', + 'authorization': commitAuthorization, + 'content-type': 'application/json', + 'origin': 'https://jimeng.jianying.com', + 'referer': 'https://jimeng.jianying.com/ai-tool/video/generate', + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36', + 'x-amz-date': commitTimestamp, + 'x-amz-security-token': session_token, + 'x-amz-content-sha256': payloadHash, + }, + body: commitPayload, + }); + + if (!commitResponse.ok) { + const errorText = await commitResponse.text(); + throw new Error(`提交${label}上传失败: ${commitResponse.status} - ${errorText}`); + } + + const commitResult: any = await commitResponse.json(); + if (commitResult?.ResponseMetadata?.Error) { + throw new Error(`提交${label}上传失败: ${JSON.stringify(commitResult.ResponseMetadata.Error)}`); + } + + if (!commitResult?.Result?.Results || commitResult.Result.Results.length === 0) { + throw new Error(`提交${label}上传响应缺少结果: ${JSON.stringify(commitResult)}`); + } + + const result = commitResult.Result.Results[0]; + if (!result.Vid) { + throw new Error(`提交${label}上传响应缺少 Vid: ${JSON.stringify(result)}`); + } + + // 从 VOD 返回的元数据中获取信息(音频有 Duration) + const videoMeta = result.VideoMeta || {}; + let duration = videoMeta.Duration ? Math.round(videoMeta.Duration * 1000) : 0; + + // 如果 VOD 未返回时长,用本地解析兜底 + if (duration <= 0 && mediaType === "audio") { + duration = parseAudioDuration(buffer); + logger.info(`VOD 未返回${label}时长,本地解析: ${duration}ms`); + } + + logger.info(`${label}上传完成: vid=${result.Vid}, duration=${duration}ms`); + + return { + vid: result.Vid, + width: videoMeta.Width || 0, + height: videoMeta.Height || 0, + duration, + fps: videoMeta.Fps || 0, + }; +} + +/** + * 通过 get_local_item_list API 获取高质量视频下载URL + * 浏览器下载视频时使用此API获取高码率版本(~6297 vs 预览版 ~1152) + * + * @param itemId 视频项目ID + * @param refreshToken 刷新令牌 + * @returns 高质量视频URL,失败时返回 null + */ +async function fetchHighQualityVideoUrl(itemId: string, refreshToken: string): Promise { + try { + logger.info(`尝试获取高质量视频下载URL,item_id: ${itemId}`); + + const result = await request("post", "/mweb/v1/get_local_item_list", refreshToken, { + data: { + item_id_list: [itemId], + pack_item_opt: { + scene: 1, + need_data_integrity: true, + }, + is_for_video_download: true, + }, + }); + + const responseStr = JSON.stringify(result); + logger.info(`get_local_item_list 响应大小: ${responseStr.length} 字符`); + + // 策略1: 从结构化字段中提取视频URL + const itemList = result.item_list || result.local_item_list || []; + if (itemList.length > 0) { + const item = itemList[0]; + const videoUrl = + item?.video?.transcoded_video?.origin?.video_url || + item?.video?.download_url || + item?.video?.play_url || + item?.video?.url; + + if (videoUrl) { + logger.info(`从get_local_item_list结构化字段获取到高清视频URL: ${videoUrl}`); + return videoUrl; + } + } + + // 策略2: 正则匹配 dreamnia.jimeng.com 高质量URL + const hqUrlMatch = responseStr.match(/https:\/\/v[0-9]+-dreamnia\.jimeng\.com\/[^"\s\\]+/); + if (hqUrlMatch && hqUrlMatch[0]) { + logger.info(`正则提取到高质量视频URL (dreamnia): ${hqUrlMatch[0]}`); + return hqUrlMatch[0]; + } + + // 策略3: 匹配任何 jimeng.com 域名的视频URL + const jimengUrlMatch = responseStr.match(/https:\/\/v[0-9]+-[^"\\]*\.jimeng\.com\/[^"\s\\]+/); + if (jimengUrlMatch && jimengUrlMatch[0]) { + logger.info(`正则提取到jimeng视频URL: ${jimengUrlMatch[0]}`); + return jimengUrlMatch[0]; + } + + // 策略4: 匹配任何视频URL(兜底) + const anyVideoUrlMatch = responseStr.match(/https:\/\/v[0-9]+-[^"\\]*\.(vlabvod|jimeng)\.com\/[^"\s\\]+/); + if (anyVideoUrlMatch && anyVideoUrlMatch[0]) { + logger.info(`从get_local_item_list提取到视频URL: ${anyVideoUrlMatch[0]}`); + return anyVideoUrlMatch[0]; + } + + logger.warn(`未能从get_local_item_list响应中提取到视频URL`); + return null; + } catch (error) { + logger.warn(`获取高质量视频下载URL失败: ${error.message}`); + return null; + } +} + +/** + * 生成视频 + * + * @param _model 模型名称 + * @param prompt 提示词 + * @param options 选项 + * @param refreshToken 刷新令牌 + * @returns 视频URL + */ +export async function generateVideo( + _model: string, + prompt: string, + { + ratio = "1:1", + resolution = "720p", + duration = 5, + filePaths = [], + files = [], + }: { + ratio?: string; + resolution?: string; + duration?: number; + filePaths?: string[]; + files?: any[]; + }, + refreshToken: string +) { + const model = getModel(_model); + + // 解析分辨率参数获取实际的宽高 + const { width, height } = resolveVideoResolution(resolution, ratio); + + logger.info(`使用模型: ${_model} 映射模型: ${model} ${width}x${height} (${ratio}@${resolution}) 时长: ${duration}秒`); + + // 检查积分 + const { totalCredit } = await getCredit(refreshToken); + if (totalCredit <= 0) + await receiveCredit(refreshToken); + + // 处理首帧和尾帧图片 + let first_frame_image = undefined; + let end_frame_image = undefined; + + // 处理上传的文件(multipart/form-data) + if (files && files.length > 0) { + let uploadIDs: string[] = []; + logger.info(`开始处理 ${files.length} 个上传文件用于视频生成`); + + for (let i = 0; i < files.length; i++) { + const file = files[i]; + if (!file || !file.filepath) { + logger.warn(`第 ${i + 1} 个文件无效,跳过`); + continue; + } + + try { + logger.info(`开始上传第 ${i + 1} 个文件: ${file.originalFilename || file.filepath}`); + + // 读取文件内容并上传 + const buffer = fs.readFileSync(file.filepath); + const imageUri = await uploadImageBufferForVideo(buffer, refreshToken); + + if (imageUri) { + uploadIDs.push(imageUri); + logger.info(`第 ${i + 1} 个文件上传成功: ${imageUri}`); + } else { + logger.error(`第 ${i + 1} 个文件上传失败: 未获取到 image_uri`); + } + } catch (error) { + logger.error(`第 ${i + 1} 个文件上传失败: ${error.message}`); + + if (i === 0) { + logger.error(`首帧文件上传失败,停止视频生成以避免浪费积分`); + throw new APIException(EX.API_REQUEST_FAILED, `首帧文件上传失败: ${error.message}`); + } else { + logger.warn(`第 ${i + 1} 个文件上传失败,将跳过此文件继续处理`); + } + } + } + + logger.info(`文件上传完成,成功上传 ${uploadIDs.length} 个文件`); + + if (uploadIDs.length === 0) { + logger.error(`所有文件上传失败,停止视频生成以避免浪费积分`); + throw new APIException(EX.API_REQUEST_FAILED, '所有文件上传失败,请检查文件是否有效'); + } + + // 构建首帧图片对象 + if (uploadIDs[0]) { + first_frame_image = { + format: "", + height: height, + id: util.uuid(), + image_uri: uploadIDs[0], + name: "", + platform_type: 1, + source_from: "upload", + type: "image", + uri: uploadIDs[0], + width: width, + }; + logger.info(`设置首帧图片: ${uploadIDs[0]}`); + } + + // 构建尾帧图片对象 + if (uploadIDs[1]) { + end_frame_image = { + format: "", + height: height, + id: util.uuid(), + image_uri: uploadIDs[1], + name: "", + platform_type: 1, + source_from: "upload", + type: "image", + uri: uploadIDs[1], + width: width, + }; + logger.info(`设置尾帧图片: ${uploadIDs[1]}`); + } + } else if (filePaths && filePaths.length > 0) { + let uploadIDs: string[] = []; + logger.info(`开始上传 ${filePaths.length} 张图片用于视频生成`); + + for (let i = 0; i < filePaths.length; i++) { + const filePath = filePaths[i]; + if (!filePath) { + logger.warn(`第 ${i + 1} 张图片路径为空,跳过`); + continue; + } + + try { + logger.info(`开始上传第 ${i + 1} 张图片: ${filePath}`); + + // 使用Amazon S3上传方式 + const imageUri = await uploadImageForVideo(filePath, refreshToken); + + if (imageUri) { + uploadIDs.push(imageUri); + logger.info(`第 ${i + 1} 张图片上传成功: ${imageUri}`); + } else { + logger.error(`第 ${i + 1} 张图片上传失败: 未获取到 image_uri`); + } + } catch (error) { + logger.error(`第 ${i + 1} 张图片上传失败: ${error.message}`); + + // 图片上传失败时,停止视频生成避免浪费积分 + if (i === 0) { + logger.error(`首帧图片上传失败,停止视频生成以避免浪费积分`); + throw new APIException(EX.API_REQUEST_FAILED, `首帧图片上传失败: ${error.message}`); + } else { + logger.warn(`第 ${i + 1} 张图片上传失败,将跳过此图片继续处理`); + } + } + } + + logger.info(`图片上传完成,成功上传 ${uploadIDs.length} 张图片`); + + // 如果没有成功上传任何图片,停止视频生成 + if (uploadIDs.length === 0) { + logger.error(`所有图片上传失败,停止视频生成以避免浪费积分`); + throw new APIException(EX.API_REQUEST_FAILED, '所有图片上传失败,请检查图片URL是否有效'); + } + + // 构建首帧图片对象 + if (uploadIDs[0]) { + first_frame_image = { + format: "", + height: height, + id: util.uuid(), + image_uri: uploadIDs[0], + name: "", + platform_type: 1, + source_from: "upload", + type: "image", + uri: uploadIDs[0], + width: width, + }; + logger.info(`设置首帧图片: ${uploadIDs[0]}`); + } + + // 构建尾帧图片对象 + if (uploadIDs[1]) { + end_frame_image = { + format: "", + height: height, + id: util.uuid(), + image_uri: uploadIDs[1], + name: "", + platform_type: 1, + source_from: "upload", + type: "image", + uri: uploadIDs[1], + width: width, + }; + logger.info(`设置尾帧图片: ${uploadIDs[1]}`); + } else if (filePaths.length > 1) { + logger.warn(`第二张图片上传失败或未提供,将仅使用首帧图片`); + } + } else { + logger.info(`未提供图片文件,将进行纯文本视频生成`); + } + + const componentId = util.uuid(); + const metricsExtra = JSON.stringify({ + "enterFrom": "click", + "isDefaultSeed": 1, + "promptSource": "custom", + "isRegenerate": false, + "originSubmitId": util.uuid(), + }); + + // 获取当前模型的 draft 版本 + const draftVersion = MODEL_DRAFT_VERSIONS[_model] || DEFAULT_DRAFT_VERSION; + + // 计算视频宽高比 + const gcd = (a: number, b: number): number => b === 0 ? a : gcd(b, a % b); + const divisor = gcd(width, height); + const aspectRatio = `${width / divisor}:${height / divisor}`; + + // 构建请求参数 + const { aigc_data } = await request( + "post", + "/mweb/v1/aigc_draft/generate", + refreshToken, + { + params: { + aigc_features: "app_lip_sync", + web_version: "6.6.0", + da_version: draftVersion, + }, + data: { + "extend": { + "root_model": end_frame_image ? MODEL_MAP['jimeng-video-3.0'] : model, + "m_video_commerce_info": { + benefit_type: "basic_video_operation_vgfm_v_three", + resource_id: "generate_video", + resource_id_type: "str", + resource_sub_type: "aigc" + }, + "m_video_commerce_info_list": [{ + benefit_type: "basic_video_operation_vgfm_v_three", + resource_id: "generate_video", + resource_id_type: "str", + resource_sub_type: "aigc" + }] + }, + "submit_id": util.uuid(), + "metrics_extra": metricsExtra, + "draft_content": JSON.stringify({ + "type": "draft", + "id": util.uuid(), + "min_version": "3.0.5", + "is_from_tsn": true, + "version": draftVersion, + "main_component_id": componentId, + "component_list": [{ + "type": "video_base_component", + "id": componentId, + "min_version": "1.0.0", + "metadata": { + "type": "", + "id": util.uuid(), + "created_platform": 3, + "created_platform_version": "", + "created_time_in_ms": Date.now(), + "created_did": "" + }, + "generate_type": "gen_video", + "aigc_mode": "workbench", + "abilities": { + "type": "", + "id": util.uuid(), + "gen_video": { + "id": util.uuid(), + "type": "", + "text_to_video_params": { + "type": "", + "id": util.uuid(), + "model_req_key": model, + "priority": 0, + "seed": Math.floor(Math.random() * 100000000) + 2500000000, + "video_aspect_ratio": aspectRatio, + "video_gen_inputs": [{ + duration_ms: duration * 1000, + first_frame_image: first_frame_image, + end_frame_image: end_frame_image, + fps: 24, + id: util.uuid(), + min_version: "3.0.5", + prompt: prompt, + resolution: resolution, + type: "", + video_mode: 2 + }] + }, + "video_task_extra": metricsExtra, + } + } + }], + }), + http_common_info: { + aid: DEFAULT_ASSISTANT_ID, + }, + }, + } + ); + + const historyId = aigc_data.history_record_id; + if (!historyId) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录ID不存在"); + + // 轮询获取结果 + let status = 20, failCode, item_list = []; + let retryCount = 0; + const maxRetries = 60; // 增加重试次数,支持约20分钟的总重试时间 + + // 首次查询前等待更长时间,让服务器有时间处理请求 + await new Promise((resolve) => setTimeout(resolve, 5000)); + + logger.info(`开始轮询视频生成结果,历史ID: ${historyId},最大重试次数: ${maxRetries}`); + logger.info(`即梦官网API地址: https://jimeng.jianying.com/mweb/v1/get_history_by_ids`); + logger.info(`视频生成请求已发送,请同时在即梦官网查看: https://jimeng.jianying.com/ai-tool/video/generate`); + + while (status === 20 && retryCount < maxRetries) { + try { + // 构建请求URL和参数 + const requestUrl = "/mweb/v1/get_history_by_ids"; + const requestData = { + history_ids: [historyId], + }; + + // 尝试两种不同的API请求方式 + let result; + let useAlternativeApi = retryCount > 10 && retryCount % 2 === 0; // 在重试10次后,每隔一次尝试备用API + + if (useAlternativeApi) { + // 备用API请求方式 + logger.info(`尝试备用API请求方式,URL: ${requestUrl}, 历史ID: ${historyId}, 重试次数: ${retryCount + 1}/${maxRetries}`); + const alternativeRequestData = { + history_record_ids: [historyId], + }; + result = await request("post", "/mweb/v1/get_history_records", refreshToken, { + data: alternativeRequestData, + }); + logger.info(`备用API响应摘要: ${JSON.stringify(result).substring(0, 500)}...`); + } else { + // 标准API请求方式 + logger.info(`发送请求获取视频生成结果,URL: ${requestUrl}, 历史ID: ${historyId}, 重试次数: ${retryCount + 1}/${maxRetries}`); + result = await request("post", requestUrl, refreshToken, { + data: requestData, + }); + const responseStr = JSON.stringify(result); + logger.info(`标准API响应摘要: ${responseStr.substring(0, 300)}...`); + } + + + // 检查结果是否有效 + let historyData; + + if (useAlternativeApi && result.history_records && result.history_records.length > 0) { + // 处理备用API返回的数据格式 + historyData = result.history_records[0]; + logger.info(`从备用API获取到历史记录`); + } else if (result.history_list && result.history_list.length > 0) { + // 处理标准API返回的数据格式 + historyData = result.history_list[0]; + logger.info(`从标准API获取到历史记录`); + } else if (result[historyId]) { + // get_history_by_ids 返回数据以 historyId 为键(如 result["8918159809292"]) + historyData = result[historyId]; + logger.info(`从historyId键获取到历史记录`); + } else { + // 所有API都没有返回有效数据 + logger.warn(`历史记录不存在,重试中 (${retryCount + 1}/${maxRetries})... 历史ID: ${historyId}`); + logger.info(`请同时在即梦官网检查视频是否已生成: https://jimeng.jianying.com/ai-tool/video/generate`); + + retryCount++; + // 增加重试间隔时间,但设置上限为30秒 + const waitTime = Math.min(2000 * (retryCount + 1), 30000); + logger.info(`等待 ${waitTime}ms 后进行第 ${retryCount + 1} 次重试`); + await new Promise((resolve) => setTimeout(resolve, waitTime)); + continue; + } + + // 记录获取到的结果详情 + logger.info(`获取到历史记录结果: ${JSON.stringify(historyData)}`); + + + // 从历史数据中提取状态和结果 + status = historyData.status; + failCode = historyData.fail_code; + item_list = historyData.item_list || []; + + logger.info(`视频生成状态: ${status}, 失败代码: ${failCode || '无'}, 项目列表长度: ${item_list.length}`); + + // 如果有视频URL,提前记录 + let tempVideoUrl = item_list?.[0]?.video?.transcoded_video?.origin?.video_url; + if (!tempVideoUrl) { + // 尝试从其他可能的路径获取 + tempVideoUrl = item_list?.[0]?.video?.play_url || + item_list?.[0]?.video?.download_url || + item_list?.[0]?.video?.url; + } + + if (tempVideoUrl) { + logger.info(`检测到视频URL: ${tempVideoUrl}`); + } + + if (status === 30) { + const error = failCode === 2038 + ? new APIException(EX.API_CONTENT_FILTERED, "内容被过滤") + : new APIException(EX.API_IMAGE_GENERATION_FAILED, `生成失败,错误码: ${failCode}`); + // 添加历史ID到错误对象,以便在chat.ts中显示 + error.historyId = historyId; + throw error; + } + + // 如果状态仍在处理中,等待后继续 + if (status === 20) { + const waitTime = 2000 * (Math.min(retryCount + 1, 5)); // 随着重试次数增加等待时间,但最多10秒 + logger.info(`视频生成中,状态码: ${status},等待 ${waitTime}ms 后继续查询`); + await new Promise((resolve) => setTimeout(resolve, waitTime)); + } + } catch (error) { + logger.error(`轮询视频生成结果出错: ${error.message}`); + retryCount++; + await new Promise((resolve) => setTimeout(resolve, 2000 * (retryCount + 1))); + } + } + + // 如果达到最大重试次数仍未成功 + if (retryCount >= maxRetries && status === 20) { + logger.error(`视频生成超时,已尝试 ${retryCount} 次,总耗时约 ${Math.floor(retryCount * 2000 / 1000 / 60)} 分钟`); + const error = new APIException(EX.API_IMAGE_GENERATION_FAILED, "获取视频生成结果超时,请稍后在即梦官网查看您的视频"); + // 添加历史ID到错误对象,以便在chat.ts中显示 + error.historyId = historyId; + throw error; + } + + // 尝试通过 get_local_item_list 获取高质量视频下载URL + const itemId = item_list?.[0]?.item_id + || item_list?.[0]?.id + || item_list?.[0]?.local_item_id + || item_list?.[0]?.common_attr?.id; + + if (itemId) { + try { + const hqVideoUrl = await fetchHighQualityVideoUrl(String(itemId), refreshToken); + if (hqVideoUrl) { + logger.info(`视频生成成功(高质量),URL: ${hqVideoUrl}`); + return hqVideoUrl; + } + } catch (error) { + logger.warn(`获取高质量视频URL失败,将使用预览URL作为回退: ${error.message}`); + } + } else { + logger.warn(`未能从item_list中提取item_id,将使用预览URL。item_list[0]键: ${item_list?.[0] ? Object.keys(item_list[0]).join(', ') : '无'}`); + } + + // 回退:提取预览视频URL + let videoUrl = item_list?.[0]?.video?.transcoded_video?.origin?.video_url; + + // 如果通过常规路径无法获取视频URL,尝试其他可能的路径 + if (!videoUrl) { + // 尝试从item_list中的其他可能位置获取 + if (item_list?.[0]?.video?.play_url) { + videoUrl = item_list[0].video.play_url; + logger.info(`从play_url获取到视频URL: ${videoUrl}`); + } else if (item_list?.[0]?.video?.download_url) { + videoUrl = item_list[0].video.download_url; + logger.info(`从download_url获取到视频URL: ${videoUrl}`); + } else if (item_list?.[0]?.video?.url) { + videoUrl = item_list[0].video.url; + logger.info(`从url获取到视频URL: ${videoUrl}`); + } else { + // 如果仍然找不到,记录错误并抛出异常 + logger.error(`未能获取视频URL,item_list: ${JSON.stringify(item_list)}`); + const error = new APIException(EX.API_IMAGE_GENERATION_FAILED, "未能获取视频URL,请稍后在即梦官网查看"); + // 添加历史ID到错误对象,以便在chat.ts中显示 + error.historyId = historyId; + throw error; + } + } + + logger.info(`视频生成成功,URL: ${videoUrl}`); + return videoUrl; +} + +/** + * Seedance 2.0 多图智能视频生成 + * 支持多张图片与文本混合生成视频 + * + * @param _model 模型名称 + * @param prompt 提示词(支持 @1 @2 等引用图片占位符) + * @param options 选项 + * @param refreshToken 刷新令牌 + * @returns 视频URL + */ +export async function generateSeedanceVideo( + _model: string, + prompt: string, + { + ratio = "4:3", + resolution = "720p", + duration = 4, + filePaths = [], + files = [], + }: { + ratio?: string; + resolution?: string; + duration?: number; + filePaths?: string[]; + files?: any[]; + }, + refreshToken: string +) { + const model = getModel(_model); + const benefitType = SEEDANCE_BENEFIT_TYPE_MAP[_model] || "dreamina_video_seedance_20_pro"; + + // Seedance 2.0 默认时长为4秒 + const actualDuration = duration || 4; + + // 解析分辨率参数获取实际的宽高 + const { width, height } = resolveVideoResolution(resolution, ratio); + + logger.info(`Seedance 2.0 生成: 模型=${_model} 映射=${model} ${width}x${height} (${ratio}@${resolution}) 时长=${actualDuration}秒`); + + // 检查积分 + const { totalCredit } = await getCredit(refreshToken); + if (totalCredit <= 0) + await receiveCredit(refreshToken); + + // 上传所有文件(支持图片/视频/音频) + let uploadedMaterials: UploadedMaterial[] = []; + + // 处理上传的文件(multipart/form-data) + if (files && files.length > 0) { + logger.info(`Seedance: 开始处理 ${files.length} 个上传文件`); + + for (let i = 0; i < files.length; i++) { + const file = files[i]; + if (!file || !file.filepath) { + logger.warn(`Seedance: 第 ${i + 1} 个文件无效,跳过`); + continue; + } + + const materialType = detectMaterialType(file); + try { + logger.info(`Seedance: 开始上传第 ${i + 1} 个文件 (${materialType}): ${file.originalFilename || file.filepath}`); + const buffer = fs.readFileSync(file.filepath); + + if (materialType === "image") { + const imageUri = await uploadImageBufferForVideo(buffer, refreshToken); + if (imageUri) { + uploadedMaterials.push({ type: "image", uri: imageUri, width, height }); + logger.info(`Seedance: 第 ${i + 1} 个图片上传成功: ${imageUri}`); + } + } else { + // 视频或音频 → VOD 上传 + const vodResult = await uploadMediaForVideo(buffer, materialType, refreshToken, file.originalFilename); + uploadedMaterials.push({ + type: materialType, + vid: vodResult.vid, + width: vodResult.width, + height: vodResult.height, + duration: vodResult.duration, + fps: vodResult.fps, + name: file.originalFilename || "", + }); + logger.info(`Seedance: 第 ${i + 1} 个${materialType === "video" ? "视频" : "音频"}上传成功: ${vodResult.vid}`); + } + } catch (error) { + logger.error(`Seedance: 第 ${i + 1} 个文件上传失败: ${error.message}`); + if (i === 0) { + throw new APIException(EX.API_REQUEST_FAILED, `首个文件上传失败: ${error.message}`); + } + } + } + } else if (filePaths && filePaths.length > 0) { + logger.info(`Seedance: 开始上传 ${filePaths.length} 个文件`); + + for (let i = 0; i < filePaths.length; i++) { + const filePath = filePaths[i]; + if (!filePath) continue; + + const materialType = detectMaterialTypeFromUrl(filePath); + try { + logger.info(`Seedance: 开始上传第 ${i + 1} 个文件 (${materialType}): ${filePath}`); + + if (materialType === "image") { + const imageUri = await uploadImageForVideo(filePath, refreshToken); + if (imageUri) { + uploadedMaterials.push({ type: "image", uri: imageUri, width, height }); + logger.info(`Seedance: 第 ${i + 1} 个图片上传成功: ${imageUri}`); + } + } else { + // 视频或音频 URL → 下载后 VOD 上传 + const response = await fetch(filePath); + if (!response.ok) throw new Error(`下载文件失败: ${response.status}`); + const arrayBuffer = await response.arrayBuffer(); + const buffer = Buffer.from(arrayBuffer); + const vodResult = await uploadMediaForVideo(buffer, materialType, refreshToken); + uploadedMaterials.push({ + type: materialType, + vid: vodResult.vid, + width: vodResult.width, + height: vodResult.height, + duration: vodResult.duration, + fps: vodResult.fps, + }); + logger.info(`Seedance: 第 ${i + 1} 个${materialType === "video" ? "视频" : "音频"}上传成功: ${vodResult.vid}`); + } + } catch (error) { + logger.error(`Seedance: 第 ${i + 1} 个文件上传失败: ${error.message}`); + if (i === 0) { + throw new APIException(EX.API_REQUEST_FAILED, `首个文件上传失败: ${error.message}`); + } + } + } + } + + if (uploadedMaterials.length === 0) { + throw new APIException(EX.API_REQUEST_FAILED, 'Seedance 2.0 需要至少一个文件(图片/视频/音频)'); + } + + logger.info(`Seedance: 成功上传 ${uploadedMaterials.length} 个文件`); + + // 动态 benefit_type:包含视频素材时追加 _with_video 后缀 + const hasVideoMaterial = uploadedMaterials.some(m => m.type === "video"); + const finalBenefitType = hasVideoMaterial ? `${benefitType}_with_video` : benefitType; + + // 构建 material_list(支持图片/视频/音频) + const materialList = uploadedMaterials.map((mat) => { + const base = { type: "", id: util.uuid() }; + if (mat.type === "image") { + return { + ...base, + material_type: "image", + image_info: { + type: "image", + id: util.uuid(), + source_from: "upload", + platform_type: 1, + name: "", + image_uri: mat.uri, + aigc_image: { type: "", id: util.uuid() }, + width: mat.width, + height: mat.height, + format: "", + uri: mat.uri, + } + }; + } else if (mat.type === "video") { + return { + ...base, + material_type: "video", + video_info: { + type: "video", + id: util.uuid(), + source_from: "upload", + name: mat.name || "", + vid: mat.vid, + fps: mat.fps || 0, + width: mat.width || 0, + height: mat.height || 0, + duration: mat.duration || 0, + } + }; + } else { + // audio + return { + ...base, + material_type: "audio", + audio_info: { + type: "audio", + id: util.uuid(), + source_from: "upload", + vid: mat.vid, + duration: mat.duration || 0, + name: mat.name || "", + } + }; + } + }); + + // 解析 prompt 中的素材占位符(@1, @2 等)并构建 meta_list + const metaList = buildMetaListFromPrompt(prompt, uploadedMaterials); + + const componentId = util.uuid(); + const submitId = util.uuid(); + const draftVersion = MODEL_DRAFT_VERSIONS[_model] || "3.3.9"; + + // 计算视频宽高比 + const gcd = (a: number, b: number): number => b === 0 ? a : gcd(b, a % b); + const divisor = gcd(width, height); + const aspectRatio = `${width / divisor}:${height / divisor}`; + + const metricsExtra = JSON.stringify({ + isDefaultSeed: 1, + originSubmitId: submitId, + isRegenerate: false, + enterFrom: "click", + position: "page_bottom_box", + functionMode: "omni_reference", + sceneOptions: JSON.stringify([{ + type: "video", + scene: "BasicVideoGenerateButton", + modelReqKey: model, + videoDuration: actualDuration, + reportParams: { + enterSource: "generate", + vipSource: "generate", + extraVipFunctionKey: model, + useVipFunctionDetailsReporterHoc: true + }, + materialTypes: [...new Set(uploadedMaterials.map(m => MATERIAL_TYPE_CODE[m.type]))] + }]) + }); + + // 构建 Seedance 2.0 专用请求(通过浏览器代理,绕过 shark a_bogus 检测) + const token = await acquireToken(refreshToken); + const generateQueryParams = new URLSearchParams({ + aid: String(CORE_ASSISTANT_ID), + device_platform: "web", + region: "cn", + webId: String(WEB_ID), + da_version: draftVersion, + web_component_open_flag: "1", + web_version: "7.5.0", + aigc_features: "app_lip_sync", + }); + const generateUrl = `https://jimeng.jianying.com/mweb/v1/aigc_draft/generate?${generateQueryParams.toString()}`; + const generateBody = { + extend: { + root_model: model, + m_video_commerce_info: { + benefit_type: finalBenefitType, + resource_id: "generate_video", + resource_id_type: "str", + resource_sub_type: "aigc" + }, + m_video_commerce_info_list: [{ + benefit_type: finalBenefitType, + resource_id: "generate_video", + resource_id_type: "str", + resource_sub_type: "aigc" + }] + }, + submit_id: submitId, + metrics_extra: metricsExtra, + draft_content: JSON.stringify({ + type: "draft", + id: util.uuid(), + min_version: draftVersion, + min_features: ["AIGC_Video_UnifiedEdit"], + is_from_tsn: true, + version: draftVersion, + main_component_id: componentId, + component_list: [{ + type: "video_base_component", + id: componentId, + min_version: "1.0.0", + aigc_mode: "workbench", + metadata: { + type: "", + id: util.uuid(), + created_platform: 3, + created_platform_version: "", + created_time_in_ms: String(Date.now()), + created_did: "" + }, + generate_type: "gen_video", + abilities: { + type: "", + id: util.uuid(), + gen_video: { + type: "", + id: util.uuid(), + text_to_video_params: { + type: "", + id: util.uuid(), + video_gen_inputs: [{ + type: "", + id: util.uuid(), + min_version: draftVersion, + prompt: "", // Seedance 2.0 prompt 在 meta_list 中 + video_mode: 2, + fps: 24, + duration_ms: actualDuration * 1000, + idip_meta_list: [], + unified_edit_input: { + type: "", + id: util.uuid(), + material_list: materialList, + meta_list: metaList + } + }], + video_aspect_ratio: aspectRatio, + seed: Math.floor(Math.random() * 1000000000), + model_req_key: model, + priority: 0 + }, + video_task_extra: metricsExtra + } + }, + process_type: 1 + }] + }), + http_common_info: { + aid: CORE_ASSISTANT_ID, + }, + }; + + logger.info(`Seedance: 通过浏览器代理发送 generate 请求...`); + const generateResult = await browserService.fetch( + token, + generateUrl, + { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(generateBody), + } + ); + + // 检查浏览器代理返回的结果 + const { ret, errmsg, data: generateData } = generateResult; + if (ret !== undefined && Number(ret) !== 0) { + if (Number(ret) === 5000) { + throw new APIException(EX.API_IMAGE_GENERATION_INSUFFICIENT_POINTS, `[无法生成视频]: 即梦积分可能不足,${errmsg}`); + } + throw new APIException(EX.API_REQUEST_FAILED, `[请求jimeng失败]: ${errmsg}`); + } + const aigc_data = generateData?.aigc_data || generateResult.aigc_data; + + const historyId = aigc_data.history_record_id; + if (!historyId) + throw new APIException(EX.API_IMAGE_GENERATION_FAILED, "记录ID不存在"); + + // 轮询获取结果(与普通视频相同的逻辑) + let status = 20, failCode, item_list = []; + let retryCount = 0; + const maxRetries = 60; + + await new Promise((resolve) => setTimeout(resolve, 5000)); + + logger.info(`Seedance: 开始轮询视频生成结果,历史ID: ${historyId}`); + + while (status === 20 && retryCount < maxRetries) { + try { + const result = await request("post", "/mweb/v1/get_history_by_ids", refreshToken, { + data: { history_ids: [historyId] }, + }); + + const responseStr = JSON.stringify(result); + logger.info(`Seedance: 轮询响应摘要: ${responseStr.substring(0, 300)}...`); + + // get_history_by_ids 返回的数据可能以 historyId 为键(如 result["8918159809292"]), + // 也可能在 result.history_list 数组中 + let historyData = result.history_list?.[0] || result[historyId]; + + if (!historyData) { + retryCount++; + const waitTime = Math.min(2000 * (retryCount + 1), 30000); + await new Promise((resolve) => setTimeout(resolve, waitTime)); + continue; + } + status = historyData.status; + failCode = historyData.fail_code; + item_list = historyData.item_list || []; + + logger.info(`Seedance: 状态=${status}, 失败码=${failCode || '无'}`); + + if (status === 30) { + const error = failCode === 2038 + ? new APIException(EX.API_CONTENT_FILTERED, "内容被过滤") + : new APIException(EX.API_IMAGE_GENERATION_FAILED, `生成失败,错误码: ${failCode}`); + error.historyId = historyId; + throw error; + } + + if (status === 20) { + const waitTime = 2000 * Math.min(retryCount + 1, 5); + await new Promise((resolve) => setTimeout(resolve, waitTime)); + } + + retryCount++; + } catch (error) { + if (error instanceof APIException) throw error; + logger.error(`Seedance: 轮询出错: ${error.message}`); + retryCount++; + await new Promise((resolve) => setTimeout(resolve, 2000 * (retryCount + 1))); + } + } + + if (retryCount >= maxRetries && status === 20) { + const error = new APIException(EX.API_IMAGE_GENERATION_FAILED, "视频生成超时"); + error.historyId = historyId; + throw error; + } + + // 尝试通过 get_local_item_list 获取高质量视频下载URL + const seedanceItemId = item_list?.[0]?.item_id + || item_list?.[0]?.id + || item_list?.[0]?.local_item_id + || item_list?.[0]?.common_attr?.id; + + if (seedanceItemId) { + try { + const hqVideoUrl = await fetchHighQualityVideoUrl(String(seedanceItemId), refreshToken); + if (hqVideoUrl) { + logger.info(`Seedance: 视频生成成功(高质量),URL: ${hqVideoUrl}`); + return hqVideoUrl; + } + } catch (error) { + logger.warn(`Seedance: 获取高质量视频URL失败,将使用预览URL作为回退: ${error.message}`); + } + } else { + logger.warn(`Seedance: 未能从item_list中提取item_id,将使用预览URL。item_list[0]键: ${item_list?.[0] ? Object.keys(item_list[0]).join(', ') : '无'}`); + } + + // 回退:提取预览视频URL + let videoUrl = item_list?.[0]?.video?.transcoded_video?.origin?.video_url + || item_list?.[0]?.video?.play_url + || item_list?.[0]?.video?.download_url + || item_list?.[0]?.video?.url; + + if (!videoUrl) { + const error = new APIException(EX.API_IMAGE_GENERATION_FAILED, "未能获取视频URL"); + error.historyId = historyId; + throw error; + } + + logger.info(`Seedance: 视频生成成功,URL: ${videoUrl}`); + return videoUrl; +} + +/** + * 解析 prompt 中的素材占位符并构建 meta_list + * 支持格式: "使用 @1 图片,@2 图片做动画" -> [text, material(0), text, material(1), text] + * meta_type 根据素材实际类型动态匹配(image/video/audio) + */ +function buildMetaListFromPrompt(prompt: string, materials: Array<{ type: SeedanceMaterialType }>): Array<{meta_type: string, text?: string, material_ref?: {material_idx: number}}> { + const metaList: Array<{meta_type: string, text?: string, material_ref?: {material_idx: number}}> = []; + const materialCount = materials.length; + + // 匹配 @1, @2, @图1, @图2, @image1 等格式 + const placeholderRegex = /@(?:图|image)?(\d+)/gi; + + let lastIndex = 0; + let match; + + while ((match = placeholderRegex.exec(prompt)) !== null) { + // 添加占位符前的文本 + if (match.index > lastIndex) { + const textBefore = prompt.substring(lastIndex, match.index); + if (textBefore.trim()) { + metaList.push({ meta_type: "text", text: textBefore }); + } + } + + // 添加素材引用(使用对应素材的类型作为 meta_type) + const materialIndex = parseInt(match[1]) - 1; // @1 对应 index 0 + if (materialIndex >= 0 && materialIndex < materialCount) { + metaList.push({ + meta_type: materials[materialIndex].type, + text: "", + material_ref: { material_idx: materialIndex } + }); + } + + lastIndex = match.index + match[0].length; + } + + // 添加剩余的文本 + if (lastIndex < prompt.length) { + const remainingText = prompt.substring(lastIndex); + if (remainingText.trim()) { + metaList.push({ meta_type: "text", text: remainingText }); + } + } + + // 如果没有找到任何占位符,默认引用所有素材并附加整个prompt作为文本 + if (metaList.length === 0) { + // 先添加所有素材引用 + for (let i = 0; i < materialCount; i++) { + if (i === 0) { + metaList.push({ meta_type: "text", text: "使用" }); + } + metaList.push({ + meta_type: materials[i].type, + text: "", + material_ref: { material_idx: i } + }); + if (i < materialCount - 1) { + metaList.push({ meta_type: "text", text: "和" }); + } + } + // 添加描述文本 + if (prompt && prompt.trim()) { + metaList.push({ meta_type: "text", text: `素材,${prompt}` }); + } else { + metaList.push({ meta_type: "text", text: "素材生成视频" }); + } + } + + return metaList; +} \ No newline at end of file diff --git a/src/api/routes/chat.ts b/src/api/routes/chat.ts new file mode 100644 index 0000000..405f21b --- /dev/null +++ b/src/api/routes/chat.ts @@ -0,0 +1,36 @@ +import _ from 'lodash'; + +import Request from '@/lib/request/Request.ts'; +import Response from '@/lib/response/Response.ts'; +import { tokenSplit } from '@/api/controllers/core.ts'; +import { createCompletion, createCompletionStream } from '@/api/controllers/chat.ts'; + +export default { + + prefix: '/v1/chat', + + post: { + + '/completions': async (request: Request) => { + request + .validate('body.model', v => _.isUndefined(v) || _.isString(v)) + .validate('body.messages', _.isArray) + .validate('headers.authorization', _.isString) + // refresh_token切分 + const tokens = tokenSplit(request.headers.authorization); + // 随机挑选一个refresh_token + const token = _.sample(tokens); + const { model, messages, stream } = request.body; + if (stream) { + const stream = await createCompletionStream(messages, token, model); + return new Response(stream, { + type: "text/event-stream" + }); + } + else + return await createCompletion(messages, token, model); + } + + } + +} \ No newline at end of file diff --git a/src/api/routes/images.ts b/src/api/routes/images.ts new file mode 100644 index 0000000..af3e691 --- /dev/null +++ b/src/api/routes/images.ts @@ -0,0 +1,278 @@ +import fs from "fs"; +import _ from "lodash"; + +import Request from "@/lib/request/Request.ts"; +import { generateImages, generateImageComposition } from "@/api/controllers/images.ts"; +import { tokenSplit } from "@/api/controllers/core.ts"; +import util from "@/lib/util.ts"; + +export default { + prefix: "/v1/images", + + post: { + "/generations": async (request: Request) => { + // 检查是否使用了不支持的参数 + const unsupportedParams = ['size', 'width', 'height']; + const bodyKeys = Object.keys(request.body); + const foundUnsupported = unsupportedParams.filter(param => bodyKeys.includes(param)); + + if (foundUnsupported.length > 0) { + throw new Error(`不支持的参数: ${foundUnsupported.join(', ')}。请使用 ratio 和 resolution 参数控制图像尺寸。`); + } + + const contentType = request.headers['content-type'] || ''; + const isMultiPart = contentType.startsWith('multipart/form-data'); + + // 根据请求类型进行不同的参数验证 + if (isMultiPart) { + request + .validate("body.model", v => _.isUndefined(v) || _.isString(v)) + .validate("body.prompt", _.isString) + .validate("body.negative_prompt", v => _.isUndefined(v) || _.isString(v)) + .validate("body.ratio", v => _.isUndefined(v) || _.isString(v)) + .validate("body.resolution", v => _.isUndefined(v) || _.isString(v)) + .validate("body.intelligent_ratio", v => _.isUndefined(v) || (typeof v === 'string' && (v === 'true' || v === 'false')) || _.isBoolean(v)) + .validate("body.sample_strength", v => _.isUndefined(v) || (typeof v === 'string' && !isNaN(parseFloat(v))) || _.isFinite(v)) + .validate("body.response_format", v => _.isUndefined(v) || _.isString(v)) + .validate("headers.authorization", _.isString); + } else { + request + .validate("body.model", v => _.isUndefined(v) || _.isString(v)) + .validate("body.prompt", _.isString) + .validate("body.images", v => _.isUndefined(v) || _.isArray(v)) + .validate("body.negative_prompt", v => _.isUndefined(v) || _.isString(v)) + .validate("body.ratio", v => _.isUndefined(v) || _.isString(v)) + .validate("body.resolution", v => _.isUndefined(v) || _.isString(v)) + .validate("body.intelligent_ratio", v => _.isUndefined(v) || _.isBoolean(v)) + .validate("body.sample_strength", v => _.isUndefined(v) || _.isFinite(v)) + .validate("body.response_format", v => _.isUndefined(v) || _.isString(v)) + .validate("headers.authorization", _.isString); + } + + // 处理图片数据(如果提供) + let images: (string | Buffer)[] | null = null; + if (isMultiPart) { + const files = (request.files as any)?.images; + if (files) { + const imageFiles = Array.isArray(files) ? files : [files]; + if (imageFiles.length > 0) { + if (imageFiles.length > 10) { + throw new Error("最多支持10张输入图片"); + } + images = imageFiles.map((file: any) => fs.readFileSync(file.filepath)); + } + } + } else { + const bodyImages = request.body.images; + if (bodyImages && Array.isArray(bodyImages) && bodyImages.length > 0) { + if (bodyImages.length > 10) { + throw new Error("最多支持10张输入图片"); + } + bodyImages.forEach((image: any, index: number) => { + if (!_.isString(image) && !_.isObject(image)) { + throw new Error(`图片 ${index + 1} 格式不正确:应为URL字符串或包含url字段的对象`); + } + if (_.isObject(image) && !(image as any).url) { + throw new Error(`图片 ${index + 1} 缺少url字段`); + } + }); + images = bodyImages.map((image: any) => _.isString(image) ? image : (image as any).url); + } + } + + // refresh_token切分 + const tokens = tokenSplit(request.headers.authorization); + // 随机挑选一个refresh_token + const token = _.sample(tokens); + + const { + model, + prompt, + negative_prompt: negativePrompt, + ratio, + resolution, + intelligent_ratio: intelligentRatio, + sample_strength: sampleStrength, + response_format, + } = request.body; + + // 如果是 multipart/form-data,需要将字符串转换为数字和布尔值 + const finalSampleStrength = isMultiPart && typeof sampleStrength === 'string' + ? parseFloat(sampleStrength) + : sampleStrength; + + const finalIntelligentRatio = isMultiPart && typeof intelligentRatio === 'string' + ? intelligentRatio === 'true' + : intelligentRatio; + + const responseFormat = _.defaultTo(response_format, "url"); + + // 根据是否有图片数据决定调用文生图还是图生图 + let imageUrls: string[]; + let resultData: any = { + created: util.unixTimestamp(), + }; + + if (images && images.length > 0) { + // 图生图模式 + imageUrls = await generateImageComposition(model, prompt, images, { + ratio, + resolution, + sampleStrength: finalSampleStrength, + negativePrompt, + intelligentRatio: finalIntelligentRatio, + }, token); + resultData.input_images = images.length; + resultData.composition_type = "multi_image_synthesis"; + } else { + // 文生图模式 + imageUrls = await generateImages(model, prompt, { + ratio, + resolution, + sampleStrength: finalSampleStrength, + negativePrompt, + intelligentRatio: finalIntelligentRatio, + }, token); + } + + let data = []; + if (responseFormat == "b64_json") { + data = ( + await Promise.all(imageUrls.map((url) => util.fetchFileBASE64(url))) + ).map((b64) => ({ b64_json: b64 })); + } else { + data = imageUrls.map((url) => ({ + url, + })); + } + + resultData.data = data; + return resultData; + }, + + // 图片合成路由(图生图) + "/compositions": async (request: Request) => { + // 检查是否使用了不支持的参数 + const unsupportedParams = ['size', 'width', 'height']; + const bodyKeys = Object.keys(request.body); + const foundUnsupported = unsupportedParams.filter(param => bodyKeys.includes(param)); + + if (foundUnsupported.length > 0) { + throw new Error(`不支持的参数: ${foundUnsupported.join(', ')}。请使用 ratio 和 resolution 参数控制图像尺寸。`); + } + + const contentType = request.headers['content-type'] || ''; + const isMultiPart = contentType.startsWith('multipart/form-data'); + + if (isMultiPart) { + request + .validate("body.model", v => _.isUndefined(v) || _.isString(v)) + .validate("body.prompt", _.isString) + .validate("body.negative_prompt", v => _.isUndefined(v) || _.isString(v)) + .validate("body.ratio", v => _.isUndefined(v) || _.isString(v)) + .validate("body.resolution", v => _.isUndefined(v) || _.isString(v)) + .validate("body.intelligent_ratio", v => _.isUndefined(v) || (typeof v === 'string' && (v === 'true' || v === 'false')) || _.isBoolean(v)) + .validate("body.sample_strength", v => _.isUndefined(v) || (typeof v === 'string' && !isNaN(parseFloat(v))) || _.isFinite(v)) + .validate("body.response_format", v => _.isUndefined(v) || _.isString(v)) + .validate("headers.authorization", _.isString); + } else { + request + .validate("body.model", v => _.isUndefined(v) || _.isString(v)) + .validate("body.prompt", _.isString) + .validate("body.images", _.isArray) + .validate("body.negative_prompt", v => _.isUndefined(v) || _.isString(v)) + .validate("body.ratio", v => _.isUndefined(v) || _.isString(v)) + .validate("body.resolution", v => _.isUndefined(v) || _.isString(v)) + .validate("body.intelligent_ratio", v => _.isUndefined(v) || _.isBoolean(v)) + .validate("body.sample_strength", v => _.isUndefined(v) || _.isFinite(v)) + .validate("body.response_format", v => _.isUndefined(v) || _.isString(v)) + .validate("headers.authorization", _.isString); + } + + let images: (string | Buffer)[] = []; + if (isMultiPart) { + const files = (request.files as any)?.images; + if (!files) { + throw new Error("在form-data中缺少 'images' 字段"); + } + const imageFiles = Array.isArray(files) ? files : [files]; + if (imageFiles.length === 0) { + throw new Error("至少需要提供1张输入图片"); + } + if (imageFiles.length > 10) { + throw new Error("最多支持10张输入图片"); + } + images = imageFiles.map((file: any) => fs.readFileSync(file.filepath)); + } else { + const bodyImages = request.body.images; + if (!bodyImages || bodyImages.length === 0) { + throw new Error("至少需要提供1张输入图片"); + } + if (bodyImages.length > 10) { + throw new Error("最多支持10张输入图片"); + } + bodyImages.forEach((image: any, index: number) => { + if (!_.isString(image) && !_.isObject(image)) { + throw new Error(`图片 ${index + 1} 格式不正确:应为URL字符串或包含url字段的对象`); + } + if (_.isObject(image) && !(image as any).url) { + throw new Error(`图片 ${index + 1} 缺少url字段`); + } + }); + images = bodyImages.map((image: any) => _.isString(image) ? image : (image as any).url); + } + + // refresh_token切分 + const tokens = tokenSplit(request.headers.authorization); + // 随机挑选一个refresh_token + const token = _.sample(tokens); + + const { + model, + prompt, + negative_prompt: negativePrompt, + ratio, + resolution, + intelligent_ratio: intelligentRatio, + sample_strength: sampleStrength, + response_format, + } = request.body; + + // 如果是 multipart/form-data,需要将字符串转换为数字和布尔值 + const finalSampleStrength = isMultiPart && typeof sampleStrength === 'string' + ? parseFloat(sampleStrength) + : sampleStrength; + + const finalIntelligentRatio = isMultiPart && typeof intelligentRatio === 'string' + ? intelligentRatio === 'true' + : intelligentRatio; + + const responseFormat = _.defaultTo(response_format, "url"); + const resultUrls = await generateImageComposition(model, prompt, images, { + ratio, + resolution, + sampleStrength: finalSampleStrength, + negativePrompt, + intelligentRatio: finalIntelligentRatio, + }, token); + + let data = []; + if (responseFormat == "b64_json") { + data = ( + await Promise.all(resultUrls.map((url) => util.fetchFileBASE64(url))) + ).map((b64) => ({ b64_json: b64 })); + } else { + data = resultUrls.map((url) => ({ + url, + })); + } + + return { + created: util.unixTimestamp(), + data, + input_images: images.length, + composition_type: "multi_image_synthesis", + }; + }, + }, +}; diff --git a/src/api/routes/index.ts b/src/api/routes/index.ts new file mode 100644 index 0000000..7aa2de5 --- /dev/null +++ b/src/api/routes/index.ts @@ -0,0 +1,33 @@ +import fs from 'fs-extra'; + +import Response from '@/lib/response/Response.ts'; +import images from "./images.ts"; +import chat from "./chat.ts"; +import ping from "./ping.ts"; +import token from './token.js'; +import models from './models.ts'; +import videos from './videos.ts'; +import video from './video.ts'; + +export default [ + { + get: { + '/': async () => { + const content = await fs.readFile('public/welcome.html'); + return new Response(content, { + type: 'html', + headers: { + Expires: '-1' + } + }); + } + } + }, + images, + chat, + ping, + token, + models, + videos, + video +]; \ No newline at end of file diff --git a/src/api/routes/models.ts b/src/api/routes/models.ts new file mode 100644 index 0000000..ded8054 --- /dev/null +++ b/src/api/routes/models.ts @@ -0,0 +1,153 @@ +import _ from 'lodash'; + +export default { + + prefix: '/v1', + + get: { + '/models': async () => { + return { + "data": [ + { + "id": "jimeng", + "object": "model", + "owned_by": "jimeng-free-api" + }, + { + "id": "jimeng-5.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 5.0 版本(最新)" + }, + { + "id": "jimeng-4.6", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 4.6 版本(最新)" + }, + { + "id": "jimeng-4.5", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 4.5 版本" + }, + { + "id": "jimeng-4.1", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 4.1 版本" + }, + { + "id": "jimeng-4.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 4.0 版本" + }, + { + "id": "jimeng-3.1", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 3.1 版本" + }, + { + "id": "jimeng-3.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 3.0 版本" + }, + { + "id": "jimeng-2.1", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 2.1 版本" + }, + { + "id": "jimeng-2.0-pro", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 2.0 专业版" + }, + { + "id": "jimeng-2.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 2.0 版本" + }, + { + "id": "jimeng-1.4", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 1.4 版本" + }, + { + "id": "jimeng-xl-pro", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI图像生成模型 XL Pro 版本" + }, + { + "id": "jimeng-video-3.5-pro", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI视频生成模型 3.5 专业版" + }, + { + "id": "jimeng-video-3.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI视频生成模型 3.0 版本" + }, + { + "id": "jimeng-video-3.0-pro", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI视频生成模型 3.0 专业版" + }, + { + "id": "jimeng-video-2.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI视频生成模型 2.0 版本" + }, + { + "id": "jimeng-video-2.0-pro", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "即梦AI视频生成模型 2.0 专业版" + }, + { + "id": "jimeng-video-seedance-2.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "Seedance 2.0 多图智能视频生成模型(上游标准名称,支持4-15秒,多张图片混合生成视频)" + }, + { + "id": "seedance-2.0", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "Seedance 2.0 多图智能视频生成模型(jimeng-video-seedance-2.0 的别名,向后兼容)" + }, + { + "id": "seedance-2.0-pro", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "Seedance 2.0 Pro 多图智能视频生成模型(jimeng-video-seedance-2.0 的别名,向后兼容)" + }, + { + "id": "jimeng-video-seedance-2.0-fast", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "Seedance 2.0-fast 快速多图智能视频生成模型(上游标准名称,支持4-15秒)" + }, + { + "id": "seedance-2.0-fast", + "object": "model", + "owned_by": "jimeng-free-api", + "description": "Seedance 2.0-fast 快速多图智能视频生成模型(jimeng-video-seedance-2.0-fast 的别名,向后兼容)" + } + ] + }; + } + + } +} \ No newline at end of file diff --git a/src/api/routes/ping.ts b/src/api/routes/ping.ts new file mode 100644 index 0000000..dc9af72 --- /dev/null +++ b/src/api/routes/ping.ts @@ -0,0 +1,6 @@ +export default { + prefix: '/ping', + get: { + '': async () => "pong" + } +} \ No newline at end of file diff --git a/src/api/routes/token.ts b/src/api/routes/token.ts new file mode 100644 index 0000000..9cc0b3f --- /dev/null +++ b/src/api/routes/token.ts @@ -0,0 +1,39 @@ +import _ from 'lodash'; + +import Request from '@/lib/request/Request.ts'; +import Response from '@/lib/response/Response.ts'; +import { getTokenLiveStatus, getCredit, tokenSplit } from '@/api/controllers/core.ts'; +import logger from '@/lib/logger.ts'; + +export default { + + prefix: '/token', + + post: { + + '/check': async (request: Request) => { + request + .validate('body.token', _.isString) + const live = await getTokenLiveStatus(request.body.token); + return { + live + } + }, + + '/points': async (request: Request) => { + request + .validate('headers.authorization', _.isString) + // refresh_token切分 + const tokens = tokenSplit(request.headers.authorization); + const points = await Promise.all(tokens.map(async (token) => { + return { + token, + points: await getCredit(token) + } + })) + return points; + } + + } + +} \ No newline at end of file diff --git a/src/api/routes/video.ts b/src/api/routes/video.ts new file mode 100644 index 0000000..7c02483 --- /dev/null +++ b/src/api/routes/video.ts @@ -0,0 +1,6 @@ +import videos from './videos.ts'; + +export default { + ...videos, + prefix: '/v1/video' +}; diff --git a/src/api/routes/videos.ts b/src/api/routes/videos.ts new file mode 100644 index 0000000..cf70943 --- /dev/null +++ b/src/api/routes/videos.ts @@ -0,0 +1,135 @@ +import _ from 'lodash'; + +import Request from '@/lib/request/Request.ts'; +import Response from '@/lib/response/Response.ts'; +import { tokenSplit } from '@/api/controllers/core.ts'; +import { generateVideo, generateSeedanceVideo, isSeedanceModel, DEFAULT_MODEL } from '@/api/controllers/videos.ts'; +import util from '@/lib/util.ts'; + +export default { + + prefix: '/v1/videos', + + post: { + + '/generations': async (request: Request) => { + // 检查是否使用了不支持的参数 + const unsupportedParams = ['size', 'width', 'height']; + const bodyKeys = Object.keys(request.body); + const foundUnsupported = unsupportedParams.filter(param => bodyKeys.includes(param)); + + if (foundUnsupported.length > 0) { + throw new Error(`不支持的参数: ${foundUnsupported.join(', ')}。请使用 ratio 和 resolution 参数控制视频尺寸。`); + } + + const contentType = request.headers['content-type'] || ''; + const isMultiPart = contentType.startsWith('multipart/form-data'); + + request + .validate('body.model', v => _.isUndefined(v) || _.isString(v)) + .validate('body.prompt', v => _.isUndefined(v) || _.isString(v)) + .validate('body.ratio', v => _.isUndefined(v) || _.isString(v)) + .validate('body.resolution', v => _.isUndefined(v) || _.isString(v)) + .validate('body.duration', v => { + if (_.isUndefined(v)) return true; + // 对于 multipart/form-data,允许字符串类型的数字 + if (isMultiPart && typeof v === 'string') { + const num = parseInt(v); + // Seedance 支持 4-15 秒连续范围,普通视频支持 5 或 10 秒 + return (num >= 4 && num <= 15) || num === 5 || num === 10; + } + // 对于 JSON,要求数字类型 + // Seedance 支持 4-15 秒连续范围,普通视频支持 5 或 10 秒 + return _.isFinite(v) && ((v >= 4 && v <= 15) || v === 5 || v === 10); + }) + .validate('body.file_paths', v => _.isUndefined(v) || _.isArray(v)) + .validate('body.filePaths', v => _.isUndefined(v) || _.isArray(v)) + .validate('body.response_format', v => _.isUndefined(v) || _.isString(v)) + .validate('headers.authorization', _.isString); + + // refresh_token切分 + const tokens = tokenSplit(request.headers.authorization); + // 随机挑选一个refresh_token + const token = _.sample(tokens); + + const { + model = DEFAULT_MODEL, + prompt, + ratio = "1:1", + resolution = "720p", + duration = 5, + file_paths = [], + filePaths = [], + response_format = "url" + } = request.body; + + // 如果是 multipart/form-data,需要将字符串转换为数字 + const finalDuration = isMultiPart && typeof duration === 'string' + ? parseInt(duration) + : duration; + + // 兼容两种参数名格式:file_paths 和 filePaths + const finalFilePaths = filePaths.length > 0 ? filePaths : file_paths; + + // 根据模型类型选择不同的生成函数 + let videoUrl: string; + if (isSeedanceModel(model)) { + // Seedance 2.0 多图智能视频生成 + // Seedance 默认时长为 4 秒,默认比例为 4:3 + const seedanceDuration = finalDuration === 5 ? 4 : finalDuration; // 如果是默认的5秒,转为4秒 + const seedanceRatio = ratio === "1:1" ? "4:3" : ratio; // 如果是默认的1:1,转为4:3 + + videoUrl = await generateSeedanceVideo( + model, + prompt, + { + ratio: seedanceRatio, + resolution, + duration: seedanceDuration, + filePaths: finalFilePaths, + files: request.files, + }, + token + ); + } else { + // 普通视频生成 + videoUrl = await generateVideo( + model, + prompt, + { + ratio, + resolution, + duration: finalDuration, + filePaths: finalFilePaths, + files: request.files, + }, + token + ); + } + + // 根据response_format返回不同格式的结果 + if (response_format === "b64_json") { + // 获取视频内容并转换为BASE64 + const videoBase64 = await util.fetchFileBASE64(videoUrl); + return { + created: util.unixTimestamp(), + data: [{ + b64_json: videoBase64, + revised_prompt: prompt + }] + }; + } else { + // 默认返回URL + return { + created: util.unixTimestamp(), + data: [{ + url: videoUrl, + revised_prompt: prompt + }] + }; + } + } + + } + +} diff --git a/src/daemon.ts b/src/daemon.ts new file mode 100644 index 0000000..0c5fe69 --- /dev/null +++ b/src/daemon.ts @@ -0,0 +1,82 @@ +/** + * 守护进程 + */ + +import process from 'process'; +import path from 'path'; +import { spawn } from 'child_process'; + +import fs from 'fs-extra'; +import { format as dateFormat } from 'date-fns'; +import 'colors'; + +const CRASH_RESTART_LIMIT = 600; //进程崩溃重启次数限制 +const CRASH_RESTART_DELAY = 5000; //进程崩溃重启延迟 +const LOG_PATH = path.resolve("./logs/daemon.log"); //守护进程日志路径 +let crashCount = 0; //进程崩溃次数 +let currentProcess; //当前运行进程 + +/** + * 写入守护进程日志 + */ +function daemonLog(value, color?: string) { + try { + const head = `[daemon][${dateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")}] `; + value = head + value; + console.log(color ? value[color] : value); + fs.ensureDirSync(path.dirname(LOG_PATH)); + fs.appendFileSync(LOG_PATH, value + "\n"); + } + catch(err) { + console.error("daemon log write error:", err); + } +} + +daemonLog(`daemon pid: ${process.pid}`); + +function createProcess() { + const childProcess = spawn("node", ["index.js", ...process.argv.slice(2)]); //启动子进程 + childProcess.stdout.pipe(process.stdout, { end: false }); //将子进程输出管道到当前进程输出 + childProcess.stderr.pipe(process.stderr, { end: false }); //将子进程错误输出管道到当前进程输出 + currentProcess = childProcess; //更新当前进程 + daemonLog(`process(${childProcess.pid}) has started`); + childProcess.on("error", err => daemonLog(`process(${childProcess.pid}) error: ${err.stack}`, "red")); + childProcess.on("close", code => { + if(code === 0) //进程正常退出 + daemonLog(`process(${childProcess.pid}) has exited`); + else if(code === 2) //进程已被杀死 + daemonLog(`process(${childProcess.pid}) has been killed!`, "bgYellow"); + else if(code === 3) { //进程主动重启 + daemonLog(`process(${childProcess.pid}) has restart`, "yellow"); + createProcess(); //重新创建进程 + } + else { //进程发生崩溃 + if(crashCount++ < CRASH_RESTART_LIMIT) { //进程崩溃次数未达重启次数上限前尝试重启 + daemonLog(`process(${childProcess.pid}) has crashed! delay ${CRASH_RESTART_DELAY}ms try restarting...(${crashCount})`, "bgRed"); + setTimeout(() => createProcess(), CRASH_RESTART_DELAY); //延迟指定时长后再重启 + } + else //进程已崩溃,且无法重启 + daemonLog(`process(${childProcess.pid}) has crashed! unable to restart`, "bgRed"); + } + }); //子进程关闭监听 +} + +process.on("exit", code => { + if(code === 0) + daemonLog("daemon process exited"); + else if(code === 2) + daemonLog("daemon process has been killed!"); +}); //守护进程退出事件 + +process.on("SIGTERM", () => { + daemonLog("received kill signal", "yellow"); + currentProcess && currentProcess.kill("SIGINT"); + process.exit(2); +}); //kill退出守护进程 + +process.on("SIGINT", () => { + currentProcess && currentProcess.kill("SIGINT"); + process.exit(0); +}); //主动退出守护进程 + +createProcess(); //创建进程 diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..67618d2 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,32 @@ +"use strict"; + +import environment from "@/lib/environment.ts"; +import config from "@/lib/config.ts"; +import "@/lib/initialize.ts"; +import server from "@/lib/server.ts"; +import routes from "@/api/routes/index.ts"; +import logger from "@/lib/logger.ts"; + +const startupTime = performance.now(); + +(async () => { + logger.header(); + + logger.info("<<<< jimeng free server >>>>"); + logger.info("Version:", environment.package.version); + logger.info("Process id:", process.pid); + logger.info("Environment:", environment.env); + logger.info("Service name:", config.service.name); + + server.attachRoutes(routes); + await server.listen(); + + config.service.bindAddress && + logger.success("Service bind address:", config.service.bindAddress); +})() + .then(() => + logger.success( + `Service startup completed (${Math.floor(performance.now() - startupTime)}ms)` + ) + ) + .catch((err) => console.error(err)); diff --git a/src/lib/browser-service.ts b/src/lib/browser-service.ts new file mode 100644 index 0000000..6b739d7 --- /dev/null +++ b/src/lib/browser-service.ts @@ -0,0 +1,289 @@ +import { chromium, Browser, BrowserContext, Page } from "playwright-core"; +import logger from "@/lib/logger.ts"; +import { getCookiesForBrowser } from "@/api/controllers/core.ts"; + +// bdms SDK 相关脚本的白名单域名 +const SCRIPT_WHITELIST_DOMAINS = [ + "vlabstatic.com", + "bytescm.com", + "jianying.com", + "byteimg.com", +]; + +// 需要屏蔽的资源类型(加速加载、减少内存) +const BLOCKED_RESOURCE_TYPES = ["image", "font", "stylesheet", "media"]; + +// 会话空闲超时时间(毫秒) +const SESSION_IDLE_TIMEOUT = 10 * 60 * 1000; + +// bdms SDK 就绪等待超时(毫秒) +const BDMS_READY_TIMEOUT = 30000; + +interface BrowserSession { + context: BrowserContext; + page: Page; + lastUsed: number; + idleTimer: NodeJS.Timeout | null; +} + +class BrowserService { + private browser: Browser | null = null; + private sessions: Map = new Map(); + private launching: Promise | null = null; + + /** + * 懒启动浏览器实例 + */ + private async ensureBrowser(): Promise { + if (this.browser?.isConnected()) { + return this.browser; + } + + // 防止并发启动 + if (this.launching) { + return this.launching; + } + + this.launching = (async () => { + logger.info("BrowserService: 正在启动 Chromium 浏览器..."); + try { + this.browser = await chromium.launch({ + headless: true, + args: [ + "--no-sandbox", + "--disable-setuid-sandbox", + "--disable-dev-shm-usage", + "--disable-gpu", + "--no-first-run", + "--no-zygote", + "--single-process", + ], + }); + + this.browser.on("disconnected", () => { + logger.warn("BrowserService: 浏览器已断开连接"); + this.browser = null; + this.sessions.clear(); + }); + + logger.info("BrowserService: Chromium 浏览器启动成功"); + return this.browser; + } finally { + this.launching = null; + } + })(); + + return this.launching; + } + + /** + * 获取或创建指定 token 的浏览器会话 + */ + private async getSession(token: string): Promise { + const existing = this.sessions.get(token); + if (existing) { + existing.lastUsed = Date.now(); + // 重置空闲计时器 + if (existing.idleTimer) { + clearTimeout(existing.idleTimer); + } + existing.idleTimer = setTimeout(() => this.closeSession(token), SESSION_IDLE_TIMEOUT); + return existing; + } + + return this.createSession(token); + } + + /** + * 创建新的浏览器会话 + */ + private async createSession(token: string): Promise { + const browser = await this.ensureBrowser(); + + logger.info(`BrowserService: 为 token ${token.substring(0, 8)}... 创建新会话`); + + const context = await browser.newContext({ + userAgent: + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36", + viewport: { width: 1920, height: 1080 }, + locale: "zh-CN", + }); + + // 注入 cookies + const cookies = getCookiesForBrowser(token); + await context.addCookies(cookies); + + // 配置资源拦截 + await context.route("**/*", (route) => { + const request = route.request(); + const resourceType = request.resourceType(); + const url = request.url(); + + // 屏蔽不需要的资源类型 + if (BLOCKED_RESOURCE_TYPES.includes(resourceType)) { + return route.abort(); + } + + // 对于脚本资源,只允许白名单域名 + if (resourceType === "script") { + const isWhitelisted = SCRIPT_WHITELIST_DOMAINS.some((domain) => + url.includes(domain) + ); + if (!isWhitelisted) { + return route.abort(); + } + } + + return route.continue(); + }); + + const page = await context.newPage(); + + // 导航到即梦页面,让 bdms SDK 加载 + logger.info("BrowserService: 正在导航到 jimeng.jianying.com ..."); + await page.goto("https://jimeng.jianying.com", { + waitUntil: "domcontentloaded", + timeout: 30000, + }); + + // 等待 bdms SDK 就绪 + logger.info("BrowserService: 等待 bdms SDK 就绪..."); + try { + await page.waitForFunction( + () => { + // bdms SDK 会替换 window.fetch,检测其是否被替换 + // 也可以检测 window.bdms 或 window.byted_acrawler + return ( + (window as any).bdms?.init || + (window as any).byted_acrawler || + // 检测 fetch 是否被替换(bdms 会替换原生 fetch) + window.fetch.toString().indexOf("native code") === -1 + ); + }, + { timeout: BDMS_READY_TIMEOUT } + ); + logger.info("BrowserService: bdms SDK 已就绪"); + } catch (err) { + logger.warn( + "BrowserService: bdms SDK 等待超时,可能未完全加载,继续尝试..." + ); + } + + const session: BrowserSession = { + context, + page, + lastUsed: Date.now(), + idleTimer: setTimeout(() => this.closeSession(token), SESSION_IDLE_TIMEOUT), + }; + + this.sessions.set(token, session); + return session; + } + + /** + * 关闭指定 token 的会话 + */ + private async closeSession(token: string) { + const session = this.sessions.get(token); + if (!session) return; + + logger.info(`BrowserService: 关闭空闲会话 ${token.substring(0, 8)}...`); + if (session.idleTimer) { + clearTimeout(session.idleTimer); + } + + try { + await session.context.close(); + } catch (err) { + // 忽略关闭错误 + } + + this.sessions.delete(token); + } + + /** + * 通过浏览器代理发送 fetch 请求 + * bdms SDK 会自动拦截 fetch 并注入 a_bogus 签名 + * + * @param token sessionid + * @param url 完整的请求 URL + * @param options fetch 选项 (method, headers, body) + * @returns 解析后的 JSON 响应 + */ + async fetch( + token: string, + url: string, + options: { method?: string; headers?: Record; body?: string } + ): Promise { + const session = await this.getSession(token); + + logger.info(`BrowserService: 代理请求 ${options.method || "GET"} ${url.substring(0, 100)}...`); + + try { + const result = await session.page.evaluate( + async ({ url, options }) => { + try { + const res = await fetch(url, { + method: options.method || "GET", + headers: { + "Content-Type": "application/json", + ...(options.headers || {}), + }, + body: options.body, + credentials: "include", + }); + const text = await res.text(); + return { ok: res.ok, status: res.status, text }; + } catch (err: any) { + return { ok: false, status: 0, text: "", error: err.message }; + } + }, + { url, options } + ); + + if (result.error) { + throw new Error(`浏览器 fetch 失败: ${result.error}`); + } + + logger.info(`BrowserService: 响应状态 ${result.status}`); + + try { + return JSON.parse(result.text); + } catch { + logger.warn(`BrowserService: 响应不是有效 JSON: ${result.text.substring(0, 200)}`); + return result.text; + } + } catch (err) { + // 如果执行失败(页面崩溃等),清理会话以便下次重建 + logger.error(`BrowserService: 请求执行失败: ${(err as Error).message}`); + await this.closeSession(token); + throw err; + } + } + + /** + * 关闭所有会话和浏览器实例 + */ + async close() { + logger.info("BrowserService: 正在关闭所有会话和浏览器..."); + + for (const [token] of this.sessions) { + await this.closeSession(token); + } + + if (this.browser) { + try { + await this.browser.close(); + } catch (err) { + // 忽略关闭错误 + } + this.browser = null; + } + + logger.info("BrowserService: 已关闭"); + } +} + +// 单例导出 +const browserService = new BrowserService(); +export default browserService; diff --git a/src/lib/config.ts b/src/lib/config.ts new file mode 100644 index 0000000..b6072d2 --- /dev/null +++ b/src/lib/config.ts @@ -0,0 +1,14 @@ +import serviceConfig from "./configs/service-config.ts"; +import systemConfig from "./configs/system-config.ts"; + +class Config { + + /** 服务配置 */ + service = serviceConfig; + + /** 系统配置 */ + system = systemConfig; + +} + +export default new Config(); \ No newline at end of file diff --git a/src/lib/configs/model-config.ts b/src/lib/configs/model-config.ts new file mode 100644 index 0000000..3c1eeed --- /dev/null +++ b/src/lib/configs/model-config.ts @@ -0,0 +1,407 @@ +/** + * 模型配置文件 + * 定义不同模型的特定参数和配置 + */ + +export interface ModelConfig { + // 模型内部名称 + internalModel: string; + // draft版本 + draftVersion: string; + // 支持的功能 + features: { + // 是否支持多图生成 + multiImage: boolean; + // 是否支持图生图 + imageToImage: boolean; + // 是否支持视频生成 + videoGeneration: boolean; + }; + // 默认参数 + defaultParams: { + // 默认宽度 + width: number; + // 默认高度 + height: number; + // 支持的分辨率列表 + resolutions: Array<{ width: number; height: number }>; + // 采样强度范围 + sampleStrengthRange: [number, number]; + }; + // 特殊配置 + specialConfig?: { + // 是否需要特定的头部信息 + specialHeaders?: Record; + // 是否有特殊的参数要求 + extraParams?: Record; + }; +} + +// 模型配置映射 +export const MODEL_CONFIGS: Record = { + "jimeng-5.0": { + internalModel: "high_aes_general_v50", + draftVersion: "3.3.9", + features: { + multiImage: true, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 2048, + height: 2048, + resolutions: [ + { width: 1024, height: 1024 }, + { width: 768, height: 1024 }, + { width: 1024, height: 768 }, + { width: 1024, height: 576 }, + { width: 576, height: 1024 }, + { width: 1024, height: 682 }, + { width: 682, height: 1024 }, + { width: 1195, height: 512 }, + { width: 2048, height: 2048 }, + { width: 2304, height: 1728 }, + { width: 1728, height: 2304 }, + { width: 2560, height: 1440 }, + { width: 1440, height: 2560 }, + { width: 2496, height: 1664 }, + { width: 1664, height: 2496 }, + { width: 3024, height: 1296 }, + ], + sampleStrengthRange: [0.1, 1.0], + }, + }, + "jimeng-4.6": { + internalModel: "high_aes_general_v42", + draftVersion: "3.3.9", + features: { + multiImage: true, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 2048, + height: 2048, + resolutions: [ + { width: 1024, height: 1024 }, + { width: 768, height: 1024 }, + { width: 1024, height: 768 }, + { width: 1024, height: 576 }, + { width: 576, height: 1024 }, + { width: 1024, height: 682 }, + { width: 682, height: 1024 }, + { width: 1195, height: 512 }, + { width: 2048, height: 2048 }, + { width: 2304, height: 1728 }, + { width: 1728, height: 2304 }, + { width: 2560, height: 1440 }, + { width: 1440, height: 2560 }, + { width: 2496, height: 1664 }, + { width: 1664, height: 2496 }, + { width: 3024, height: 1296 }, + ], + sampleStrengthRange: [0.1, 1.0], + }, + }, + "jimeng-video-3.5-pro": { + internalModel: "dreamina_ic_generate_video_model_vgfm_3.5_pro", + draftVersion: "3.3.4", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: true, + }, + defaultParams: { + width: 1280, + height: 720, + resolutions: [ + { width: 1280, height: 720 }, + { width: 720, height: 1280 }, + { width: 1080, height: 1080 }, + { width: 1920, height: 1080 }, + { width: 1080, height: 1920 }, + ], + sampleStrengthRange: [0.1, 1.0], + }, + }, + "jimeng-4.5": { + internalModel: "high_aes_general_v40l", + draftVersion: "3.3.4", + features: { + multiImage: true, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 2048, + height: 2048, + resolutions: [ + { width: 1024, height: 1024 }, + { width: 768, height: 1024 }, + { width: 1024, height: 768 }, + { width: 1024, height: 576 }, + { width: 576, height: 1024 }, + { width: 1024, height: 682 }, + { width: 682, height: 1024 }, + { width: 1195, height: 512 }, + { width: 2048, height: 2048 }, + { width: 2304, height: 1728 }, + { width: 1728, height: 2304 }, + { width: 2560, height: 1440 }, + { width: 1440, height: 2560 }, + { width: 2496, height: 1664 }, + { width: 1664, height: 2496 }, + { width: 3024, height: 1296 }, + ], + sampleStrengthRange: [0.1, 1.0], + }, + }, + "jimeng-4.1": { + internalModel: "high_aes_general_v41", + draftVersion: "3.3.4", + features: { + multiImage: true, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 2048, + height: 2048, + resolutions: [ + { width: 1024, height: 1024 }, + { width: 768, height: 1024 }, + { width: 1024, height: 768 }, + { width: 1024, height: 576 }, + { width: 576, height: 1024 }, + { width: 1024, height: 682 }, + { width: 682, height: 1024 }, + { width: 1195, height: 512 }, + { width: 2048, height: 2048 }, + { width: 2304, height: 1728 }, + { width: 1728, height: 2304 }, + { width: 2560, height: 1440 }, + { width: 1440, height: 2560 }, + { width: 2496, height: 1664 }, + { width: 1664, height: 2496 }, + { width: 3024, height: 1296 }, + ], + sampleStrengthRange: [0.1, 1.0], + }, + }, + "jimeng-4.0": { + internalModel: "high_aes_general_v40", + draftVersion: "3.3.4", + features: { + multiImage: true, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 2048, + height: 2048, + resolutions: [ + { width: 1024, height: 1024 }, + { width: 768, height: 1024 }, + { width: 1024, height: 768 }, + { width: 1024, height: 576 }, + { width: 576, height: 1024 }, + { width: 1024, height: 682 }, + { width: 682, height: 1024 }, + { width: 1195, height: 512 }, + { width: 2048, height: 2048 }, + { width: 2304, height: 1728 }, + { width: 1728, height: 2304 }, + { width: 2560, height: 1440 }, + { width: 1440, height: 2560 }, + { width: 2496, height: 1664 }, + { width: 1664, height: 2496 }, + { width: 3024, height: 1296 }, + ], + sampleStrengthRange: [0.1, 1.0], + }, + }, + "jimeng-3.1": { + internalModel: "high_aes_general_v30l_art_fangzhou:general_v3.0_18b", + draftVersion: "3.0.2", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 1024, + height: 1024, + resolutions: [ + { width: 512, height: 512 }, + { width: 768, height: 768 }, + { width: 1024, height: 1024 }, + ], + sampleStrengthRange: [0.1, 0.8], + }, + }, + "jimeng-3.0": { + internalModel: "high_aes_general_v30l:general_v3.0_18b", + draftVersion: "3.0.2", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 1024, + height: 1024, + resolutions: [ + { width: 512, height: 512 }, + { width: 768, height: 768 }, + { width: 1024, height: 1024 }, + ], + sampleStrengthRange: [0.1, 0.8], + }, + }, + "jimeng-2.1": { + internalModel: "high_aes_general_v21_L:general_v2.1_L", + draftVersion: "3.0.2", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 512, + height: 512, + resolutions: [ + { width: 512, height: 512 }, + { width: 768, height: 768 }, + ], + sampleStrengthRange: [0.1, 0.7], + }, + }, + "jimeng-2.0-pro": { + internalModel: "high_aes_general_v20_L:general_v2.0_L", + draftVersion: "3.0.2", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 512, + height: 512, + resolutions: [ + { width: 512, height: 512 }, + { width: 768, height: 768 }, + ], + sampleStrengthRange: [0.1, 0.7], + }, + }, + "jimeng-2.0": { + internalModel: "high_aes_general_v20", + draftVersion: "3.0.2", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 512, + height: 512, + resolutions: [ + { width: 512, height: 512 }, + { width: 768, height: 768 }, + ], + sampleStrengthRange: [0.1, 0.7], + }, + }, + "jimeng-1.4": { + internalModel: "high_aes_general_v14:general_v1.4", + draftVersion: "3.0.2", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 512, + height: 512, + resolutions: [ + { width: 512, height: 512 }, + { width: 768, height: 768 }, + ], + sampleStrengthRange: [0.1, 0.6], + }, + }, + "jimeng-xl-pro": { + internalModel: "text2img_xl_sft", + draftVersion: "3.0.2", + features: { + multiImage: false, + imageToImage: true, + videoGeneration: false, + }, + defaultParams: { + width: 1024, + height: 1024, + resolutions: [ + { width: 1024, height: 1024 }, + { width: 1280, height: 720 }, + { width: 720, height: 1280 }, + ], + sampleStrengthRange: [0.1, 0.8], + }, + }, +}; + +// 获取模型配置 +export function getModelConfig(modelName: string): ModelConfig { + const config = MODEL_CONFIGS[modelName]; + if (!config) { + throw new Error(`Unsupported model: ${modelName}`); + } + return config; +} + +// 获取所有支持的图像生成模型 +export function getSupportedImageModels(): string[] { + return Object.keys(MODEL_CONFIGS); +} + +// 检查模型是否支持特定功能 +export function doesModelSupport(modelName: string, feature: keyof ModelConfig['features']): boolean { + const config = getModelConfig(modelName); + return config.features[feature]; +} + +// 验证参数是否在模型支持的范围内 +export function validateModelParams(modelName: string, params: { + width?: number; + height?: number; + sampleStrength?: number; +}): { isValid: boolean; errors: string[] } { + const config = getModelConfig(modelName); + const errors: string[] = []; + + // 验证分辨率 + if (params.width && params.height) { + const isValidResolution = config.defaultParams.resolutions.some( + res => res.width === params.width && res.height === params.height + ); + if (!isValidResolution) { + errors.push( + `Unsupported resolution ${params.width}x${params.height}. Supported resolutions: ${config.defaultParams.resolutions.map(r => `${r.width}x${r.height}`).join(', ')}` + ); + } + } + + // 验证采样强度 + if (params.sampleStrength !== undefined) { + const [min, max] = config.defaultParams.sampleStrengthRange; + if (params.sampleStrength < min || params.sampleStrength > max) { + errors.push(`Sample strength must be between ${min} and ${max}`); + } + } + + return { + isValid: errors.length === 0, + errors + }; +} \ No newline at end of file diff --git a/src/lib/configs/service-config.ts b/src/lib/configs/service-config.ts new file mode 100644 index 0000000..3419a8f --- /dev/null +++ b/src/lib/configs/service-config.ts @@ -0,0 +1,68 @@ +import path from 'path'; + +import fs from 'fs-extra'; +import yaml from 'yaml'; +import _ from 'lodash'; + +import environment from '../environment.ts'; +import util from '../util.ts'; + +const CONFIG_PATH = path.join(path.resolve(), 'configs/', environment.env, "/service.yml"); + +/** + * 服务配置 + */ +export class ServiceConfig { + + /** 服务名称 */ + name: string; + /** @type {string} 服务绑定主机地址 */ + host; + /** @type {number} 服务绑定端口 */ + port; + /** @type {string} 服务路由前缀 */ + urlPrefix; + /** @type {string} 服务绑定地址(外部访问地址) */ + bindAddress; + + constructor(options?: any) { + const { name, host, port, urlPrefix, bindAddress } = options || {}; + this.name = _.defaultTo(name, 'jimeng-free-api'); + this.host = _.defaultTo(host, '0.0.0.0'); + this.port = _.defaultTo(port, 5566); + this.urlPrefix = _.defaultTo(urlPrefix, ''); + this.bindAddress = bindAddress; + } + + get addressHost() { + if(this.bindAddress) return this.bindAddress; + const ipAddresses = util.getIPAddressesByIPv4(); + for(let ipAddress of ipAddresses) { + if(ipAddress === this.host) + return ipAddress; + } + return ipAddresses[0] || "127.0.0.1"; + } + + get address() { + return `${this.addressHost}:${this.port}`; + } + + get pageDirUrl() { + return `http://127.0.0.1:${this.port}/page`; + } + + get publicDirUrl() { + return `http://127.0.0.1:${this.port}/public`; + } + + static load() { + const external = _.pickBy(environment, (v, k) => ["name", "host", "port"].includes(k) && !_.isUndefined(v)); + if(!fs.pathExistsSync(CONFIG_PATH)) return new ServiceConfig(external); + const data = yaml.parse(fs.readFileSync(CONFIG_PATH).toString()); + return new ServiceConfig({ ...data, ...external }); + } + +} + +export default ServiceConfig.load(); \ No newline at end of file diff --git a/src/lib/configs/system-config.ts b/src/lib/configs/system-config.ts new file mode 100644 index 0000000..af0e77b --- /dev/null +++ b/src/lib/configs/system-config.ts @@ -0,0 +1,84 @@ +import path from 'path'; + +import fs from 'fs-extra'; +import yaml from 'yaml'; +import _ from 'lodash'; + +import environment from '../environment.ts'; + +const CONFIG_PATH = path.join(path.resolve(), 'configs/', environment.env, "/system.yml"); + +/** + * 系统配置 + */ +export class SystemConfig { + + /** 是否开启请求日志 */ + requestLog: boolean; + /** 临时目录路径 */ + tmpDir: string; + /** 日志目录路径 */ + logDir: string; + /** 日志写入间隔(毫秒) */ + logWriteInterval: number; + /** 日志文件有效期(毫秒) */ + logFileExpires: number; + /** 公共目录路径 */ + publicDir: string; + /** 临时文件有效期(毫秒) */ + tmpFileExpires: number; + /** 请求体配置 */ + requestBody: any; + /** 是否调试模式 */ + debug: boolean; + + constructor(options?: any) { + const { requestLog, tmpDir, logDir, logWriteInterval, logFileExpires, publicDir, tmpFileExpires, requestBody, debug } = options || {}; + this.requestLog = _.defaultTo(requestLog, false); + this.tmpDir = _.defaultTo(tmpDir, './tmp'); + this.logDir = _.defaultTo(logDir, './logs'); + this.logWriteInterval = _.defaultTo(logWriteInterval, 200); + this.logFileExpires = _.defaultTo(logFileExpires, 2626560000); + this.publicDir = _.defaultTo(publicDir, './public'); + this.tmpFileExpires = _.defaultTo(tmpFileExpires, 86400000); + this.requestBody = Object.assign(requestBody || {}, { + enableTypes: ['form', 'text', 'xml'], // 移除 json,由自定义中间件处理 + encoding: 'utf-8', + formLimit: '100mb', + jsonLimit: '100mb', + textLimit: '100mb', + xmlLimit: '100mb', + formidable: { + maxFileSize: '100mb' + }, + multipart: true, + parsedMethods: ['POST', 'PUT', 'PATCH'] + }); + this.debug = _.defaultTo(debug, true); + } + + get rootDirPath() { + return path.resolve(); + } + + get tmpDirPath() { + return path.resolve(this.tmpDir); + } + + get logDirPath() { + return path.resolve(this.logDir); + } + + get publicDirPath() { + return path.resolve(this.publicDir); + } + + static load() { + if (!fs.pathExistsSync(CONFIG_PATH)) return new SystemConfig(); + const data = yaml.parse(fs.readFileSync(CONFIG_PATH).toString()); + return new SystemConfig(data); + } + +} + +export default SystemConfig.load(); \ No newline at end of file diff --git a/src/lib/consts/exceptions.ts b/src/lib/consts/exceptions.ts new file mode 100644 index 0000000..7a9b788 --- /dev/null +++ b/src/lib/consts/exceptions.ts @@ -0,0 +1,5 @@ +export default { + SYSTEM_ERROR: [-1000, '系统异常'], + SYSTEM_REQUEST_VALIDATION_ERROR: [-1001, '请求参数校验错误'], + SYSTEM_NOT_ROUTE_MATCHING: [-1002, '无匹配的路由'] +} as Record \ No newline at end of file diff --git a/src/lib/environment.ts b/src/lib/environment.ts new file mode 100644 index 0000000..6e52a84 --- /dev/null +++ b/src/lib/environment.ts @@ -0,0 +1,44 @@ +import path from 'path'; + +import fs from 'fs-extra'; +import minimist from 'minimist'; +import _ from 'lodash'; + +const cmdArgs = minimist(process.argv.slice(2)); //获取命令行参数 +const envVars = process.env; //获取环境变量 + +class Environment { + + /** 命令行参数 */ + cmdArgs: any; + /** 环境变量 */ + envVars: any; + /** 环境名称 */ + env?: string; + /** 服务名称 */ + name?: string; + /** 服务地址 */ + host?: string; + /** 服务端口 */ + port?: number; + /** 包参数 */ + package: any; + + constructor(options: any = {}) { + const { cmdArgs, envVars, package: _package } = options; + this.cmdArgs = cmdArgs; + this.envVars = envVars; + this.env = _.defaultTo(cmdArgs.env || envVars.SERVER_ENV, 'dev'); + this.name = cmdArgs.name || envVars.SERVER_NAME || undefined; + this.host = cmdArgs.host || envVars.SERVER_HOST || undefined; + this.port = Number(cmdArgs.port || envVars.SERVER_PORT) ? Number(cmdArgs.port || envVars.SERVER_PORT) : undefined; + this.package = _package; + } + +} + +export default new Environment({ + cmdArgs, + envVars, + package: JSON.parse(fs.readFileSync(path.join(path.resolve(), "package.json")).toString()) +}); \ No newline at end of file diff --git a/src/lib/exceptions/APIException.ts b/src/lib/exceptions/APIException.ts new file mode 100644 index 0000000..515c806 --- /dev/null +++ b/src/lib/exceptions/APIException.ts @@ -0,0 +1,14 @@ +import Exception from './Exception.js'; + +export default class APIException extends Exception { + + /** + * 构造异常 + * + * @param {[number, string]} exception 异常 + */ + constructor(exception: (string | number)[], errmsg?: string) { + super(exception, errmsg); + } + +} \ No newline at end of file diff --git a/src/lib/exceptions/Exception.ts b/src/lib/exceptions/Exception.ts new file mode 100644 index 0000000..ef0372f --- /dev/null +++ b/src/lib/exceptions/Exception.ts @@ -0,0 +1,47 @@ +import assert from 'assert'; + +import _ from 'lodash'; + +export default class Exception extends Error { + + /** 错误码 */ + errcode: number; + /** 错误消息 */ + errmsg: string; + /** 数据 */ + data: any; + /** HTTP状态码 */ + httpStatusCode: number; + + /** + * 构造异常 + * + * @param exception 异常 + * @param _errmsg 异常消息 + */ + constructor(exception: (string | number)[], _errmsg?: string) { + assert(_.isArray(exception), 'Exception must be Array'); + const [errcode, errmsg] = exception as [number, string]; + assert(_.isFinite(errcode), 'Exception errcode invalid'); + assert(_.isString(errmsg), 'Exception errmsg invalid'); + super(_errmsg || errmsg); + this.errcode = errcode; + this.errmsg = _errmsg || errmsg; + } + + compare(exception: (string | number)[]) { + const [errcode] = exception as [number, string]; + return this.errcode == errcode; + } + + setHTTPStatusCode(value: number) { + this.httpStatusCode = value; + return this; + } + + setData(value: any) { + this.data = _.defaultTo(value, null); + return this; + } + +} \ No newline at end of file diff --git a/src/lib/http-status-codes.ts b/src/lib/http-status-codes.ts new file mode 100644 index 0000000..cc0c571 --- /dev/null +++ b/src/lib/http-status-codes.ts @@ -0,0 +1,61 @@ +export default { + + CONTINUE: 100, //客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应 + SWITCHING_PROTOCOLS: 101, //服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特性的资源 + PROCESSING: 102, //处理将被继续执行 + + OK: 200, //请求已成功,请求所希望的响应头或数据体将随此响应返回 + CREATED: 201, //请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 '202 Accepted' + ACCEPTED: 202, //服务器已接受请求,但尚未处理。正如它可能被拒绝一样,最终该请求可能会也可能不会被执行。在异步操作的场合下,没有比发送这个状态码更方便的做法了。返回202状态码的响应的目的是允许服务器接受其他过程的请求(例如某个每天只执行一次的基于批处理的操作),而不必让客户端一直保持与服务器的连接直到批处理操作全部完成。在接受请求处理并返回202状态码的响应应当在返回的实体中包含一些指示处理当前状态的信息,以及指向处理状态监视器或状态预测的指针,以便用户能够估计操作是否已经完成 + NON_AUTHORITATIVE_INFO: 203, //服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超级。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的 + NO_CONTENT: 204, //服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。由于204响应被禁止包含任何消息体,因此它始终以消息头后的第一个空行结尾 + RESET_CONTENT: 205, //服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束 + PARTIAL_CONTENT: 206, //服务器已经成功处理了部分 GET 请求。类似于FlashGet或者迅雷这类的HTTP下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。响应必须包含如下的头部域:Content-Range 用以指示本次响应中返回的内容的范围;如果是Content-Type为multipart/byteranges的多段下载,则每一段multipart中都应包含Content-Range域用以指示本段的内容范围。假如响应中包含Content-Length,那么它的数值必须匹配它返回的内容范围的真实字节数。Date和ETag或Content-Location,假如同样的请求本应该返回200响应。Expires, Cache-Control,和/或 Vary,假如其值可能与之前相同变量的其他响应对应的值不同的话。假如本响应请求使用了 If-Range 强缓存验证,那么本次响应不应该包含其他实体头;假如本响应的请求使用了 If-Range 弱缓存验证,那么本次响应禁止包含其他实体头;这避免了缓存的实体内容和更新了的实体头信息之间的不一致。否则,本响应就应当包含所有本应该返回200响应中应当返回的所有实体头部域。假如 ETag 或 Latest-Modified 头部不能精确匹配的话,则客户端缓存应禁止将206响应返回的内容与之前任何缓存过的内容组合在一起。任何不支持 Range 以及 Content-Range 头的缓存都禁止缓存206响应返回的内容 + MULTIPLE_STATUS: 207, //代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码 + + MULTIPLE_CHOICES: 300, //被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。除非这是一个HEAD请求,否则该响应应当包括一个资源特性及地址的列表的实体,以便用户或浏览器从中选择最合适的重定向地址。这个实体的格式由Content-Type定义的格式所决定。浏览器可能根据响应的格式以及浏览器自身能力,自动作出最合适的选择。当然,RFC 2616规范并没有规定这样的自动选择该如何进行。如果服务器本身已经有了首选的回馈选择,那么在Location中应当指明这个回馈的 URI;浏览器可能会将这个 Location 值作为自动重定向的地址。此外,除非额外指定,否则这个响应也是可缓存的 + MOVED_PERMANENTLY: 301, //被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。新的永久性的URI应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短说明。如果这不是一个GET或者HEAD请求,因此浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。注意:对于某些使用 HTTP/1.0 协议的浏览器,当它们发送的POST请求得到了一个301响应的话,接下来的重定向请求将会变成GET方式 + FOUND: 302, //请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。新的临时性的URI应当在响应的 Location 域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短说明。如果这不是一个GET或者HEAD请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用GET方式访问在Location中规定的URI,而无视原先请求的方法。状态码303和307被添加了进来,用以明确服务器期待客户端进行何种反应 + SEE_OTHER: 303, //对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。这个新的 URI 不是原始资源的替代引用。同时,303响应禁止被缓存。当然,第二个请求(重定向)可能被缓存。新的 URI 应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短说明。注意:许多 HTTP/1.1 版以前的浏览器不能正确理解303状态。如果需要考虑与这些浏览器之间的互动,302状态码应该可以胜任,因为大多数的浏览器处理302响应时的方式恰恰就是上述规范要求客户端处理303响应时应当做的 + NOT_MODIFIED: 304, //如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。该响应必须包含以下的头信息:Date,除非这个服务器没有时钟。假如没有时钟的服务器也遵守这些规则,那么代理服务器以及客户端可以自行将Date字段添加到接收到的响应头中去(正如RFC 2068中规定的一样),缓存机制将会正常工作。ETag或 Content-Location,假如同样的请求本应返回200响应。Expires, Cache-Control,和/或Vary,假如其值可能与之前相同变量的其他响应对应的值不同的话。假如本响应请求使用了强缓存验证,那么本次响应不应该包含其他实体头;否则(例如,某个带条件的 GET 请求使用了弱缓存验证),本次响应禁止包含其他实体头;这避免了缓存了的实体内容和更新了的实体头信息之间的不一致。假如某个304响应指明了当前某个实体没有缓存,那么缓存系统必须忽视这个响应,并且重复发送不包含限制条件的请求。假如接收到一个要求更新某个缓存条目的304响应,那么缓存系统必须更新整个条目以反映所有在响应中被更新的字段的值 + USE_PROXY: 305, //被请求的资源必须通过指定的代理才能被访问。Location域中将给出指定的代理所在的URI信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应。注意:RFC 2068中没有明确305响应是为了重定向一个单独的请求,而且只能被原始服务器建立。忽视这些限制可能导致严重的安全后果 + UNUSED: 306, //在最新版的规范中,306状态码已经不再被使用 + TEMPORARY_REDIRECT: 307, //请求的资源现在临时从不同的URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。新的临时性的URI 应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI 的超链接及简短说明。因为部分浏览器不能识别307响应,因此需要添加上述必要信息以便用户能够理解并向新的 URI 发出访问请求。如果这不是一个GET或者HEAD请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化 + + BAD_REQUEST: 400, //1.语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求 2.请求参数有误 + UNAUTHORIZED: 401, //当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。参见RFC 2617 + PAYMENT_REQUIRED: 402, //该状态码是为了将来可能的需求而预留的 + FORBIDDEN: 403, //服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个HEAD请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息 + NOT_FOUND: 404, //请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下 + METHOD_NOT_ALLOWED: 405, //请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。鉴于PUT,DELETE方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误 + NO_ACCEPTABLE: 406, //请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。除非这是一个 HEAD 请求,否则该响应就应当返回一个包含可以让用户或者浏览器从中选择最合适的实体特性以及地址列表的实体。实体的格式由Content-Type头中定义的媒体类型决定。浏览器可以根据格式及自身能力自行作出最佳选择。但是,规范中并没有定义任何作出此类自动选择的标准 + PROXY_AUTHENTICATION_REQUIRED: 407, //与401响应类似,只不过客户端必须在代理服务器上进行身份验证。代理服务器必须返回一个Proxy-Authenticate用以进行身份询问。客户端可以返回一个Proxy-Authorization信息头用以验证。参见RFC 2617 + REQUEST_TIMEOUT: 408, //请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改 + CONFLICT: 409, //由于和被请求的资源的当前状态之间存在冲突,请求无法完成。这个代码只允许用在这样的情况下才能被使用:用户被认为能够解决冲突,并且会重新提交新的请求。该响应应当包含足够的信息以便用户发现冲突的源头。冲突通常发生于对PUT请求的处理中。例如,在采用版本检查的环境下,某次PUT提交的对特定资源的修改请求所附带的版本信息与之前的某个(第三方)请求向冲突,那么此时服务器就应该返回一个409错误,告知用户请求无法完成。此时,响应实体中很可能会包含两个冲突版本之间的差异比较,以便用户重新提交归并以后的新版本 + GONE: 410, //被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。这样的状况应当被认为是永久性的。如果可能,拥有链接编辑功能的客户端应当在获得用户许可后删除所有指向这个地址的引用。如果服务器不知道或者无法确定这个状况是否是永久的,那么就应该使用404状态码。除非额外说明,否则这个响应是可缓存的。410响应的目的主要是帮助网站管理员维护网站,通知用户该资源已经不再可用,并且服务器拥有者希望所有指向这个资源的远端连接也被删除。这类事件在限时、增值服务中很普遍。同样,410响应也被用于通知客户端在当前服务器站点上,原本属于某个个人的资源已经不再可用。当然,是否需要把所有永久不可用的资源标记为'410 Gone',以及是否需要保持此标记多长时间,完全取决于服务器拥有者 + LENGTH_REQUIRED: 411, //服务器拒绝在没有定义Content-Length头的情况下接受请求。在添加了表明请求消息体长度的有效Content-Length头之后,客户端可以再次提交该请求 + PRECONDITION_FAILED: 412, //服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上 + REQUEST_ENTITY_TOO_LARGE: 413, //服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。此种情况下,服务器可以关闭连接以免客户端继续发送此请求。如果这个状况是临时的,服务器应当返回一个 Retry-After 的响应头,以告知客户端可以在多少时间以后重新尝试 + REQUEST_URI_TOO_LONG: 414, //请求的URI长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。这比较少见,通常的情况包括:本应使用POST方法的表单提交变成了GET方法,导致查询字符串(Query String)过长。重定向URI “黑洞”,例如每次重定向把旧的URI作为新的URI的一部分,导致在若干次重定向后URI超长。客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。这类服务器使用固定长度的缓冲读取或操作请求的URI,当GET后的参数超过某个数值后,可能会产生缓冲区溢出,导致任意代码被执行[1]。没有此类漏洞的服务器,应当返回414状态码 + UNSUPPORTED_MEDIA_TYPE: 415, //对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝 + REQUESTED_RANGE_NOT_SATISFIABLE: 416, //如果请求中包含了Range请求头,并且Range中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义If-Range请求头,那么服务器就应当返回416状态码。假如Range使用的是字节范围,那么这种情况就是指请求指定的所有数据范围的首字节位置都超过了当前资源的长度。服务器也应当在返回416状态码的同时,包含一个Content-Range实体头,用以指明当前资源的长度。这个响应也被禁止使用multipart/byteranges作为其 Content-Type + EXPECTION_FAILED: 417, //在请求头Expect中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect的内容无法被满足 + TOO_MANY_CONNECTIONS: 421, //从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户 + UNPROCESSABLE_ENTITY: 422, //请求格式正确,但是由于含有语义错误,无法响应 + FAILED_DEPENDENCY: 424, //由于之前的某个请求发生的错误,导致当前请求失败,例如PROPPATCH + UNORDERED_COLLECTION: 425, //在WebDav Advanced Collections 草案中定义,但是未出现在《WebDAV 顺序集协议》(RFC 3658)中 + UPGRADE_REQUIRED: 426, //客户端应当切换到TLS/1.0 + RETRY_WITH: 449, //由微软扩展,代表请求应当在执行完适当的操作后进行重试 + + INTERNAL_SERVER_ERROR: 500, //服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现 + NOT_IMPLEMENTED: 501, //服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求 + BAD_GATEWAY: 502, //作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应 + SERVICE_UNAVAILABLE: 503, //由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响应的方式处理它。注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接 + GATEWAY_TIMEOUT: 504, //作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。注意:某些代理服务器在DNS查询超时时会返回400或者500错误 + HTTP_VERSION_NOT_SUPPORTED: 505, //服务器不支持,或者拒绝支持在请求中使用的HTTP版本。这暗示着服务器不能或不愿使用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪些协议的实体 + VARIANT_ALSO_NEGOTIATES: 506, //服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点 + INSUFFICIENT_STORAGE: 507, //服务器无法存储完成请求所必须的内容。这个状况被认为是临时的 + BANDWIDTH_LIMIT_EXCEEDED: 509, //服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用 + NOT_EXTENDED: 510 //获取资源所需要的策略并没有没满足 + +}; \ No newline at end of file diff --git a/src/lib/initialize.ts b/src/lib/initialize.ts new file mode 100644 index 0000000..3200374 --- /dev/null +++ b/src/lib/initialize.ts @@ -0,0 +1,29 @@ +import logger from './logger.js'; +import browserService from './browser-service.js'; + +// 允许无限量的监听器 +process.setMaxListeners(Infinity); +// 输出未捕获异常 +process.on("uncaughtException", (err, origin) => { + logger.error(`An unhandled error occurred: ${origin}`, err); +}); +// 输出未处理的Promise.reject +process.on("unhandledRejection", (_, promise) => { + promise.catch(err => logger.error("An unhandled rejection occurred:", err)); +}); +// 输出系统警告信息 +process.on("warning", warning => logger.warn("System warning: ", warning)); +// 进程退出监听 +process.on("exit", () => { + logger.info("Service exit"); + logger.footer(); +}); +// 进程被kill +process.on("SIGTERM", () => { + logger.warn("received kill signal"); + browserService.close().finally(() => process.exit(2)); +}); +// Ctrl-C进程退出 +process.on("SIGINT", () => { + browserService.close().finally(() => process.exit(0)); +}); \ No newline at end of file diff --git a/src/lib/interfaces/ICompletionMessage.ts b/src/lib/interfaces/ICompletionMessage.ts new file mode 100644 index 0000000..5aad345 --- /dev/null +++ b/src/lib/interfaces/ICompletionMessage.ts @@ -0,0 +1,4 @@ +export default interface ICompletionMessage { + role: 'system' | 'assistant' | 'user' | 'function'; + content: string; +} \ No newline at end of file diff --git a/src/lib/logger.ts b/src/lib/logger.ts new file mode 100644 index 0000000..32cb3a6 --- /dev/null +++ b/src/lib/logger.ts @@ -0,0 +1,184 @@ +import path from 'path'; +import _util from 'util'; + +import 'colors'; +import _ from 'lodash'; +import fs from 'fs-extra'; +import { format as dateFormat } from 'date-fns'; + +import config from './config.ts'; +import util from './util.ts'; + +const isVercelEnv = process.env.VERCEL; + +class LogWriter { + + #buffers = []; + + constructor() { + !isVercelEnv && fs.ensureDirSync(config.system.logDirPath); + !isVercelEnv && this.work(); + } + + push(content) { + const buffer = Buffer.from(content); + this.#buffers.push(buffer); + } + + writeSync(buffer) { + !isVercelEnv && fs.appendFileSync(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), buffer); + } + + async write(buffer) { + !isVercelEnv && await fs.appendFile(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), buffer); + } + + flush() { + if(!this.#buffers.length) return; + !isVercelEnv && fs.appendFileSync(path.join(config.system.logDirPath, `/${util.getDateString()}.log`), Buffer.concat(this.#buffers)); + } + + work() { + if (!this.#buffers.length) return setTimeout(this.work.bind(this), config.system.logWriteInterval); + const buffer = Buffer.concat(this.#buffers); + this.#buffers = []; + this.write(buffer) + .finally(() => setTimeout(this.work.bind(this), config.system.logWriteInterval)) + .catch(err => console.error("Log write error:", err)); + } + +} + +class LogText { + + /** @type {string} 日志级别 */ + level; + /** @type {string} 日志文本 */ + text; + /** @type {string} 日志来源 */ + source; + /** @type {Date} 日志发生时间 */ + time = new Date(); + + constructor(level, ...params) { + this.level = level; + this.text = _util.format.apply(null, params); + this.source = this.#getStackTopCodeInfo(); + } + + #getStackTopCodeInfo() { + const unknownInfo = { name: "unknown", codeLine: 0, codeColumn: 0 }; + const stackArray = new Error().stack.split("\n"); + const text = stackArray[4]; + if (!text) + return unknownInfo; + const match = text.match(/at (.+) \((.+)\)/) || text.match(/at (.+)/); + if (!match || !_.isString(match[2] || match[1])) + return unknownInfo; + const temp = match[2] || match[1]; + const _match = temp.match(/([a-zA-Z0-9_\-\.]+)\:(\d+)\:(\d+)$/); + if (!_match) + return unknownInfo; + const [, scriptPath, codeLine, codeColumn] = _match as any; + return { + name: scriptPath ? scriptPath.replace(/.js$/, "") : "unknown", + path: scriptPath || null, + codeLine: parseInt(codeLine || 0), + codeColumn: parseInt(codeColumn || 0) + }; + } + + toString() { + return `[${dateFormat(this.time, "yyyy-MM-dd HH:mm:ss.SSS")}][${this.level}][${this.source.name}<${this.source.codeLine},${this.source.codeColumn}>] ${this.text}`; + } + +} + +class Logger { + + /** @type {Object} 系统配置 */ + config = {}; + /** @type {Object} 日志级别映射 */ + static Level = { + Success: "success", + Info: "info", + Log: "log", + Debug: "debug", + Warning: "warning", + Error: "error", + Fatal: "fatal" + }; + /** @type {Object} 日志级别文本颜色樱色 */ + static LevelColor = { + [Logger.Level.Success]: "green", + [Logger.Level.Info]: "brightCyan", + [Logger.Level.Debug]: "white", + [Logger.Level.Warning]: "brightYellow", + [Logger.Level.Error]: "brightRed", + [Logger.Level.Fatal]: "red" + }; + #writer; + + constructor() { + this.#writer = new LogWriter(); + } + + header() { + this.#writer.writeSync(Buffer.from(`\n\n===================== LOG START ${dateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")} =====================\n\n`)); + } + + footer() { + this.#writer.flush(); //将未写入文件的日志缓存写入 + this.#writer.writeSync(Buffer.from(`\n\n===================== LOG END ${dateFormat(new Date(), "yyyy-MM-dd HH:mm:ss.SSS")} =====================\n\n`)); + } + + success(...params) { + const content = new LogText(Logger.Level.Success, ...params).toString(); + console.info(content[Logger.LevelColor[Logger.Level.Success]]); + this.#writer.push(content + "\n"); + } + + info(...params) { + const content = new LogText(Logger.Level.Info, ...params).toString(); + console.info(content[Logger.LevelColor[Logger.Level.Info]]); + this.#writer.push(content + "\n"); + } + + log(...params) { + const content = new LogText(Logger.Level.Log, ...params).toString(); + console.log(content[Logger.LevelColor[Logger.Level.Log]]); + this.#writer.push(content + "\n"); + } + + debug(...params) { + if(!config.system.debug) return; //非调试模式忽略debug + const content = new LogText(Logger.Level.Debug, ...params).toString(); + console.debug(content[Logger.LevelColor[Logger.Level.Debug]]); + this.#writer.push(content + "\n"); + } + + warn(...params) { + const content = new LogText(Logger.Level.Warning, ...params).toString(); + console.warn(content[Logger.LevelColor[Logger.Level.Warning]]); + this.#writer.push(content + "\n"); + } + + error(...params) { + const content = new LogText(Logger.Level.Error, ...params).toString(); + console.error(content[Logger.LevelColor[Logger.Level.Error]]); + this.#writer.push(content); + } + + fatal(...params) { + const content = new LogText(Logger.Level.Fatal, ...params).toString(); + console.error(content[Logger.LevelColor[Logger.Level.Fatal]]); + this.#writer.push(content); + } + + destory() { + this.#writer.destory(); + } + +} + +export default new Logger(); \ No newline at end of file diff --git a/src/lib/request/Request.ts b/src/lib/request/Request.ts new file mode 100644 index 0000000..e484cf4 --- /dev/null +++ b/src/lib/request/Request.ts @@ -0,0 +1,95 @@ +import _ from 'lodash'; + +import APIException from '@/lib/exceptions/APIException.ts'; +import EX from '@/api/consts/exceptions.ts'; +import logger from '@/lib/logger.ts'; +import util from '@/lib/util.ts'; + +export interface RequestOptions { + time?: number; +} + +export default class Request { + + /** 请求方法 */ + method: string; + /** 请求URL */ + url: string; + /** 请求路径 */ + path: string; + /** 请求载荷类型 */ + type: string; + /** 请求headers */ + headers: any; + /** 请求原始查询字符串 */ + search: string; + /** 请求查询参数 */ + query: any; + /** 请求URL参数 */ + params: any; + /** 请求载荷 */ + body: any; + /** 上传的文件 */ + files: any[]; + /** 客户端IP地址 */ + remoteIP: string | null; + /** 请求接受时间戳(毫秒) */ + time: number; + + constructor(ctx, options: RequestOptions = {}) { + const { time } = options; + this.method = ctx.request.method; + this.url = ctx.request.url; + this.path = ctx.request.path; + this.type = ctx.request.type; + this.headers = ctx.request.headers || {}; + this.search = ctx.request.search; + this.query = ctx.query || {}; + this.params = ctx.params || {}; + this.body = ctx.request.body || {}; + // koa-body 的 files 可能是对象 { files: [File, File] } 或 { files: File } + // 需要统一转换为数组格式 + const rawFiles = ctx.request.files; + if (rawFiles) { + if (Array.isArray(rawFiles)) { + this.files = rawFiles; + } else if (typeof rawFiles === 'object') { + // 遍历对象,提取所有文件 + const filesArray: any[] = []; + for (const key in rawFiles) { + const fileOrFiles = rawFiles[key]; + if (Array.isArray(fileOrFiles)) { + filesArray.push(...fileOrFiles); + } else if (fileOrFiles) { + filesArray.push(fileOrFiles); + } + } + this.files = filesArray; + } else { + this.files = []; + } + } else { + this.files = []; + } + this.remoteIP = this.headers["X-Real-IP"] || this.headers["x-real-ip"] || this.headers["X-Forwarded-For"] || this.headers["x-forwarded-for"] || ctx.ip || null; + this.time = Number(_.defaultTo(time, util.timestamp())); + } + + validate(key: string, fn?: Function, message?: string) { + try { + const value = _.get(this, key); + if (fn) { + if (fn(value) === false) + throw `[Mismatch] -> ${fn}`; + } + else if (_.isUndefined(value)) + throw '[Undefined]'; + } + catch (err) { + logger.warn(`Params ${key} invalid:`, err); + throw new APIException(EX.API_REQUEST_PARAMS_INVALID, message || `Params ${key} invalid`); + } + return this; + } + +} \ No newline at end of file diff --git a/src/lib/response/Body.ts b/src/lib/response/Body.ts new file mode 100644 index 0000000..9cf8574 --- /dev/null +++ b/src/lib/response/Body.ts @@ -0,0 +1,41 @@ +import _ from 'lodash'; + +export interface BodyOptions { + code?: number; + message?: string; + data?: any; + statusCode?: number; +} + +export default class Body { + + /** 状态码 */ + code: number; + /** 状态消息 */ + message: string; + /** 载荷 */ + data: any; + /** HTTP状态码 */ + statusCode: number; + + constructor(options: BodyOptions = {}) { + const { code, message, data, statusCode } = options; + this.code = Number(_.defaultTo(code, 0)); + this.message = _.defaultTo(message, 'OK'); + this.data = _.defaultTo(data, null); + this.statusCode = Number(_.defaultTo(statusCode, 200)); + } + + toObject() { + return { + code: this.code, + message: this.message, + data: this.data + }; + } + + static isInstance(value) { + return value instanceof Body; + } + +} \ No newline at end of file diff --git a/src/lib/response/FailureBody.ts b/src/lib/response/FailureBody.ts new file mode 100644 index 0000000..33d7fb9 --- /dev/null +++ b/src/lib/response/FailureBody.ts @@ -0,0 +1,31 @@ +import _ from 'lodash'; + +import Body from './Body.ts'; +import Exception from '../exceptions/Exception.ts'; +import APIException from '../exceptions/APIException.ts'; +import EX from '../consts/exceptions.ts'; +import HTTP_STATUS_CODES from '../http-status-codes.ts'; + +export default class FailureBody extends Body { + + constructor(error: APIException | Exception | Error, _data?: any) { + let errcode, errmsg, data = _data, httpStatusCode = HTTP_STATUS_CODES.OK;; + if(_.isString(error)) + error = new Exception(EX.SYSTEM_ERROR, error); + else if(error instanceof APIException || error instanceof Exception) + ({ errcode, errmsg, data, httpStatusCode } = error); + else if(_.isError(error)) + ({ errcode, errmsg, data, httpStatusCode } = new Exception(EX.SYSTEM_ERROR, error.message)); + super({ + code: errcode || -1, + message: errmsg || 'Internal error', + data, + statusCode: httpStatusCode + }); + } + + static isInstance(value) { + return value instanceof FailureBody; + } + +} \ No newline at end of file diff --git a/src/lib/response/Response.ts b/src/lib/response/Response.ts new file mode 100644 index 0000000..816397d --- /dev/null +++ b/src/lib/response/Response.ts @@ -0,0 +1,63 @@ +import mime from 'mime'; +import _ from 'lodash'; + +import Body from './Body.ts'; +import util from '../util.ts'; + +export interface ResponseOptions { + statusCode?: number; + type?: string; + headers?: Record; + redirect?: string; + body?: any; + size?: number; + time?: number; +} + +export default class Response { + + /** 响应HTTP状态码 */ + statusCode: number; + /** 响应内容类型 */ + type: string; + /** 响应headers */ + headers: Record; + /** 重定向目标 */ + redirect: string; + /** 响应载荷 */ + body: any; + /** 响应载荷大小 */ + size: number; + /** 响应时间戳 */ + time: number; + + constructor(body: any, options: ResponseOptions = {}) { + const { statusCode, type, headers, redirect, size, time } = options; + this.statusCode = Number(_.defaultTo(statusCode, Body.isInstance(body) ? body.statusCode : undefined)) + this.type = type; + this.headers = headers; + this.redirect = redirect; + this.size = size; + this.time = Number(_.defaultTo(time, util.timestamp())); + this.body = body; + } + + injectTo(ctx) { + this.redirect && ctx.redirect(this.redirect); + this.statusCode && (ctx.status = this.statusCode); + this.type && (ctx.type = mime.getType(this.type) || this.type); + const headers = this.headers || {}; + if(this.size && !headers["Content-Length"] && !headers["content-length"]) + headers["Content-Length"] = this.size; + ctx.set(headers); + if(Body.isInstance(this.body)) + ctx.body = this.body.toObject(); + else + ctx.body = this.body; + } + + static isInstance(value) { + return value instanceof Response; + } + +} \ No newline at end of file diff --git a/src/lib/response/SuccessfulBody.ts b/src/lib/response/SuccessfulBody.ts new file mode 100644 index 0000000..639d0d8 --- /dev/null +++ b/src/lib/response/SuccessfulBody.ts @@ -0,0 +1,19 @@ +import _ from 'lodash'; + +import Body from './Body.ts'; + +export default class SuccessfulBody extends Body { + + constructor(data: any, message?: string) { + super({ + code: 0, + message: _.defaultTo(message, "OK"), + data + }); + } + + static isInstance(value) { + return value instanceof SuccessfulBody; + } + +} \ No newline at end of file diff --git a/src/lib/server.ts b/src/lib/server.ts new file mode 100644 index 0000000..a43acf4 --- /dev/null +++ b/src/lib/server.ts @@ -0,0 +1,241 @@ +import Koa from 'koa'; +import KoaRouter from 'koa-router'; +import koaRange from 'koa-range'; +import koaCors from "koa2-cors"; +import koaBody from 'koa-body'; +import _ from 'lodash'; + +import Exception from './exceptions/Exception.ts'; +import Request from './request/Request.ts'; +import Response from './response/Response.js'; +import FailureBody from './response/FailureBody.ts'; +import EX from './consts/exceptions.ts'; +import logger from './logger.ts'; +import config from './config.ts'; + +class Server { + + app; + router; + koaBodyMiddleware; + + constructor() { + this.app = new Koa(); + this.app.use(koaCors()); + // 范围请求支持 + this.app.use(koaRange); + this.router = new KoaRouter({ prefix: config.service.urlPrefix }); + + // 预先创建 koa-body 中间件,支持 multipart 文件上传 + this.koaBodyMiddleware = koaBody({ + multipart: true, + formidable: { + maxFileSize: 100 * 1024 * 1024, // 100MB + keepExtensions: true, + }, + formLimit: '100mb', + jsonLimit: '100mb', + textLimit: '100mb', + parsedMethods: ['POST', 'PUT', 'PATCH'], + }); + + // 前置处理异常拦截 + this.app.use(async (ctx: any, next: Function) => { + if(ctx.request.type === "application/xml" || ctx.request.type === "application/ssml+xml") + ctx.req.headers["content-type"] = "text/xml"; + try { await next() } + catch (err) { + logger.error(err); + const failureBody = new FailureBody(err); + new Response(failureBody).injectTo(ctx); + } + }); + // 自定义 JSON 解析中间件 + this.app.use(async (ctx: any, next: Function) => { + // 跳过 multipart 请求,让 koa-body 处理 + if (ctx.is('multipart')) { + await next(); + return; + } + if (ctx.is('application/json') && ['POST', 'PUT', 'PATCH'].includes(ctx.method)) { + logger.debug('开始自定义 JSON 解析'); + const chunks: Buffer[] = []; + + await new Promise((resolve, reject) => { + ctx.req.on('data', (chunk: Buffer) => { + chunks.push(chunk); + }); + + ctx.req.on('end', () => { + resolve(null); + }); + + ctx.req.on('error', reject); + }); + + const body = Buffer.concat(chunks).toString('utf8'); + + // 清理问题字符 + let cleanedBody = body + .replace(/\r\n/g, '\n') + .replace(/\r/g, '\n') + .replace(/\u00A0/g, ' ') + .replace(/[\u2000-\u200B]/g, ' ') + .replace(/\uFEFF/g, '') + .trim(); + + const parsedBody = JSON.parse(cleanedBody); + + logger.debug('JSON 解析成功,跳过 koa-body'); + + ctx.request.body = parsedBody; + ctx.request.rawBody = cleanedBody; + + // 标记已处理,避免 koa-body 再次处理 + ctx._jsonProcessed = true; + } + await next(); + }); + + // 载荷解析器支持(只处理未被自定义解析器处理的请求) + this.app.use(async (ctx: any, next: Function) => { + if (!ctx._jsonProcessed) { + await this.koaBodyMiddleware(ctx, next); + } else { + await next(); + } + }); + this.app.on("error", (err: any) => { + // 忽略连接重试、中断、管道、取消错误 + if (["ECONNRESET", "ECONNABORTED", "EPIPE", "ECANCELED"].includes(err.code)) return; + logger.error(err); + }); + logger.success("Server initialized"); + } + + /** + * 附加路由 + * + * @param routes 路由列表 + */ + attachRoutes(routes: any[]) { + routes.forEach((route: any) => { + const prefix = route.prefix || ""; + for (let method in route) { + if(method === "prefix") continue; + if (!_.isObject(route[method])) { + logger.warn(`Router ${prefix} ${method} invalid`); + continue; + } + for (let uri in route[method]) { + this.router[method](`${prefix}${uri}`, async ctx => { + const { request, response } = await this.#requestProcessing(ctx, route[method][uri]); + if(response != null && config.system.requestLog) + logger.info(`<- ${request.method} ${request.url} ${response.time - request.time}ms`); + }); + } + } + logger.info(`Route ${config.service.urlPrefix || ""}${prefix} attached`); + }); + this.app.use(this.router.routes()); + this.app.use((ctx: any) => { + const request = new Request(ctx); + logger.debug(`-> ${ctx.request.method} ${ctx.request.url} request is not supported - ${request.remoteIP || "unknown"}`); + // const failureBody = new FailureBody(new Exception(EX.SYSTEM_NOT_ROUTE_MATCHING, "Request is not supported")); + // const response = new Response(failureBody); + const message = `[请求有误]: 正确请求为 POST -> /v1/chat/completions,当前请求为 ${ctx.request.method} -> ${ctx.request.url} 请纠正`; + logger.warn(message); + const failureBody = new FailureBody(new Error(message)); + const response = new Response(failureBody); + response.injectTo(ctx); + if(config.system.requestLog) + logger.info(`<- ${request.method} ${request.url} ${response.time - request.time}ms`); + }); + } + + /** + * 请求处理 + * + * @param ctx 上下文 + * @param routeFn 路由方法 + */ + #requestProcessing(ctx: any, routeFn: Function): Promise { + return new Promise(resolve => { + const request = new Request(ctx); + try { + if(config.system.requestLog) + logger.info(`-> ${request.method} ${request.url}`); + routeFn(request) + .then(response => { + try { + if(!Response.isInstance(response)) { + const _response = new Response(response); + _response.injectTo(ctx); + return resolve({ request, response: _response }); + } + response.injectTo(ctx); + resolve({ request, response }); + } + catch(err) { + logger.error(err); + const failureBody = new FailureBody(err); + const response = new Response(failureBody); + response.injectTo(ctx); + resolve({ request, response }); + } + }) + .catch(err => { + try { + logger.error(err); + const failureBody = new FailureBody(err); + const response = new Response(failureBody); + response.injectTo(ctx); + resolve({ request, response }); + } + catch(err) { + logger.error(err); + const failureBody = new FailureBody(err); + const response = new Response(failureBody); + response.injectTo(ctx); + resolve({ request, response }); + } + }); + } + catch(err) { + logger.error(err); + const failureBody = new FailureBody(err); + const response = new Response(failureBody); + response.injectTo(ctx); + resolve({ request, response }); + } + }); + } + + /** + * 监听端口 + */ + async listen() { + const host = config.service.host; + const port = config.service.port; + await Promise.all([ + new Promise((resolve, reject) => { + if(host === "0.0.0.0" || host === "localhost" || host === "127.0.0.1") + return resolve(null); + this.app.listen(port, "localhost", err => { + if(err) return reject(err); + resolve(null); + }); + }), + new Promise((resolve, reject) => { + this.app.listen(port, host, err => { + if(err) return reject(err); + resolve(null); + }); + }) + ]); + logger.success(`Server listening on port ${port} (${host})`); + } + +} + +export default new Server(); \ No newline at end of file diff --git a/src/lib/util.ts b/src/lib/util.ts new file mode 100644 index 0000000..0f3fd16 --- /dev/null +++ b/src/lib/util.ts @@ -0,0 +1,307 @@ +import os from "os"; +import path from "path"; +import crypto from "crypto"; +import { Readable, Writable } from "stream"; + +import "colors"; +import mime from "mime"; +import axios from "axios"; +import fs from "fs-extra"; +import { v1 as uuid } from "uuid"; +import { format as dateFormat } from "date-fns"; +import CRC32 from "crc-32"; +import randomstring from "randomstring"; +import _ from "lodash"; +import { CronJob } from "cron"; + +import HTTP_STATUS_CODE from "./http-status-codes.ts"; + +const autoIdMap = new Map(); + +const util = { + is2DArrays(value: any) { + return ( + _.isArray(value) && + (!value[0] || (_.isArray(value[0]) && _.isArray(value[value.length - 1]))) + ); + }, + + uuid: (separator = true) => (separator ? uuid() : uuid().replace(/\-/g, "")), + + autoId: (prefix = "") => { + let index = autoIdMap.get(prefix); + if (index > 999999) index = 0; //超过最大数字则重置为0 + autoIdMap.set(prefix, (index || 0) + 1); + return `${prefix}${index || 1}`; + }, + + ignoreJSONParse(value: string) { + const result = _.attempt(() => JSON.parse(value)); + if (_.isError(result)) return null; + return result; + }, + + generateRandomString(options: any): string { + return randomstring.generate(options); + }, + + getResponseContentType(value: any): string | null { + return value.headers + ? value.headers["content-type"] || value.headers["Content-Type"] + : null; + }, + + mimeToExtension(value: string) { + let extension = mime.getExtension(value); + if (extension == "mpga") return "mp3"; + return extension; + }, + + extractURLExtension(value: string) { + const extname = path.extname(new URL(value).pathname); + return extname.substring(1).toLowerCase(); + }, + + createCronJob(cronPatterns: any, callback?: Function) { + if (!_.isFunction(callback)) + throw new Error("callback must be an Function"); + return new CronJob( + cronPatterns, + () => callback(), + null, + false, + "Asia/Shanghai" + ); + }, + + getDateString(format = "yyyy-MM-dd", date = new Date()) { + return dateFormat(date, format); + }, + + getIPAddressesByIPv4(): string[] { + const interfaces = os.networkInterfaces(); + const addresses = []; + for (let name in interfaces) { + const networks = interfaces[name]; + const results = networks.filter( + (network) => + network.family === "IPv4" && + network.address !== "127.0.0.1" && + !network.internal + ); + if (results[0] && results[0].address) addresses.push(results[0].address); + } + return addresses; + }, + + getMACAddressesByIPv4(): string[] { + const interfaces = os.networkInterfaces(); + const addresses = []; + for (let name in interfaces) { + const networks = interfaces[name]; + const results = networks.filter( + (network) => + network.family === "IPv4" && + network.address !== "127.0.0.1" && + !network.internal + ); + if (results[0] && results[0].mac) addresses.push(results[0].mac); + } + return addresses; + }, + + generateSSEData(event?: string, data?: string, retry?: number) { + return `event: ${event || "message"}\ndata: ${(data || "") + .replace(/\n/g, "\\n") + .replace(/\s/g, "\\s")}\nretry: ${retry || 3000}\n\n`; + }, + + buildDataBASE64(type, ext, buffer) { + return `data:${type}/${ext.replace("jpg", "jpeg")};base64,${buffer.toString( + "base64" + )}`; + }, + + isLinux() { + return os.platform() !== "win32"; + }, + + isIPAddress(value) { + return ( + _.isString(value) && + (/^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/.test( + value + ) || + /\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*/.test( + value + )) + ); + }, + + isPort(value) { + return _.isNumber(value) && value > 0 && value < 65536; + }, + + isReadStream(value): boolean { + return ( + value && + (value instanceof Readable || "readable" in value || value.readable) + ); + }, + + isWriteStream(value): boolean { + return ( + value && + (value instanceof Writable || "writable" in value || value.writable) + ); + }, + + isHttpStatusCode(value) { + return _.isNumber(value) && Object.values(HTTP_STATUS_CODE).includes(value); + }, + + isURL(value) { + return !_.isUndefined(value) && /^(http|https)/.test(value); + }, + + isSrc(value) { + return !_.isUndefined(value) && /^\/.+\.[0-9a-zA-Z]+(\?.+)?$/.test(value); + }, + + isBASE64(value) { + return !_.isUndefined(value) && /^[a-zA-Z0-9\/\+]+(=?)+$/.test(value); + }, + + isBASE64Data(value) { + return /^data:/.test(value); + }, + + extractBASE64DataFormat(value): string | null { + const match = value.trim().match(/^data:(.+);base64,/); + if (!match) return null; + return match[1]; + }, + + removeBASE64DataHeader(value): string { + return value.replace(/^data:(.+);base64,/, ""); + }, + + isDataString(value): boolean { + return /^(base64|json):/.test(value); + }, + + isStringNumber(value) { + return _.isFinite(Number(value)); + }, + + isUnixTimestamp(value) { + return /^[0-9]{10}$/.test(`${value}`); + }, + + isTimestamp(value) { + return /^[0-9]{13}$/.test(`${value}`); + }, + + isEmail(value) { + return /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test( + value + ); + }, + + isAsyncFunction(value) { + return Object.prototype.toString.call(value) === "[object AsyncFunction]"; + }, + + async isAPNG(filePath) { + let head; + const readStream = fs.createReadStream(filePath, { start: 37, end: 40 }); + const readPromise = new Promise((resolve, reject) => { + readStream.once("end", resolve); + readStream.once("error", reject); + }); + readStream.once("data", (data) => (head = data)); + await readPromise; + return head.compare(Buffer.from([0x61, 0x63, 0x54, 0x4c])) === 0; + }, + + unixTimestamp() { + return parseInt(`${Date.now() / 1000}`); + }, + + timestamp() { + return Date.now(); + }, + + urlJoin(...values) { + let url = ""; + for (let i = 0; i < values.length; i++) + url += `${i > 0 ? "/" : ""}${values[i] + .replace(/^\/*/, "") + .replace(/\/*$/, "")}`; + return url; + }, + + millisecondsToHmss(milliseconds) { + if (_.isString(milliseconds)) return milliseconds; + milliseconds = parseInt(milliseconds); + const sec = Math.floor(milliseconds / 1000); + const hours = Math.floor(sec / 3600); + const minutes = Math.floor((sec - hours * 3600) / 60); + const seconds = sec - hours * 3600 - minutes * 60; + const ms = (milliseconds % 60000) - seconds * 1000; + return `${hours > 9 ? hours : "0" + hours}:${ + minutes > 9 ? minutes : "0" + minutes + }:${seconds > 9 ? seconds : "0" + seconds}.${ms}`; + }, + + millisecondsToTimeString(milliseconds) { + if (milliseconds < 1000) return `${milliseconds}ms`; + if (milliseconds < 60000) + return `${parseFloat((milliseconds / 1000).toFixed(2))}s`; + return `${Math.floor(milliseconds / 1000 / 60)}m${Math.floor( + (milliseconds / 1000) % 60 + )}s`; + }, + + rgbToHex(r, g, b): string { + return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); + }, + + hexToRgb(hex) { + const value = parseInt(hex.replace(/^#/, ""), 16); + return [(value >> 16) & 255, (value >> 8) & 255, value & 255]; + }, + + md5(value) { + return crypto.createHash("md5").update(value).digest("hex"); + }, + + crc32(value) { + return _.isBuffer(value) ? CRC32.buf(value) : CRC32.str(value); + }, + + arrayParse(value): any[] { + return _.isArray(value) ? value : [value]; + }, + + booleanParse(value) { + return value === "true" || value === true ? true : false; + }, + + encodeBASE64(value) { + return Buffer.from(value).toString("base64"); + }, + + decodeBASE64(value) { + return Buffer.from(value, "base64").toString(); + }, + + async fetchFileBASE64(url: string) { + const result = await axios.get(url, { + responseType: "arraybuffer", + }); + return result.data.toString("base64"); + }, +}; + +export default util; diff --git a/test-seedance-media.py b/test-seedance-media.py new file mode 100644 index 0000000..c40e5b2 --- /dev/null +++ b/test-seedance-media.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +"""Seedance 2.0 测试3: 图片+音频混合上传""" + +import sys +import requests + +TOKEN = sys.argv[1] if len(sys.argv) > 1 else "99999" +BASE_URL = "http://localhost:8000" +IMAGE_FILE = "/mnt/f/tmp/2026年2月20日/11.png" +AUDIO_FILE = "/mnt/f/tmp/2026年2月20日/22.wav" + +print("=" * 42) +print(" [测试3] 图片+音频混合上传") +print("=" * 42) +print(f"POST {BASE_URL}/v1/videos/generations") +print(f" model=seedance-2.0-fast") +print(f" files=11.png (image) + 22.wav (audio)") +print() + +resp = requests.post( + f"{BASE_URL}/v1/videos/generations", + headers={"Authorization": f"Bearer {TOKEN}"}, + data={ + "model": "seedance-2.0-fast", + "prompt": "@1 图片中的人物随着音乐 @2 开始跳舞", + "ratio": "9:16", + "duration": "5", + }, + files=[ + ("files", ("11.png", open(IMAGE_FILE, "rb"), "image/png")), + ("files", ("22.wav", open(AUDIO_FILE, "rb"), "audio/wav")), + ], +) + +print(f"HTTP {resp.status_code}") +print() + +if resp.status_code == 200: + result = resp.json() + print(f"created: {result.get('created', '')}") + data = result.get("data", []) + if data: + for i, item in enumerate(data): + url = item.get("url", "") + prompt = item.get("revised_prompt", "") + print(f"revised_prompt: {prompt}") + print() + print(f"Video URL:") + print(url) + else: + print("data 为空,未生成视频") + print(f"原始响应: {resp.text}") +else: + print(f"请求失败:") + print(resp.text) diff --git a/test-seedance-media.sh b/test-seedance-media.sh new file mode 100644 index 0000000..97a99b7 --- /dev/null +++ b/test-seedance-media.sh @@ -0,0 +1,94 @@ +#!/bin/bash +# Seedance 2.0 多类型素材(图片+音频)测试脚本 +# 用法: bash test-seedance-media.sh [sessionid] + +TOKEN="${1:-99999}" +BASE_URL="http://localhost:8000" +IMAGE_FILE="/mnt/f/tmp/2026年2月20日/11.png" +AUDIO_FILE="/mnt/f/tmp/2026年2月20日/22.wav" + +echo "==========================================" +echo " Seedance 2.0 多类型素材测试" +echo "==========================================" +echo "" + +# 测试1: 健康检查 +echo "[测试1] 健康检查 /ping" +echo "------------------------------------------" +curl -s "${BASE_URL}/ping" +echo "" +echo "" + +# 测试2: 仅图片(回归测试,验证原有功能不受影响) +echo "[测试2] 仅图片上传(回归测试)" +echo "------------------------------------------" +echo "POST /v1/videos/generations" +echo " model=seedance-2.0-fast" +echo " files=11.png (image)" +echo "" +curl -v -X POST "${BASE_URL}/v1/videos/generations" \ + -H "Authorization: Bearer ${TOKEN}" \ + -F "model=seedance-2.0" \ + -F "prompt=图片中的场景开始动起来" \ + -F "ratio=9:16" \ + -F "duration=4" \ + -F "files=@${IMAGE_FILE}" \ + 2>&1 +echo "" +echo "" + +# 测试3: 图片+音频混合上传 +echo "[测试3] 图片+音频混合上传" +echo "------------------------------------------" +echo "POST /v1/videos/generations" +echo " model=seedance-2.0-fast" +echo " files=11.png (image) + 22.wav (audio)" +echo "" +curl -v -X POST "${BASE_URL}/v1/videos/generations" \ + -H "Authorization: Bearer ${TOKEN}" \ + -F "model=seedance-2.0-fast" \ + -F "prompt=@1 图片中的人物随着音乐 @2 开始跳舞" \ + -F "ratio=9:16" \ + -F "duration=5" \ + -F "files=@${IMAGE_FILE}" \ + -F "files=@${AUDIO_FILE}" \ + 2>&1 +echo "" +echo "" + +# 测试4: seedance-2.0-fast 图片+音频 +echo "[测试4] seedance-2.0-fast 图片+音频" +echo "------------------------------------------" +echo "POST /v1/videos/generations" +echo " model=seedance-2.0-fast" +echo " files=11.png (image) + 22.wav (audio)" +echo "" +curl -v -X POST "${BASE_URL}/v1/videos/generations" \ + -H "Authorization: Bearer ${TOKEN}" \ + -F "model=seedance-2.0-fast" \ + -F "prompt=@1 配合 @2 的音乐节奏动起来" \ + -F "ratio=4:3" \ + -F "duration=5" \ + -F "files=@${IMAGE_FILE}" \ + -F "files=@${AUDIO_FILE}" \ + 2>&1 +echo "" +echo "" + +# 测试5: 仅音频(无图片) +echo "[测试5] 仅音频上传(预期:音频上传暂未实现的错误)" +echo "------------------------------------------" +curl -v -X POST "${BASE_URL}/v1/videos/generations" \ + -H "Authorization: Bearer ${TOKEN}" \ + -F "model=seedance-2.0-fast" \ + -F "prompt=根据音乐生成舞蹈视频" \ + -F "ratio=9:16" \ + -F "duration=4" \ + -F "files=@${AUDIO_FILE}" \ + 2>&1 +echo "" +echo "" + +echo "==========================================" +echo " 测试完成" +echo "==========================================" diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b6477c3 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "allowImportingTsExtensions": true, + "allowSyntheticDefaultImports": true, + "noEmit": true, + "paths": { + "@/*": ["src/*"] + }, + "outDir": "./dist" + }, + "include": ["src/**/*", "libs.d.ts"], + "exclude": ["node_modules", "dist"] +} \ No newline at end of file diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..74f98bc --- /dev/null +++ b/vercel.json @@ -0,0 +1,27 @@ +{ + "builds": [ + { + "src": "./dist/*.html", + "use": "@vercel/static" + }, + { + "src": "./dist/index.js", + "use": "@vercel/node" + } + ], + "routes": [ + { + "src": "/", + "dest": "/dist/welcome.html" + }, + { + "src": "/(.*)", + "dest": "/dist", + "headers": { + "Access-Control-Allow-Credentials": "true", + "Access-Control-Allow-Methods": "GET,OPTIONS,PATCH,DELETE,POST,PUT", + "Access-Control-Allow-Headers": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, Content-Type, Authorization" + } + } + ] +} \ No newline at end of file