智剧通(ZJT)文档中心 数字人节点设计

数字人节点:算力显示 + 抽卡功能

背景

数字人节点原先:

需求:显示算力 + 支持用户抽卡(1-4 个结果)。

前提(已验证,后端无需改动)

设计决策

决策点选择理由
算力显示样式详细版(值 + 明细行)与视频节点/分镜节点视觉一致
抽卡次数范围1-4与现有视频节点一致
节点内结果展示不显示与视频/分镜节点一致,结果全部在关联视频节点展示
模型键取值优先带语音的数字人模型键,回退基础数字人模型键(具体键名见前端数字人节点脚本中的常量)与现有提交逻辑一致
duration固定 5与现有提交逻辑一致
多结果轮询全局视频状态轮询函数(内部实现)支持多任务,带任务级实时回调
多结果对应按任务ID比按 index 稳健

实现要点

UI 结构(bodyHtml)

角色图片 *  → [上传/连接]
说话音频 *  → [上传/连接]
提示词 *    → [textarea]
─────────────────────
算力消耗:    N 算力        (新增,详细版)
单个 X 算力 × M 个 = N 算力
─────────────────────
[生成视频 ▾]  抽卡次数:XM   (改为抽卡选择器)
[状态显示:生成中/成功/失败]   (保留)

移除节点内的"生成结果"视频区域。

数据(defaultData)

算力计算

// 算力计算(内部实现,节选)
function calculateDigitalHumanPower() {
  if (!window.TaskConfig || !window.TaskConfig.isLoaded()) return 0;
  var modelKey = 优先带语音的数字人模型键,回退基础键; // 具体键名见配置文件
  var single = TaskConfig.getComputingPower(modelKey, 5);
  return single * (node.data.drawCount || 1);
}

算力显示更新逻辑更新值 + 明细行。切换抽卡次数时立即更新;任务配置异步加载完成后再兜底更新。

抽卡选择器(复用现有 CSS)

gen-container + gen-btn-main(生成)+ gen-btn-caret(▾)+ gen-menu(X1/X2/X3/X4)。事件处理与视频节点一致:caret 切换菜单 / item 设 drawCount+更新 / document 点外关闭。

提交与多结果展示

轮询改造

移除局部轮询逻辑,改用全局视频状态轮询函数(内部实现),支持多任务:

重新加载复原

错误处理

不做的事

验证

  1. 新建节点 → 算力正常显示;切 X4 → 算力按抽卡倍数变化
  2. 生成 4 个 → 创建 4 个关联视频节点,各自轮询出结果
  3. 重新生成 → 清理旧 4 个、创建新的
  4. 保存→重载 → 抽卡次数 / 算力 / 关联节点连接均复原
  5. 中英文切换 → 翻译正常
  6. 兼容旧工作流(无抽卡次数字段的旧节点默认 X1)