无限画布无限画布
GPU API

GPU API 技术参考与验收档案

模型目录、工作流矩阵、调度接口、性能基准与生产验收记录

阅读说明

本页保存完整技术契约、工作流矩阵、性能数据和生产验收记录,供 Proxy、Scheduler 与 GPU 工作流维护人员使用。首次接入请先阅读 GPU API 总览。

本文是当前 Infinite Canvas GPU 接口的权威索引。浏览器只调用同源 BFF /api/proxy/v1/*;BFF 校验登录会话、画布权限、积分预扣与任务归属后,转发到 Proxy /v1/*。COMFY8020_KEY、内部调度地址、GPU 实例地址、LoRA 路径和供应商结果 URL 均只保留在服务端。

DreamID-V 开发站短片试运行

video-face-swap-dreamid 适配器源码 SHA 为 4dd5898aba8a58349cf5c4b81c7388f43e4f9e74,画布工具模式及配置显示修复 SHA 分别为 0b87bb25aafde095d73a6731dec67542e6c5b4e5、b7eb34497821abe9ef7943bec2898a6a2e686c68;GPU 6 为 NVIDIA RTX PRO 6000 Blackwell Server Edition(97887 MiB)。输入为同一张 512px 人脸图与 1.5 秒 MP4;两个模式均输出 45 帧、30fps、1.5 秒 AAC 音频,首中尾关键帧已对照。结果并不代表 15 秒或多段质量通过。

模式/入口输出任务耗时依据GPU 6 显存依据
faster / 画布 480p464×832,SHA-256 4b8b825d17b2fe68db815c00fce7528b09493af95d3ced72f778ea60312cc155NAS 输入/结果落盘相差约 115 秒;浏览器记录 2 分 03 秒每约 0.5 秒采样 302 次,总显存最大 32854 MiB;采样文件见验证记录
faster / 画布工具箱真实生成464×832,与上行同一输出 SHA-256;画布刷新后可播放浏览器画布记录 2 分 01 秒每约 0.5 秒采样 183 次,总显存最大 32854 MiB;采样文件见验证记录
dwpose / Partner 720p720×1280,SHA-256 63082dedf56502798f24bf0bf1d8e347aa01c7ca74ecfee941e763e5b5faca24NAS 输入/结果落盘相差约 13 分 13 秒运行中一次观察约 58 GiB 总显存,非连续峰值,不得用于调度门槛

这里的显存为整卡总占用,包含同卡其他服务,不能解读成 DreamID 独占峰值;排队与 GPU 执行阶段尚未分别计时。正式站晋升前需独占窗口补测多段真实输入、连续峰值与阶段时延。原始样本与运行证据见 reports/dreamid-v-dev/VERIFICATION.md。

通用约定

  • 所有浏览器请求都必须登录。创建任务需要 owner 或 editor 画布权限;查询结果允许 viewer;取消需要 owner 或 editor。
  • 计费请求必须带 X-IC-Operation-ID。同一 operation ID 不会重复创建任务;重复提交返回既有任务或 HTTP 409。
  • BFF 返回 x-ic-operation-id 和 x-ic-credit-status。异步创建通常为 held,成功结果为 settled,提交失败或确认取消为 released,上游结果不确定时为 unknown。
  • 文生图 JSON 请求使用 Content-Type: application/json;图片编辑和 /videos 一律使用 multipart/form-data,即使文生视频没有文件也不能改用 JSON 或 urlencoded。由浏览器或 HTTP 库生成 boundary,不要手写。
  • multipart 中图片 part 必须携带真实的 image/* MIME;视频 part 必须携带受支持的 video/mp4 或 video/quicktime MIME。application/octet-stream 和只伪造文件后缀不属于有效媒体声明。
  • 公开 model 只传稳定模型 ID。不得传 GPU 地址、工作流文件名、LoRA 文件路径、内部节点 ID或供应商凭证。
  • HTTP 400 表示参数不兼容,401/403 表示会话或权限问题,404 必须结合稳定 code 处理;409 表示任务尚未完成或 operation 重放,429 表示额度/限流,502 表示上游响应或媒体校验失败,503 表示模型或调度能力未配置。任务不存在与任务不属于当前用户统一返回 task_not_found 和相同文案,调用方不得据此枚举任务归属。

接口总览

方法浏览器路径用途计费
GET/api/proxy/v1/liveProxy 进程存活探针否
GET/api/proxy/v1/ready必需配置与生成能力就绪状态否
GET/api/proxy/v1/health图片/视频模型及供应商健康汇总否
GET/api/proxy/v1/providers/status各模型依赖探测详情否
GET/api/proxy/v1/models获取模型、能力、可用状态及缺失原因否
GET/api/proxy/v1/krea2/poses获取公开 Krea2 姿势 LoRA ID否
GET/api/proxy/v1/scheduler/statusGPU、显存、队列与工作负载只读快照否
GET/api/proxy/v1/scheduler/capabilities工作流 × GPU 部署和有效路由矩阵否
POST/api/proxy/v1/images/generations同步文生图是
POST/api/proxy/v1/images/edits同步参考图编辑是
POST/api/proxy/v1/images/generations/tasks异步文生图预扣
POST/api/proxy/v1/images/edits/tasks异步参考图编辑预扣
POST/api/proxy/v1/images/tasks/{id}查询图片任务(空 JSON 体)否
POST/api/proxy/v1/images/tasks/{id}/cancel取消图片任务释放或保持
GET/api/proxy/v1/images/tasks/{id}/content?index=0读取并校验图片结果结算
POST/api/proxy/v1/videos创建视频任务预扣
POST/api/proxy/v1/videos/{id}查询视频任务(空 JSON 体)否
POST/api/proxy/v1/videos/{id}/cancel取消视频任务释放或保持
GET/api/proxy/v1/videos/{id}/content读取并校验视频结果结算

模型发现与 GPU 状态

存活、就绪与供应商探测

  • GET /api/proxy/v1/live 只确认 Proxy 进程可响应,返回 { "alive": true },不代表 GPU 或模型可用。
  • GET /api/proxy/v1/ready 检查必需配置与至少一个实际生成通道;部署探针应使用此接口而不是 /live。
  • GET /api/proxy/v1/health 返回图片/视频 provider 汇总以及每个生成模型的 ready、missing。
  • GET /api/proxy/v1/providers/status 返回底层依赖探测详情,用于配置诊断;不得把此接口中的单个通道状态替代 /models 的逐模型结论。

GET /api/proxy/v1/models

响应中的每个模型包含 id、capability、ready 和 missing;明星模型还包含 name、alias、modes 和公开 trigger。该接口返回中央 GPU 工作流、供应商模型及当前不可用渠道的全量动态目录,数量会随配置与供应商发现变化;下文中央 GPU 矩阵不是 /models 全量清单。客户端必须以 ready 为选择依据,并原样展示 missing 中的诊断原因,不得只按模型是否出现在数组中判断可用。文档站通过主站公开的只读投影动态展示 id、name、capability 和 ready;具体 missing 诊断仍只在登录后的同源 /models 返回。

正在从 GET /api/proxy/v1/models 读取实时模型目录…

上表在浏览器中通过主站只读投影实时请求当前环境的 /models;新增、下线或探测失败的模型不需要手工同步到本文。本文后续列出的中央工作流和性能矩阵只记录实现结构与实测数据,不能用来生成模型选择器,也不代表完整模型目录。

能力探测只能说明节点、模型资产和路由满足静态条件。中央工作流变更后还必须执行最小真实请求 canary;节点 schema 漂移或运行时参数缺失时,模型不得仅凭静态探测继续标记为可用。

查询参数 refresh=true 会刷新供应商/工作流探测,但不会绕过服务端鉴权。

GET /api/proxy/v1/scheduler/status

返回物理资源、ComfyUI 实例、显存、利用率、运行/等待数量、工作负载和当前用户可见的归属聚合。refresh=true 或 force=true 绕过 Proxy 短缓存。响应不含原始实例 ID、主机地址、任务提示词和内部任务 ID。

GET /api/proxy/v1/scheduler/capabilities

返回工作流部署状态与实际路由矩阵。只有管理员的 refresh=true 会触发中央调度器深度探测;普通用户仍读取缓存。字段语义详见 API 响应约定。

图片生成

文生图

同步与异步入口使用相同 JSON:

{
  "model": "krea2",
  "prompt": "电影感人像,柔和轮廓光",
  "size": "1024x1536",
  "n": 1
}
  • model、prompt 必填;n 默认为 1。
  • size 是否生效由模型决定。Krea2 的 Proxy 长边上限 1536、每边限制到 256–1536;GirlsLike 每边 256–2048 且要求 32 的倍数;固定工作流忽略客户端尺寸时,前端不应发送无效选择。
  • krea2_pose 仅用于 krea2,可选值由 /v1/krea2/poses 返回;强度范围 0–2。
  • 同步成功返回 {created, data:[{b64_json}]};异步创建返回 {id,status:"pending",compute?}。

参考图编辑

POST /api/proxy/v1/images/edits 与 /images/edits/tasks 使用 multipart:

model=krea2-v21-edit
prompt=保持人物身份,只改变姿势
image=<FILE>
output_sizing=source_ratio
seed=12345
krea2_pose=doggy
krea2_pose_strength=1.0

同名 image 字段可以重复。output_sizing 只接受 source_ratio 或 source_exact。当前中央 GPU 图片工作流约束如下:

公开模型 ID调度工作流输入关键参数
krea2krea2-t2i0 图size、n;当前文生图未透传 seed
avataravatar1 图人脸定位裁切
krea2-turbo-v25-editkrea2-turbo-v25-edit1 图prompt、seed、output_sizing、可选 loras
face-swapface-swap2 图图1底图,图2身份;普通模式
face-swap-proface-swap-pro2 图Pro 后处理
head-swaphead-swap2 图图1底图,图2身份;普通模式
head-swap-prohead-swap-pro2 图Pro 后处理
krea2-bfs-v1krea2-bfs-v12 图图1底图,图2身份
krea2-bodyswap-v1krea2-bodyswap-v12 图图1姿势场景,图2身体参考
krea2-girlslike-{alias}girlslike-krea20 或 1 图明星身份由模型 ID 固定
krea2-editkrea2-edit1 图prompt
krea2-v21-editkrea2-v21-edit1 图output_sizing、seed、可选姿势 LoRA
krea2-v21-multi-editkrea2-v21-multi-edit1–4 图图片顺序、output_sizing、seed
krea2-i1.2-editkrea2-i12-edit1 图prompt、output_sizing、seed
muse-v35-undressmuse-v35-undress1–2 图图1必填、图2可选,output_sizing、seed
comfy-qwen-editqwen-image-edit1 图prompt
comfy-faceswapface-swap至少 2 图图1底图,图2脸源
seedvr2-upscaleseedvr2-upscale1 图4× 超分,长边上限 4096
krea2-identity-editkrea2-identity-edit2 图单阶段 Identity Edit;prompt 必填;图1场景,图2身份
krea2-person-swap-v1krea2-person-swap-v12 图双阶段 BFS 换头 → BodySwap 换身体;输入顺序同上
flux2-klein-9bflux2-klein3 图三张有序参考图、提示词;固定输出 1 张

comfy-* 旧别名会在 Proxy 中规范化到同一工作流。任何新增 GPU 图片模型必须同时更新本表、模型发现接口、计费策略和本文档契约测试。

muse-v35-undress 接受 1 或 2 个按顺序提交的同名 image 字段:第 1 张为目标主体图,第 2 张为可选身份/身体参考图。只提交 1 张时,Proxy 省略 image_b,Scheduler 保留来源工作流自带的中性图 2 占位参考;显式提交第 2 张时才覆盖该节点并保留独立参考分支。0 张或超过 2 张会返回 400。提示词固定在 Scheduler 权威工作流中,前端展示相同文本但不能覆盖它;当前提示词明确要求只重建原服装覆盖区域,保持脸、发型、体型、姿势、手、构图、背景、光线及所有非服装区域不变。权威模型链为 krea2_turbo_fp8_scaled → KNPV4.1_pre → identity_edit_v1_2 → Krea2EditModelPatch → KSampler 193:178 → VAEUtils Decode 193:300,API 只保留 SaveImage 186 一个最终输出。

ComfyUI 原始工作流画布

下列画布由 Scheduler 权威 workflow JSON 的真实节点和连线生成,不是手绘流程示意图:ComfyUI UI 格式保留原始画布坐标,API prompt 格式按真实依赖关系自动排版。每张图均提供可导入/审计的 JSON 快照;manifest.json 记录来源路径、节点数、连线数和 SHA-256。运行时生成的 Krea2 T2I 没有独立文件,因此快照直接对应 Scheduler _knp_t2i_graph,姿势与 GirlsLike LoRA 节点仍由服务端白名单在提交前动态插入。

下载完整工作流清单

Krea2 文生图基础画布

对应 krea2,也是 GirlsLike 文生图动态注入身份 LoRA 前的基础图。

Krea2 T2I ComfyUI 原始工作流画布

下载 JSON

GirlsLike Krea2 单图编辑画布

对应 krea2-girlslike-{alias} 的单图编辑模式;文生图模式使用上一张 Krea2 T2I 画布并动态插入明星 LoRA。

GirlsLike Krea2 Edit ComfyUI 原始工作流画布

下载 JSON

Krea2 单图编辑画布

Krea2 Edit ComfyUI 原始工作流画布

下载 JSON

Krea2 v2.1 单图编辑画布

Krea2 v2.1 Edit ComfyUI 原始工作流画布

下载 JSON

Krea2 v2.1 多图编辑画布

Krea2 v2.1 Multi Edit ComfyUI 原始工作流画布

下载 JSON

Krea2 Identity v1.2 姿势编辑画布

Krea2 Identity v1.2 ComfyUI 原始工作流画布

下载 JSON

Muse V3.5 一键脱衣画布

当前快照是从用户提供的 API JSON 按唯一最终输出依赖闭包裁剪出的 20 节点执行图:保留目标图与图2的独立编码/Conditioning 分支,模型链固定为 krea2_turbo_fp8_scaled → KNPV4.1_pre → identity_edit_v1_2 → Krea2EditModelPatch,仅执行 KSampler 193:178,再由 VAEUtils Decode 193:300 输出到唯一的 SaveImage 186。快照不包含重复保存、预览或与最终输出断开的调试节点。

Muse V3.5 Undress ComfyUI 原始工作流画布

下载 JSON

Qwen 图片编辑画布

Qwen Image Edit ComfyUI 原始工作流画布

下载 JSON

FaceSwap 换脸画布

FaceSwap ComfyUI 原始工作流画布

下载 JSON

SeedVR2 4× 超分画布

SeedVR2 Upscale ComfyUI 原始工作流画布

下载 JSON

Krea2 Identity 图片换人画布

Krea2 Identity Edit ComfyUI 原始工作流画布

下载 JSON

图片任务生命周期

// POST /api/proxy/v1/images/tasks/{id},body: {}
{
  "id": "TASK_ID",
  "status": "completed",
  "created": 1780000000,
  "data": [{ "url": "SERVER_OWNED_RESULT" }],
  "compute": {
    "kind": "scheduler",
    "phase": "completed"
  }
}

状态使用 pending、completed 或 failed。生成页面应轮询任务接口,完成后通过 /content?index=N 获取字节;content 接口会重新验证图片可解码,编辑任务还会拒绝退化/错误页结果。取消响应的 status 为 canceled、cancel_requested、not_cancellable 或 not_supported,客户端不得把后面三种显示成已取消。

GPU 视频生成

POST /api/proxy/v1/videos 只接受 multipart。纯文生视频没有文件时也必须按 multipart 提交所有标量字段;urlencoded 或 JSON 不属于该接口契约。通用字段如下:

model=minimax-h3
prompt=人物转身走向窗边
seconds=5
resolution_name=720p
ratio=16:9
fps=24
seed=12345
input_reference[]=<FILE>

当前中央 GPU 视频工作流:

公开模型 ID调度工作流输入约束
minimax-h3minimax-h30–1 图5–15 秒;纯文生模式按 resolution_name;24fps 与原生音频
minimax-h3-fl2vminimax-h3-fl2v正好 2 图图1首帧,图2尾帧;图片驱动输出当前跟随输入尺寸规则
minimax-h3-l2vminimax-h3-l2v正好 1 图单图作为尾帧;图片驱动输出当前跟随输入尺寸规则
minimax-h3-r2vminimax-h3-r2v1–4 图参考生视频;图片驱动输出当前跟随输入尺寸规则
minimax-h3-dasiwa-t2vaminimax-h3-dasiwa-t2va0 图DaSiWa C-MMH3-16 文生音视频
minimax-h3-dasiwa-i2vaminimax-h3-dasiwa-i2va正好 1 图单图作为首帧
minimax-h3-dasiwa-fl2vaminimax-h3-dasiwa-fl2va正好 2 图图1首帧,图2尾帧
minimax-h3-dasiwa-l2vaminimax-h3-dasiwa-l2va正好 1 图单图作为尾帧
minimax-h3-dasiwa-ref2vaminimax-h3-dasiwa-ref2va1–4 图多图人物、场景、风格或物体参考
scail2-person-swapscail2-person-swap1 图 + 1 视频人物图 ≤30MB;MP4/MOV ≤500MB;视频须含可解码音轨
ltx2.3-10eros-videoltx-video0–1 图720p/1080p;seconds、fps、横/竖/方形

MiniMax H3 文/图生视频画布

MiniMax H3 ComfyUI 原始工作流画布

下载 JSON

MiniMax H3 首尾帧画布

MiniMax H3 FL2V ComfyUI 原始工作流画布

下载 JSON

MiniMax H3 多图参考画布

MiniMax H3 R2VA ComfyUI 原始工作流画布

下载 JSON

SCAIL-2 视频换人画布

SCAIL-2 Person Swap ComfyUI 原始工作流画布

下载 JSON

LTX 720p 文生视频画布

LTX T2V ComfyUI 原始工作流画布

下载 JSON

LTX 720p 图生视频画布

LTX I2V ComfyUI 原始工作流画布

下载 JSON

LTX 1080p 文生视频画布

LTX HD T2V ComfyUI 原始工作流画布

下载 JSON

LTX 1080p 图生视频画布

LTX HD I2V ComfyUI 原始工作流画布

下载 JSON

MiniMax H3 的 resolution_name 并非所有模式都具有相同语义:纯文生模式按所选档位输出;当前生产回归中,718×1280 图片驱动的 FL2V/L2V/R2V 即使请求 480p 仍输出约 1440×2560,而无图 T2V 的 480p 输出为 640×352。调用方应把图片驱动模式视为跟随输入图尺寸规则,不要以请求档位预分配固定输出尺寸;该观测不是供应商长期 SLA。

MiniMax H3 DaSiWa 输入路由与真实 GPU 复验

画布按输入图片数量实时筛选模式:1 图可选 I2VA、L2VA、REF2VA;2 图可选 FL2VA、REF2VA;3–4 图只可选 REF2VA。REF2VA 的产品契约是 1–4 张参考图;超过 4 张时应提示精简素材。前端不得展示与当前拓扑不匹配的模式,也不得把多图静默截断后提交给单图模式。

候选提交 78e61ce0b0a7979da053fcb5cb50441300c52ab2 在生产 Proxy → Scheduler → vps66 链路完成固定参数 canary:480p、9:16、5 秒、24fps、seed 20260905。能力探测确认 vps66 的 8 个 RTX PRO 6000 Blackwell 实例对 I2VA、FL2VA、L2VA、REF2VA 均为 routed + ok。以下 50000 MiB 仅为 Scheduler 配置门槛,不是实测显存峰值;本轮没有 200ms 设备遥测,因此不填写峰值。

拓扑模型任务 ID排队 / GPU 执行输出验证视觉结论
1 图minimax-h3-dasiwa-i2vaee627254119a460ca35eb870bb45941b4.275s / 110.054sMP4,686155 bytes;5 帧抽样身份、服装、肤色、背景稳定,转身连续,通过
2 图,同一角色首尾帧minimax-h3-dasiwa-fl2va499339cc608640f991528abe67e514bb4.943s / 401.101sH.264 + AAC,1280×704,24fps,5.175s,2343415 bytes身份和服装连续,首尾构图转换自然,通过
3 图minimax-h3-dasiwa-ref2vac862d46cd565477388491cd8c54ce2267.336s / 407.372sH.264 + AAC,1280×704,24fps,5.175s,2255528 bytes主角色身份、服装、背景和转身动作连续,通过

L2VA 补充单样本:直接调用 Scheduler /v1/minimax-h3-dasiwa(未经过本轮 Canvas/Proxy/积分链路),固定 mode=l2va、5秒、480p、9:16、seed20260905,任务 task-idem-b1265d8667ea1403aa9936b3762e6561455b6c67473b3cbe245ca5e1f3786076 成功于 vps66:8189。排队5.244秒、GPU执行67.675秒;实际输出H.264/AAC、352×640、24fps、124帧、5.175秒、714853 bytes,全量解码退出0。输出SHA256 e833f84b317e602e575d3eee2c159f16227ce35934e6ca9277e3d7608fa8d155。已查看源图、5帧联系表和最后可解码画面,身份/服装/背景基本一致,无明显重影或肢体破损;仅此中性单样本的抽样视觉检查通过,不代表全场景时序质量。

运行镜像 infinite-canvas-scheduler:51f522830d5373f921694abb99dd390f9c914ae2,运行容器基础工作流 /app/workflows/minimax-h3-dasiwa.json SHA256 f56452d2bb97e19d5bb31e2c006cf2cc8b4afc6156455a5414009cc5e13b6682。输入SHA256 c56b08fa77aca4fa12248b7c936698bfc1e7c29a5fdd8072c0148508f1d9aee9。200ms设备遥测在任务窗口内采到GPU1共342条,基线36570 MiB、设备峰值76565 MiB;其他卡采样利用率未见非零,但未建立独占租约,不能认定模型独占峰值或稳定容量。证据:ecs110 /tmp/ic-l2va-submission.json、/tmp/ic-l2va-result.mp4、/tmp/ic-l2va-contact.png、/tmp/ic-l2va-tail.png;vps66 /tmp/ic-l2va-acceptance/telemetry.csv 与 summary.json。本次采样进程已停止;未据此修改调度显存门槛。

另一次 FL2VA 任务 edfd53f96c534cfc81ea90f5701512cb 使用两个不同角色作为首尾帧,虽然链路完成(4.950s 排队、395.100s GPU 执行),但出现身份融合和早期帧畸变,视觉判定失败,不计入质量通过样本。这验证了双图模式不仅要校验数量,还应在提交前提示首尾帧保持同一角色;质量验收不得以 HTTP 200 或文件可解码代替。

创建返回外层 Proxy 任务 ID,后续只使用该 ID 访问:

  • POST /api/proxy/v1/videos/{id}:使用空 JSON 体查询,返回 pending、completed 或 failed。
  • POST /api/proxy/v1/videos/{id}/cancel:返回真实取消结果。
  • GET /api/proxy/v1/videos/{id}/content:成功后流式读取视频并完成积分结算。

图片与视频的公开任务查询统一使用 POST 和空 JSON 体;Proxy 内部查询入口也以 POST 为 OpenAPI 权威方法。旧内部 GET 路由只保留兼容且不出现在 OpenAPI 中,浏览器 BFF 对查询路径的 GET 固定返回 405 / method_not_allowed 与 Allow: POST。

供应商 GPU/API 视频模型也复用这四个公开生命周期接口,但其模型参数与参考媒体限制以模型发现结果及前端对应模型配置为准;不得直接调用供应商任务地址。

超时、重试与机器可读错误

  • 同步图片接口可能因上游 OOM 返回 502,也可能先被网关以 504 结束等待而上游仍在执行。5xx 或客户端超时不证明请求未执行,不要更换 operation ID 盲目重提;预计长于网关等待窗口的工作优先使用异步 /tasks 入口并以原 operation ID 恢复。
  • Proxy、边缘网关和供应商各有独立超时,部署值可能不同;单次观测到的等待秒数不是稳定 SLA。
  • image_output_local_black_collapse 表示图片通过了上游执行但被本地质量校验判定存在大面积局部黑块。其 HTTP 状态为 502,通常需检查工作流输出或输入组合,而不是反复下载 /content。
  • 404 / resource_not_found:路径、能力或受保护资源对当前用户不可见。
  • 404 / model_not_found:请求的模型不存在或当前用户不可见。
  • 404 / task_not_found:任务不存在或不属于当前用户;两种情况的状态、code 和文案完全相同,防止任务枚举。
  • 404 / VIDEO_TASK_MAPPING_MISSING:已确认归属的外层视频任务丢失 Proxy 映射;响应带 operation ID,客户端可停止宽限轮询并提示重新生成。
  • 405 / method_not_allowed:图片或视频任务查询误用了 GET;改用 POST,不应重建任务。

Proxy 到中央调度器

以下接口仅供 Proxy 使用,要求 Authorization: Bearer <COMFY8020_KEY>,不对浏览器开放:

方法内部路径说明
GET/v1/gpus原始 GPU、实例、队列与 workload 清单
GET/v1/capabilities?endpoint=...&refresh=true节点/模型能力与有效路由
POST/v1/{workflow}提交已登记工作流;JSON 或 multipart 由工作流定义
POST/v1/images/tasks/{id}查询图片任务;内部旧 GET 仅兼容
POST/v1/videos/{id}查询视频任务;内部旧 GET 仅兼容
POST/v1/tasks/{task_id}/cancel请求取消中央任务并返回 canceled 确认位

Proxy 向调度器提交时附加经过签名的任务归属信息;公开响应只保留清洗后的 compute:kind、phase、公开资源标签、GPU 型号和分辨率,不回传地址、Token、内部目录、原始 owner header 或工作流图。

性能与显存基准

所有由本项目中央 Scheduler 执行的 GPU API 在上线、工作流图变更、模型资产变更、推理参数默认值变更或 GPU 型号变更前,都必须重新实测,并把结果更新在本节。仅有能力探测成功、配置显存门槛或一次成功输出,不算完成性能基准。

统一测试口径

  • 在 ecs110 隔离验证目录对准备发布的同一候选提交发起请求;推理仍由登记 GPU 节点执行,不在本地 Mac 运行。
  • 每个输入模式先冷启动 1 次,再连续测量至少 3 次热运行;图片固定记录代表尺寸,视频固定记录输入分辨率、输入时长、输出分辨率、输出时长与帧率。
  • API 总耗时从请求开始计到结果字节完成并通过图片解码或视频容器/解码校验;异步任务同时记录排队时间、GPU 执行时间和总耗时。文档填写热运行 P50 / P95,样本不足 20 次时还必须列出每次原始值,不把 3 次样本伪装成统计稳定的 P95。
  • 显存占用使用任务实际落卡的设备遥测。提交前记录空闲基线,执行期间至少每 200ms 采样一次,记录 峰值已用显存 和 相对基线增量;不得把 Scheduler 的 ENDPOINT_VRAM_MB 配置门槛写成实测峰值。
  • 同卡存在其他运行任务、采样丢失、任务跨卡、结果校验失败或工作流自动重试时,该轮标记无效并重测。原始记录至少保留候选 commit、工作流 SHA、公开模型 ID、输入摘要、GPU 型号、采样间隔、每轮耗时、每轮显存峰值、输出校验和与退出状态。
  • 供应商托管模型仍测试 API 总耗时;供应商未提供逐任务显存遥测时明确记为“供应商不可观测”,不填估算值。下表只覆盖本项目能够逐卡采样的中央 GPU 工作流。

中央 GPU 工作流基准矩阵(非模型目录)

配置门槛只用于调度前筛卡,不是测量结果。待测项在发布验收前必须以真实值替换;同一工作流存在文生图/图生图、单图/多图、不同分辨率或视频时长分支时分别追加行,不能合并成一个最好结果。

公开模型 / 用途Scheduler 工作流必测输入模式配置门槛API 总耗时 P50 / P95GPU 执行 P50 / P95峰值已用 / 相对基线GPU 与样本状态
avatar / YOLOv8 头像裁切avatar单张人物图 → 512×512 PNG15000 MiB单次生产闭环 14.25s;正式 P50/P95 待测八任务观测 1.234–14.382s;正式 P50/P95 待测待隔离窗口采样RTX PRO 6000 Blackwell;八卡能力核验 + 8 并发输出解码生产闭环通过,正式基准待测
krea2krea2-t2i1024×1024 文生图;姿势 LoRA15000 MiB待测待测待测待测待测
krea2-girlslike-{alias}girlslike-krea2文生图;单图编辑36000 MiB待测待测待测待测待测
krea2-editkrea2-edit单图编辑32000 MiB待测待测待测待测待测
krea2-v21-editkrea2-v21-edit单图编辑;姿势 LoRA36000 MiB待测待测待测待测待测
krea2-v21-multi-editkrea2-v21-multi-edit1 图;4 图编辑40000 MiB待测待测待测待测待测
krea2-i1.2-editkrea2-i12-edit单图姿势编辑36000 MiB待测待测待测待测待测
muse-v35-undressmuse-v35-undress1024×1824 图1 + 默认图2 → 760×136036000 MiB18.903s / 20.987s14.082s / 14.113s33317 / 32448 MiBRTX PRO 6000 Blackwell;1 冷 + 3 热历史候选通过;当前生产回归需重验
muse-v35-undressmuse-v35-undress1024×1824 图1 + 1088×1472 显式图2 → 760×136036000 MiB20.475s / 20.857s14.256s / 14.813s34308 / 32896 MiBRTX PRO 6000 Blackwell;1 冷 + 3 热历史候选通过;当前生产双图被质量校验拒绝
comfy-qwen-editqwen-image-edit单图编辑45000 MiB待测待测待测待测待测
comfy-faceswapface-swap双图换脸45000 MiB待测待测待测待测待测
seedvr2-upscaleseedvr2-upscale2×/3×/4× 超分;长边 4096 边界80000 MiB待测待测待测RTX PRO 6000 Blackwell;待完成基准样本能力与单次生产验收通过,基准待测
krea2-identity-editkrea2-identity-edit单阶段双图换人25000 MiB待测待测待测待测待测
krea2-person-swap-v1krea2-person-swap-v1BFS 换头 → BodySwap 换身体80000 MiB待测待测待测RTX PRO 6000 Blackwell;8 GPU 池单次生产验收后补正式基准
flux2-klein-9bflux2-klein3×512² 有序参考图 → 1248² PNG40000 MiB20.186s / 20.347s13.622s / 14.370s22815 / +22124 MiBRTX PRO 6000 Blackwell;1 冷 + 3 热,另 1 次显存采样候选实测通过
minimax-h3minimax-h3文生视频;首帧图生视频50000 MiB待测待测待测待测待测
minimax-h3-fl2vminimax-h3-fl2v首尾帧视频50000 MiB待测待测待测待测待测
minimax-h3-r2vminimax-h3-r2v1–4 张参考图视频50000 MiB待测待测待测待测待测
video-face-swapvideo-face-swap13.833s / 415 帧源视频 + 1 张人脸图 → 512×896 BFS PNG + 最终 MP480000 MiB单次生产闭环 318.747s(含排队);正式 P50/P95 待测单次分配到完成 313.228s;BFS 中间图约 17.680s 可读待隔离窗口采样RTX PRO 6000 Blackwell;单次生产组合任务BFS 与最终视频解码通过;正式基准待测
video-person-swapvideo-person-swap13.833s / 415 帧源视频 + 1 张人物图 → 512×896 BFS+BodySwap PNG + 最终 MP480000 MiB单次生产闭环 338.577s(含排队);正式 P50/P95 待测单次分配到完成 332.179s待隔离窗口采样RTX PRO 6000 Blackwell;单次生产组合任务中间 PNG 与最终 H.264 MP4 解码通过;正式基准待测
scail2-person-swapscail2-person-swap人物图 + 短视频;分段视频70000 MiB单次热运行 297.221–297.222s;P50/P95 待测单次热运行 297.218s;P50/P95 待测49062 / +7520 MiB(单次热运行)RTX PRO 6000 Blackwell;13.833s / 415 帧单样本固定输入 A/B、显存采样与完整解码通过;正式基准待测
ltx2.3-10eros-videoltx-video720p/1080p 文生;720p/1080p 图生50000 MiB待测待测待测待测待测
公开模型 / 用途Scheduler 工作流必测输入模式配置门槛API 总耗时GPU 执行峰值已用 / 相对基线GPU 与样本状态
数据处理去字幕(PaddleOCR + STTN-DET)video-clean / subtitle_remove硬字幕视频32000 MiB46.91s(单次)46.91s(单次)4767 / 4081 MiBRTX PRO 6000 Blackwell;生产单次 + 200ms canary生产 VDE → Scheduler → GPU 闭环通过;样本判定 uncertain,原视频保持不变
数据处理去水印(精确轮廓 + DiffuEraser)video-clean / watermark_remove稳定文字/图标水印视频32000 MiB306.794s(生产单次,含排队)306.548s(生产单次)待补独立显存采样RTX PRO 6000 Blackwell;1280×720、477 帧、30fps生产 VDE → Scheduler → GPU 闭环、自动定位、完整解码、关键帧视觉与原 AAC 音轨通过

当前生产只读遥测确认 Scheduler 能返回逐卡总显存、空闲显存、利用率、队列和工作负载;该快照不是基准结果。采样时观察到 8 张 GPU 均有运行任务且合计仍有大量排队任务,因此没有用受污染的并发数据填写上表。正式基准应在隔离、无其他任务占卡的窗口执行。

最新生产回归(单次结果,不是正式基准)

生产回归覆盖 23 个模型/输入用例,17 个通过、6 个失败;8 个只读接口均返回 200。下列耗时是各用例单次端到端观测,只覆盖最短视频时长,不具备排队时间、逐任务 GPU 执行时间、200ms 逐卡显存、候选 commit 与工作流 SHA 等正式基准字段,因此不得写入上表的 P50/P95:

用例结果单次总耗时
krea2 同步文生图 / 异步文生图 / 姿势 LoRA通过22.747s / 24.249s / 15.817s
krea2-girlslike-iu 文生图、krea2-girlslike-lyf 异步文生图通过21.022s / 19.947s
krea2-edit 单图编辑通过30.959s
comfy-qwen-edit / comfy-faceswap / seedvr2-upscale通过24.404s / 138.077s / 26.837s
flux2-klein-9b 三图合成通过28.429s
minimax-h3 T2V / FL2V / L2V / R2V(均最短 5s)通过62.949s / 88.910s / 104.444s / 129.877s
scail2-person-swap(约 4s 且含音轨)通过94.941s
ltx2.3-10eros-video(最短 5s)通过435.652s
krea2-v21-edit / krea2-v21-multi-edit / GirlsLike 单图编辑失败:节点 792 缺必填输入6.823s / 5.058s / 7.400s
krea2-i1.2-edit失败:提交路径引用未定义 image_b0.366s
muse-v35-undress 双图 / krea2-identity-edit失败:image_output_local_black_collapse51.926s / 30.411s

muse-v35-undress 单图在本轮通过(30.043s),但双图以多组图对、尺寸和 seed 重试仍被同一质量规则拒绝;krea2-identity-edit 也出现相同回归。历史候选基准保留用于追溯,不代表当前生产行为。原始记录进入仓库并包含必要的脱敏输入与退出状态之前,本节只作为问题复现摘要。

video-face-swap 本次生产验收使用 Scheduler 候选 92da340c29f2a3f9dfedc69fb4c1102a1854406e、视频创作台候选 86d7ac802ae7bd70dcc25ab27cf019f74e79293b 和工作流 SHA-256 5a592ae7e036b3f1efa6219a75ab000d4f2eb976897ebcac8adcc39be2cb0c00。任务 task-4eea370c817548d78d3cedd63f007adc 落到 NVIDIA RTX PRO 6000 Blackwell Server Edition;输入为 13.833s、415 帧竖版视频与 1 张 PNG 人脸参考图,提示词 the woman is dancing,seed 77。排队 5.519s,分配后约 17.680s 得到 512×896 RGB PNG BFS 中间图,分配到最终完成 313.228s,最终 H.264 MP4 和中间 PNG 均通过媒体读取与解码。该轮没有 200ms 逐卡显存采样,也不足冷启动加 3 次热运行,因此显存与稳定 P50/P95 保持待测,不以 80000 MiB 调度门槛冒充峰值。

video-person-swap 的尺寸链修复使用 Scheduler 候选 65ac7f96c75e69eb566fc8e28622d30b6e0d83ed 和工作流 SHA-256 7c09a7948c65ff0b0e1f6bd04a2e913c3c05c25b67867a41fbc30705b517764c。生产任务 task-8c5fb7ce8c4b47cca1511b645dfa0abf 落到 vps66:8194 的 NVIDIA RTX PRO 6000 Blackwell Server Edition;输入为同一 13.833s、415 帧竖版视频与 1 张 PNG 人物参考图,提示词 the woman is dancing,seed 77。排队 6.398s、GPU 分配后运行 332.179s,输出 512×896 RGB PNG 的 BFS+BodySwap 中间新首帧及最终 H.264 MP4,两者均通过读取与解码。该单次生产闭环不作为稳定 P50/P95 或显存峰值。

avatar 使用主站候选 98ee8990cd94232d524ecc445f20cbc31ae5f1cd、Scheduler 候选 d5a64225d4dbf482e1cafa565239deb15a3790b5 和工作流 SHA-256 d17fb81664430bddcf95d0f4613b0a2a60ca49d2ba7f38b6e48a5d9a58eb2eac。固定输入为 1024px 宽人物肖像 JPG;能力刷新确认 vps66:8188–8195 八个实例全部 routed + ok。并发提交 8 个任务的排队原始值为 20.500 / 33.474 / 80.755 / 50.389 / 82.619 / 60.664 / 66.909 / 69.600s,GPU 执行原始值为 3.315 / 14.382 / 1.234 / 5.698 / 3.753 / 1.835 / 2.831 / 3.438s;八个结果全部解码为 512×512 RGB PNG,单文件 600126 bytes。随后通过生产 Proxy 的 POST /v1/images/edits/tasks 完成一次端到端提交、轮询、OSS 持久化闭环,总耗时 14.25s。该时段存在其他 GPU 任务,故数据只证明八卡路由能力和输出契约,不填写显存峰值或稳定 P50/P95;原始 Scheduler 任务记录保存在 ecs110:/home/gy/avatar-canary-report.json。

video-clean Worker canary 使用 Scheduler 候选 06d674809a8a92fbb1d2383635975e14312584eb、工作流 SHA-256 240116061f31cce9e748effe65e2ef0f4dd1b6a0c0584caca76a43b42a00bf32 和固定 VSR 镜像摘要 sha256:7a9c720c0491f129ab39bffa6ca59b736dfcdab0350fe871005624fc8b6fe99a。在队列为空的 vps66 GPU 7(NVIDIA RTX PRO 6000 Blackwell Server Edition)以 nvidia-smi -lms 200 原生 200ms 循环采样:去字幕输入 SHA-256 4c1f33de3957436dde22dcecf4e19c1ecf8252f5c544ecdb6f565b44e26d0ff6(1280×720、240 帧、30fps),新容器总耗时 47.77s,239 个显存样本的基线/峰值为 686/4767 MiB,输出 SHA-256 bcdaf73df4a6a0d54f81459876a8ce4b6129942719461261a0e6172a0d4f8be8,解码为 1280×720、30fps、8.034104s,manifest 严格解析为 cleaned,detector/restorer 为 PaddleOCR 2.10.0 / STTN-DET。去水印输入 SHA-256 202f98b87c327cdb6b0b689ef48027d58f7ea2461ada8aa44dc063598f7e326b(640×360、92 帧、29.97fps),新容器总耗时 38.32s,192 个显存样本的基线/峰值为 686/3669 MiB,输出 SHA-256 afc03e09dd5417ea1c487faa18f713dc366aa78e8c035db335dd6cb827248156,解码为 640×360、29.97fps、3.069736s,manifest 严格解析为 cleaned,detector/restorer 为 PaddleOCR 2.10.0 / ProPainter。以上记录证明两套独立 Worker 模型和显存峰值,不冒充尚未启用生产路由后的 API 排队/GPU 执行/P50/P95;原始记录保存在 GPU 主机 /opt/vde-gpu-cleaner/canary/06d674809a8a/。

去水印链路升级使用 Scheduler 候选 8cd88a9aabc3c1776247ee371c33c5bd12c43606、同一工作流 SHA-256 240116061f31cce9e748effe65e2ef0f4dd1b6a0c0584caca76a43b42a00bf32、固定 VSR 镜像摘要 sha256:7a9c720c0491f129ab39bffa6ca59b736dfcdab0350fe871005624fc8b6fe99a 与 DiffuEraser 提交 8e6f279ac7531e27ad1849c6f8dab5372a8597e7。固定输入 SHA-256 5c1ad77bbca0a2ca421ac637ae4887f1a2171ede762a6ddd910d8a38c0b48894(1280×720、477 帧、30fps、15.9s),空闲卡单次全片运行总耗时 307.714s,其中 DiffuEraser 推理 261.924s;输出 SHA-256 c1ad471762599d4901fb1ae968b07dab0acef19d991e9a8fb1f30e6ae8fee0d2,文件 8202477 bytes,完整视频解码通过并包含 15.893s、746 帧 AAC 原音轨。严格 manifest 判定为 cleaned,488/488 帧覆盖完整,自动检测命中一组上下叠加水印,restorer 记录为上述 DiffuEraser 固定提交;1、4、8、12、15 秒关键帧检查确认水印消失,运动头发与背景纹理连续,未出现矩形模糊块。该次没有取得可靠的逐卡显存时序,因此显存列保持待测,不以 32000 MiB 调度门槛或受其他进程污染的宿主机总显存冒充峰值。原始结果保存在 GPU 主机 /mnt/cypher/model-store/diffueraser/experiments/integrated-engine-full/。

升级后的生产闭环任务 task-idem-1e04117b8a4fd8e9b21d98880f76e2e2a9a434a67bcf5ae3d7c34a79f9d3826e 经 ecs110-us Scheduler 落到 vps66 GPU 0;排队 246ms、运行 306548ms,严格 manifest 为 cleaned,488/488 帧覆盖完整,restorer 为同一 DiffuEraser 固定提交。生产产物 SHA-256 6544d026ad7959e6c174625ac3cb60c90e3ee93118dd3960ef6b7a702e67f7b3,8200474 bytes,解码为 1280×720、477 帧、30fps、15.9s,并保留 15.893s、746 帧 AAC 音轨;1、4、8、12、15 秒关键帧复核通过。该记录证明现有 VDE / Scheduler 契约已经路由到新 Worker,不代表稳定 P50/P95,也没有补录未采到的显存峰值。

生产端到端验收使用 Scheduler 2a7aca09d86cf0bd571fd67372ce5e72ee319166、VDE e09f82824928681cdf598cb7faa6b38e0a29aaee 和 34.547s 的既有真实视频资产。八个 vps66:8188–8195 候选均经独立 Cleaner Bearer 数据面返回 ready,普通 Comfy API 仍使用原 19193–19200 隧道,Cleaner 上传/能力探测单独使用 19203–19210。去字幕任务 task-idem-ef3a6aca... 落到 vps66:8188,排队 5.69s、调度到完成 41.22s、总计 46.91s;去水印任务 task-idem-8019c34b... 同卡顺序执行,排队 4.62s、调度到完成 42.86s、总计 47.48s。两者均覆盖 842/842 帧、CUDA 执行并分别报告 STTN-DET / ProPainter;本样本没有高置信度命中,严格契约返回 uncertain 并保留原 Variant。首次启用前两条任务保留了 gpu_cleanup_capability_unavailable 失败原因与自动 retry 记录,修复部署后的新任务均一次成功。单次生产样本不足以形成统计分位数,表中 P50/P95 明确标注为单次观测。

flux2-klein-9b 使用 Scheduler 候选 fc6b2fdea52ff35b4e71e116d7c272184f3df82a 和工作流 SHA-256 c8faba9631872f4530792de1812a1163b541b8b7b2d27d89d8ddeff79abff7ac。输入为三张 512×512 RGB PNG,固定 4 步采样,输出均为 1248×1248 RGB PNG。首次运行的排队 / GPU / API 总耗时为 5.031s / 13.726s / 18.758s;三次计入热样本分别为排队 6.036s / 3.855s / 5.147s、GPU 13.622s / 13.501s / 14.370s、API 总耗时 20.347s / 17.873s / 20.186s。表中 P95 按三次热样本观测最大值记录,不外推为稳定分位数。另一次同输入模式的显存采样运行耗时 19.465s,GPU 执行 13.635s;vps66 物理 GPU 5 以约 100ms 间隔取得 232 个样本,空闲基线 691 MiB、峰值 22815 MiB、相对增量 22124 MiB,其余 7 张卡保持基线且全部 Comfy 队列最终为空。五个输出均完成 PNG 解码;热样本 SHA-256 为 62ada72f…a9e、70c5606e…249c、a8ced970…1366,显存样本输出为 07cbac10…348f。原始任务记录保存在 Scheduler /data/flux2-klein-benchmark-hot.json,显存原始样本保存在 vps66 ops/deployments/flux2-klein-9b-20260831-072430/scheduler-benchmark-vram-valid.csv。

muse-v35-undress 的 krea2_turbo + KNPV4.1_pre 最终 Scheduler 候选为 a3dae0d14f0aee75a041a0d4127c7225d408c500,已包含当前生产 Scheduler ca52d96964dfe684685422683c16ccad6d1e5a10。API 工作流 SHA-256 为 c73fb03f4f39cd7163272e725938dd5de3675dec8ace0ed90ddaa5d9804401b2,文档规范化快照 SHA-256 为 a67cd174776860564f8dc50a26fb813b026e6fa914ef12ae1f39504cf402cfd1,固定提示词 SHA-256 为 113b21b95e30e222f9f57dad6692b12b6ccfded65afd99e7eaca93fd00c43692。提示词把编辑限制在原服装覆盖区域和最小边界融合像素,保护已可见皮肤、脸、头发、手脚、姿势、构图、背景和光线;图2若不清楚显示同一成年人(包括中性占位图)则完全忽略。每轮 Comfy history 都核对到 krea2_turbo_fp8_scaled → KNPV4.1_pre → identity_edit_v1_2 → Krea2EditModelPatch → KSampler 193:178 → VAEUtils Decode 193:300 → SaveImage 186,恰好 20 个节点、1 个 KSampler、1 个 SaveImage,正向提示词确实接入 193:178,最终输出仅来自节点 186。

本次 API 总耗时按隔离 Scheduler 的 POST /v1/muse-v35-undress → /v1/tasks/{id} 轮询 → 鉴权 /view 下载并完成 PNG 解码 计量,不再把直连 Comfy 的 /prompt 时间冒充 Scheduler API 时间。单图分支锁定无其他任务的 vps66:8193(物理 GPU 5、内部 Comfy 19198,NVIDIA RTX PRO 6000 Blackwell Server Edition),使用图1 SHA-256 c1ed41ec1740c76f5a0a2a4397545af93a166d82664077b516aaa3c9df3caf11(1024×1824)与工作流默认图2 SHA-256 6d21ae0a265aabade9c0f37bd396b5dbad616d2475890a01d217ec4efc28074c(768×768)。seed 919156720936100 的冷运行排队 / GPU 执行 / API 总耗时为 3.424s / 14.362s / 22.085s;seed 919156720936101–919156720936103 的三次热运行分别为排队 2.599s / 2.521s / 2.602s、GPU 执行 14.113s / 14.049s / 14.082s、API 总耗时 18.903s / 18.760s / 20.987s。

显式图2分支锁定另一张已释放模型并确认空闲的 vps66:8195(物理 GPU 7、内部 Comfy 19200,同型号 GPU),使用相同图1与图2 SHA-256 9e6fdc552fb20b44155ea5bf943c891b5570e40d8af1a5ffa999be52a3b39d5a(1088×1472)。seed 919156720936300 的冷运行排队 / GPU 执行 / API 总耗时为 3.820s / 14.533s / 21.732s;seed 919156720936301–919156720936303 的三次热运行分别为排队 2.432s / 4.206s / 2.822s、GPU 执行 14.195s / 14.813s / 14.256s、API 总耗时 19.452s / 20.857s / 20.475s。

显存由 vps66 宿主机 nvidia-smi --loop-ms=100 直接逐卡记录真实时间戳:单图有效窗口 925 个样本,间隔 P50 / 最大值 100 / 107ms,卸载基线 / 峰值 / 相对峰值为 869 / 33317 / 32448 MiB;显式图2有效窗口 944 个样本,间隔 P50 / 最大值 100 / 108ms,对应为 1412 / 34308 / 32896 MiB。每轮 Comfy 队列最大 running 为 1、pending 为 0,未出现候选之外的 prompt ID。两分支共 8 个计入样本的输出全部通过 PNG 解码且均为 760×1360 RGB,逐轮文件哈希、像素哈希、任务 ID、prompt ID、实际图谱、原始计时与采样日志保存在 artifacts/muse-turbo-knp-a3dae0d/benchmark-final.json(SHA-256 1e5ca580237d31b471696694f21ee60adb5513ca0cbdad87a98ceade4c35a008)。样本均少于 20 次,表中 P95 是三次热运行的观测最大值,不表述为稳定分位数。

seedvr2-upscale 的生产集成验收使用 Scheduler 候选提交 77113f2e0bfd210547463d3f630402492e41c633 和工作流 SHA-256 ae70b47c99cdb1fc6cdb0ecb58da8912a6515b5af2b52490c0ea4061317383d2。vps66 的 8188–8195 八个实例均通过 10 类节点、2 个模型资产的能力核验;单次 2×、max_edge=512 小图请求落到 vps66:8192,任务记录为排队 5.34s、GPU 执行 6.75s、创建到完成 12.09s,输出解码为 512×916 RGB PNG(3828 bytes)。这次记录只证明路由、推理和输出校验闭环,未在 200ms 逐卡采样窗口内取得显存峰值,也没有冷启动加 3 次热运行样本,因此不填入 P50/P95 或显存列。

已撤回的 704×1248、双重模糊参考图候选曾进行一次效果 A/B:目标图 SHA-256 50e041608f6a9d54f84154f7c05934a5e8bc003bbefb55cc47503d279f78161f、源视频 SHA-256 91c79b237aa347c1bedfdcc8d03962d9a12c39883faa6db9443092aadda1e87c(1080×1920、415 帧、30fps、13.833333s、AAC 立体声)、98 词终态英文 prompt SHA-256 f4356d19ac82765ccdd70bffffc5028c45f91d2ab46384b0e9bc903164981547 和 seed 6384881630681871233。纯灰参考底基线输出 SHA-256 为 f96eceab5fa3d5256dfa3391decaa7dbcba84402ce45807929397953e63e0aea;双重模糊参考背景输出 SHA-256 为 d412bb1e1643a968a31c5cdd7c66d90dfd07890703ebcc98829e8288fab79d9a。五个等距抽帧的单组人工对照只观察到该已撤回候选的灰白人物描边减弱,不能外推到当前附件同源工作流。

该已撤回候选的 Scheduler 提交为 4a025d067d35143c694720109f001ea4a97a8162,原始工作流 SHA-256 为 da1b8c20fff33d0bedc1b8e18e7a8a9a600fe622e8c80f833867df442464f07c,文档规范化快照 SHA-256 为 05ea3ce19cdd9593c21f07bbf3c35575564c8f5f2d707a4d63629f546c3cedd9。在无其他排队任务的 vps66:8192(物理 GPU 4,NVIDIA RTX PRO 6000 Blackwell Server Edition)执行该工作流、相同输入和 seed 6384881630681871234,Comfy history 记录 GPU 工作流执行 741.790s;输出 SHA-256 723946d022ebf25303f4df8195e7f0ef430fe8919ab5acdd9e5150b5be67ca5b,探测为 H.264 704×1248、415 帧、30fps、13.833333s,并含 44.1kHz AAC 立体声音频。另一次与该执行图逐节点等价、仅 _meta.title 不同的候选运行记录总耗时 726.139s,在 GPU 4 上采集 2500 个显存样本,空闲基线 772 MiB、峰值 58244 MiB、相对增量 57472 MiB。这些数据只保留为已撤回候选的历史记录,不写入当前工作流的 P50/P95 或正式显存矩阵。

当前附件同源候选的 Scheduler 提交为 ca52d96964dfe684685422683c16ccad6d1e5a10,原始工作流 SHA-256 为 80b224cbafb38fa264983568b13976b5c186a1bb1fb086aca14438f18b2c3bdd,文档规范化快照 SHA-256 为 f17d4548f91ff6870956c668a5f833e2f425df83e2bee5a43771c4e712e574d2;manifest 核对为 70 个节点、119 条连线。内部尺寸为 512×896;Resize Image v2 原始参考图直接连接 CLIP Vision 与 WanSCAILToVideo.reference_image,图内默认提示词为 the woman is dancing、默认 seed 为 77。

新旧工作流固定 A/B 继续使用上述目标图、源视频、98 词 prompt 和 seed 6384881630681871233,均落在 vps66:8192 的物理 GPU 4。附件同源 A 输出 SHA-256 为 b62d2a4f0dc02db86dbc4b29e2ca0eb7a0c6adf4c64a5e826f9c7a001ff742f7,热缓存执行 297.631s;当时线上候选 B 输出 SHA-256 为 5942cae07715b5cb2a4bb02f6160ebf0f6c2711d824eab65d2e901bba2f341c9,冷执行 725.375s。两侧均为 H.264、415 帧、30fps、13.833333s 且含 AAC 立体声,完整解码退出码均为 0;A 为 512×896,B 为 704×1248。观察到 A 会更明显带入目标参考图的地板、门窗背景,B 对源视频场景的全帧 SSIM 更高(0.743695 对 0.708872)。该 A/B 证明两套图实际输出不同,不把单组场景指标外推为人物换人效果结论;耗时对比也因 A 命中 22 个缓存节点、B 未命中缓存而不视为受控性能基准。

同一附件图的单次显存采样 prompt 为 780e028d-c087-48ea-bca0-b3d38b34cfdb:队列等待约 3–4ms,直连 worker API 总耗时约 297.221–297.222s,Comfy 执行 297.218s。GPU 4 空闲基线 41542 MiB,绝对峰值 49062 MiB,相对增量 7520 MiB;1472 个样本的采样间隔中位数为 200.000ms、P95 为 202.000ms。输出 SHA-256 为 5df68c0b2467364e5cc0d6c3b9fad627aef9d12e1ea28669d0247c7a8c95cbf7,完整解码退出 0。该轮命中 24 个缓存节点,且执行中物理 GPU 5 短暂出现另一任务(GPU 4 无外来 prompt),因此只作为当前图的单次隔离落卡证据;冷启动加至少 3 次热运行及 Scheduler 端到端 P50/P95 仍待正式基准,不把这一次样本写成稳定统计。

8 卡与 16 实例容量判断

一次生产拥塞快照显示,65 个任务全部来自 scail2-person-swap:8 个运行、57 个排队,每张物理 GPU 正好运行 1 个任务并排队 5–6 个。取消全部任务后的空闲基线如下;卡号按生产 8188–8195 映射为 GPU 0–7。

GPU总显存拥塞时已用拥塞时利用率取消后已用取消后利用率拥塞时任务
097250 MiB41.3%100%0.8%0%1 运行 / 5 排队
197250 MiB52.2%100%0.8%0%1 运行 / 5 排队
297250 MiB44.5%100%1.0%0%1 运行 / 5 排队
397250 MiB47.2%100%0.8%0%1 运行 / 5 排队
497250 MiB41.3%2%0.8%0%1 运行 / 5 排队
597250 MiB41.6%100%0.8%0%1 运行 / 5 排队
697250 MiB52.2%100%0.8%0%1 运行 / 6 排队
797250 MiB45.6%100%1.0%0%1 运行 / 6 排队

Scheduler 为 SCAIL-2 配置的单任务门槛是 70000 MiB,并按物理 GPU 资源限制同卡并发。把同一批 8 张物理卡从 8 个 ComfyUI 实例改成 16 个实例,不会增加安全并发量,反而会让两个重任务争用同一张卡并增加 OOM 风险;只有扩到 16 张物理 GPU,才接近把该工作流吞吐翻倍。历史 5 个成功任务的 GPU 运行时间为 98.3s / 312.6s / 314.5s / 728.1s / 734.0s,中位数约 314.5s,但输入长度不一致,只作为容量告警,不写入统一基准矩阵。

本次 65 个任务来自视频创作台连续点击造成的重复提交。扩容决策先以修复提交反馈、防重复点击后的真实到达率为准:若修复后高峰仍持续让 8 张卡全部运行且队列等待超过目标 SLA,再评估增加 8 张物理 GPU;不以重复点击形成的 57 个排队任务直接证明需要扩容。

新增 GPU API 检查清单

  1. 在 Proxy 模型清单和工作流映射中登记稳定模型 ID。
  2. 在 BFF 访问策略中登记只读、同步计费、异步创建、查询、取消或内容归属规则。
  3. 明确请求格式、文件顺序、数量/尺寸/时长限制、超时、取消和输出校验。
  4. 给模型与能力探测保留真实错误,不把不可用模型伪装成可用。
  5. 按“性能与显存基准”的统一口径完成冷启动和至少 3 次热运行,填写实际耗时、逐卡显存峰值、原始样本和输出校验;不得沿用旧工作流或旧 GPU 的结果。
  6. 更新本文的接口总览、模型矩阵和基准矩阵,并更新 gpu-api-docs.test.ts 覆盖;任何 待测 行都表示性能验收尚未完成。
  7. 运行 python3 scripts/sync-gpu-workflow-docs.py,提交对应 JSON、SVG 和 manifest;确认画布节点/连线 SHA 与 Scheduler 候选提交一致。
  8. 在 ecs110 隔离目录验证同一候选提交,再按完整 Git SHA 窄部署和运行生产验收。

DaSiWa Turbo 加速验收

候选 Scheduler 99e1ee341d80d29eeb59bcc58e9b63626023764a:保持主模型与 DaSiWa 图,T2VA/I2VA/L2VA/FL2VA 启用通用 FL Turbo LoRA、8 步;REF2VA 保留无适配器、25 步,尚未完成其独立加速验证。

同卡 RTX PRO 6000 Blackwell Server Edition / GPU1 / ComfyUI 8189,I2VA、704×1280、5 秒、24fps、seed 77,使用同一张参考图和成年人物自然呼吸提示词:

指标原 25 步Turbo 8 步
Comfy 提交到完成观测183.15 秒72.26 秒
执行事件耗时181.953 秒70.233 秒
GPU1 总显存采样峰值47808 MiB74024 MiB

单组顺序 A/B,Turbo 有节点缓存;不是冷启动对照、P95 或画布端到端承诺。2 秒采样包含常驻显存;其余卡采样时空闲。调度预算改为 80000,另有 4096 保留量,不冒充实测峰值。

两次 node_errors 为空、输出节点 2568 成功;ffprobe/ffmpeg 退出 0,H.264 704×1280、5.166667 秒。每条抽查 5 帧,身份/服装/背景稳定,未见明显拉伸、撕裂;完整时序、其他模式和长视频仍需补充验收。

原始图、输入引用、submission/history、逐卡显存样本、抽帧位于 vps66:/tmp/ic-dasiwa-turbo-canary/;命令、图 SHA 和回滚基线见 Scheduler docs/DASIWA_TURBO_VALIDATION.md。15 项单测通过,旧模板未修改。

生产复验

已按 GitHub main 的上述 Scheduler SHA 窄部署,scheduler_production_check=ok、production_runtime_check=ok。线上 Scheduler I2VA 实际排到 GPU4 / 8192,队列 6.065 秒、执行 137.008 秒,提交后观察到成功约 145.91 秒。真实入队图确认 Turbo LoRA 与 8 步生效;成片 704×1280、5.166667 秒,解码及 5 帧抽查通过。此项覆盖 Scheduler API,不包含浏览器、Proxy 持久化及积分闭环。旧镜像和完整运行环境已保留,回滚 Compose 配置校验通过。

On this page