三大工具串联-SAM3D-Body+Blender+H3-Ref2V链路解读.md

「SAM 3D Body + Blender + MiniMax H3 Ref2V」三大工具串联链路解读

解读时间:2026-09-27 | 执行者:DSH(本机) 触发:用户要求了解「SAM 3D Body(ComfyUI 提取 3D 动作)→ Blender(穿透式等高难摄像机动画)→ MiniMax H3 Ref2V(3D 白模转高清成片)」这条链路 方法:官方文档 + 一手仓库 README 交叉核对 + 对 GPU 机本机 ComfyUI 0.37.0 做只读实测(未安装、未跑任务) 配套:57-H3白模红模素材参考调研/(白模/红模素材能力核查、外部项目盘点)


一、一句话结论

这条链路的分工是"白模负责确定性,H3 负责想象力":SAM 3D Body 把真人视频里的动作变成可编辑的 3D 骨架/蒙皮动画(GLB/BVH),Blender 负责把文字描述不清的空间关系与摄像机运动(穿透、遮挡、穿缝、精确节拍)变成看得见的时序,H3 Ref2V 再给这个粗模换上材质、光照、氛围和同步声音。

它解决的是 H3 最弱的一环——摄像机与空间关系的可控性;代价是 H3 不提供动作捕捉级保真,白模信息量不足时"写实"和"完全一致"会互相冲突。


二、三个环节各自是什么(含一手证据)

环节 1|SAM 3D Body:把视频里的人变成 3D 资产

项事实
出品Meta Superintelligence Labs,模型名 SAM 3D Body(3DB),参数化表示 MHR(Momentum Human Rig)——把骨架结构与表面形状解耦
能力单张图 / 视频帧 → 全身 3D 人体网格(含身体、脚、手);支持 2D 关键点、mask 等提示式引导
ComfyUI 原生支持2026-08-23 由 Kijai 的 PR(Comfy-Org/ComfyUI #14370)合入内核,不需要自定义节点包
原生节点SAM3DBody_Loader / SAM3DBody_Predict / SAM3DBody_Render / SAM3DBody_Smooth / SAM3DBody_FaceExpression;配套 SAM3_VideoTrack(多人跟踪)、RTDETR_detect(人体检测)、LoadMoGeModel + MoGeGeometryToFOV(用 MoGe 估相机 FOV,让重建与源视频对齐更准)
跨帧稳定内置时序平滑(SAM3DBody_Smooth,gaussian,可调窗口)
面部基础模型不检测表情,靠 SAM3DBody_FaceExpression 用 MediaPipe blendshapes 补
导出(关键)BuildPoseFile 节点:输出 glb 或 bvh,再交给 Save3DAdvanced / SaveGLB 落盘

BuildPoseFile 的导出档位(官方节点文档逐项抄录):

也就是:这一步直接产出"带 127 骨骼、带蒙皮、带表情 morph 的动画角色",进 Blender 即可用,不需要你自己绑骨。

模型权重(Comfy-Org 重打包,实测体积)

文件目标目录体积
sam_3d_body_dinov3_bf16.safetensorsmodels/detection/2699.6 MiB
sam_3d_body_dinov3_int8_convrot.safetensors(轻量替代)models/detection/1901.7 MiB
sam3.1_multiplex_fp16.safetensorsmodels/checkpoints/1664.7 MiB
rt_detr_v4-x-hgnet_fp32.safetensorsmodels/diffusion_models/236.3 MiB
moge_2_vitl_normal_fp16.safetensors(可选,只为对齐 FOV)models/geometry_estimation/631.2 MiB

环节 2|Blender:把"说不清的空间关系"变成看得见的时序

第三方实务指南(Seedance《MiniMax H3:将 Blender 动画转为逼真视频的实用工作流》)把 Blender 的定位讲得最清楚:

"Blender 控制事物的位置;视频模型则负责呈现世界的观感与质感。" 三维场景无需达到最终渲染质量——把它当成一份动态规格说明书:只布摄像机路径、粗略主体模型、地面平面、主要障碍物,就能在付费生成前消除歧义。

为什么非要用 Blender 而不是纯文字提示词?文档给的原话场景就是"穿透式"这类需求:

载具必须沿特定曲线行驶;角色必须从前景物体后方穿过;摄像机必须在准确节拍抵达关键揭示画面。Blender 能把上述意图转成可视的时间节奏、画面方向、比例尺度与遮挡关系。

Blender 侧的可操作要点

  1. 导入:BuildPoseFile 导出的 GLB(127 骨骼 + 蒙皮 + 72 表情 morph)直接 File → Import → glTF;或导 BVH 做纯骨架动作。
  2. 只建单镜头:一个连续摄像机、一次连续动作;不要在一条 playblast 里塞多机位剪辑。
  3. 剪影可读性优先:保留能识别主体的关键特征(载具=轮数/轴距/驾驶舱轮廓;人物=身体比例/服装体积/手持物;建筑=开口/楼梯/立柱)。
  4. 接触阴影与地面平面:悬浮的轮子、手掌、脚会直接导致生成结果"不确定",而写实化提示词救不回来。
  5. 先定帧率与画幅再动画:H3 参考管线按 24 fps,务必记录 playblast 的真实帧率,避免静默的时间错配。
  6. 导出两份:一个干净的 H.264 审阅文件用于上传;同时保留带编号的图像序列 + .blend 源文件作为生产源(便于改颜色 ID、换参考帧、局部重渲)。
  7. 穿透式镜头为什么必须在 3D 里做:相机穿过物体/缝隙、前后景遮挡切换、以及"相机何时穿过哪一层",在 2D 提示词里几乎不可控;在 Blender 里就是一条曲线 + 一个遮挡物。

⚠️ 渲染方式的现实约束(本机向):blender --background 下 Cycles(CPU 或 CUDA/OptiX)最稳;Workbench / EEVEE 的后台渲染需要可用的 GPU/EGL 显示上下文,无显示器时容易失败——白模只需轮廓与遮挡,Cycles + 极低采样 + 纯色/漫反射材质完全够用。

环节 3|MiniMax H3 Ref2V:把白模"换皮"成成片

同一份指南的核心结论(可直接当操作规范用):

问题结论
选 Ref2VA 还是 FL2VA?整段 playblast 要指导时间节奏与摄像机运动 → Ref2VA;只需要锁定首尾构图 → FL2VA
白模要不要做完材质?不需要。清晰的剪影、景深关系、接触点、可辨识动作 >> 精细 shader;用颜色编码区分不同对象有助于说明各自的参考角色
会 100% 保留动作吗?不会。把 playblast 当强引导信号,而非动作捕捉级保证;验收必须复核运动轨迹、接触关系、摄像机节奏、主体身份、物体数量
核心冲突"写实"与"与 playblast 完全一致"在粗模信息不足时互相冲突——模型会自行加关节细节、背景活动、更电影化的运镜

多参考的分工铁律(与官方 Ref2VA 一致):每个参考资产只给它一个角色——playblast 管运动/镜头;一张干净静帧管身份/外观;一段音频管节奏;不要上传多个相似资产却不说明谁管身份、谁管动作。

官方提示词模板(照抄即可)

以视频 1 作为运动与摄像机参考。严格保留主体运动路径、摄像机高度、转向时机、前景遮挡关系及最终停驻位置。将灰色占位模型替换为 [主体身份与结构描述]。环境设定为 [地点],包含 [时间、天气及实用光源]。材质必须呈现 [三种具体纹理]。仅添加自然发生的次级运动:[布料、尘埃、水、头发、植被]。同步生成 [环境音与关键音效事件]。保持 [物体数量、几何形态、服装、画面方向及镜头时长] 不变。单镜连续拍摄;无剪辑、无添加文字、无 Logo、无额外主体。

双栏验收表(推荐直接落地)

从 Blender 中「必须保留」由生成「负责提升」
摄像机起始点、路径与终点写实曝光与镜头响应
主体数量与画面方向材质、磨损、反射
接触时机与关键姿态布料、雨滴、尘埃、头发、植被
前景/背景遮挡关系环境音、拟音、对白
镜头时长与剪辑预留点细微纹理与氛围细节

每项标 通过 / 可修复后使用 / 未通过。只要转向错误或摄像机丢了揭示时机,画面再惊艳也判失败;反之运动准确时,轻微材质瑕疵可归为"可修复"。

审片顺序(很重要):先静音看摄像机与轨迹 → 再看接触与遮挡 → 再看身份与材质 → 最后核对声音与画面事件同步。精修过的单帧会掩盖转换失败。


三、完整数据流(每步的产物与规格)

真人舞蹈/动作视频
   │  ① ComfyUI:SAM3_VideoTrack → RTDETR_detect → SAM3DBody_Predict
   │            → SAM3DBody_Smooth → SAM3DBody_FaceExpression
   ▼
MHR_POSE_DATA(3D 骨架 + 形状 + 表情 + 相机平移)
   │  ② BuildPoseFile(format=glb, mesh_style=body_mesh)
   ▼
角色.glb  ← 127 骨骼 + 蒙皮 + TRS 关键帧 + 72 面部 morph
   │  ③ Blender:导入 glb → 摆粗模/地面/遮挡物 → 画摄像机(可穿透)→ 渲染 playblast
   ▼
白模.mp4(24fps,H.264,YUV420P,边长为 32 的倍数)
   │  ④ ComfyUI:H3 Director-rv2v / Ref2VA
   │      <Video 1> = 白模.mp4(动作+镜头)  <Picture N> = 角色图(身份)  <Audio 1> = 可选节奏
   ▼
成片.mp4(同步音频,主体换皮、镜头与动作被保留)

④ 的硬约束(H3 参考视频规格,务必先合规再喂)

约束值说明
单段参考视频时长2–15 s每段
全部参考视频合计≤15 s单条就吃满预算时别再叠第二条
参考视频条数≤3 段与图/音频跨类型合计 ≤12 个
帧率24 fpsH3 输出也是 24 fps,对齐可省一次真补帧
编码H.264 + YUV420P竖屏降到 480×864 可省显存(sm120 + SageAttention 长序列有灰屏风险)
边长32 的倍数短边 480 / 768 / 1088 档
单段生成上限15.083 s(362 帧)更长必须分段 + Motion Context 续接

本地已有更详细的 H3 侧记录:10-视频生成流水线/H3长视频分段合成方法-20260914.md、06-ComfyUI-H3运维记录/ComfyUI-H3运维记录.md。


四、四个最容易踩的坑

  1. 把 playblast 当"最终渲染"去做。它只需要轮廓、遮挡、接触、节拍。反过来,白模信息不足时 H3 会自己加戏(加关节结构、加背景活动、换成更电影化的运镜)——这是"写实 vs 完全一致"的固有冲突,不是提示词能修掉的。
  2. 多参考不指定角色。上传两个相似视频/图却不说明谁管身份谁管动作,是 Ref2VA 最常见的失败模式。
  3. 悬浮接触点。playblast 里悬空的脚/轮子/手,写实化提示词稳定救不回来。
  4. 帧率静默错配。Blender 习惯 30/60 fps,H3 参考管线是 24 fps;不统一会出现"动作对但节奏全错"。

五、本机现状实测(GPU 机 192.168.31.31,只读核查)

核查方式:curl http://127.0.0.1:8189/object_info 全节点扫描 + 模板目录 + 模型目录 ls。未安装、未运行。

项状态
ComfyUI 版本0.37.0
SAM3D-Body 原生节点✅ SAM3DBody_Loader / _Predict / _Render / _Smooth / _FaceExpression 全在
SAM3.1 跟踪节点✅ SAM3_Detect / SAM3_VideoTrack / SAM3_TrackToMask / SAM3_TrackPreview
3D 导出/预览节点✅ BuildPoseFile、SaveGLB、Save3DAdvanced、Preview3D、Preview3DAdvanced、Get3DComponents、MeshToFile3D、CreateCameraInfo、Load3D、Load3DAdvanced、RenderMesh、MoGeRender、VoxelToMesh
缺的节点❌ Load3DAnimation、Preview3DAnimation(0.37.0 尚未包含;不影响导出链路,只影响"把动画 GLB 导回 ComfyUI 预览")
官方工作流模板✅ utility_sam3d_body.json 已在模板库(本地共 580 个模板),节点参数实测:BuildPoseFile:[glb, scail, ..., 24, off, -1]、SAM3DBody_Loader:[sam_3d_body_dinov3_bf16.safetensors]、LoadMoGeModel:[moge_2_vitl_normal_fp16.safetensors]、UNETLoader:[rt_detr_v4-x-hgnet_fp32.safetensors]、CheckpointLoaderSimple:[sam3.1_multiplex_fp16.safetensors]
模型权重❌ 4 个全缺:models/detection/、models/geometry_estimation/ 目录里只有占位文件;checkpoints/ 只剩空的 sd1.5 / sdxl 目录
Blender❌ 未安装(which blender 空;apt 候选仅 4.0.2,而第三方 FBX/BVH 导出节点要求 ≥4.1)
磁盘982G 已用 / 106G 可用(91%) —— 装 Blender(~400MB)+ 模型(~5.2GB)没问题
显存16 GB;SAM3D Body 峰值 ~3.5 GB,H3 Ref2VA 本机实测峰值 ~14.5 GB → 两者不能同时常驻,必须错开

六、三条落地路线(按代价从小到大)

路线 A(最省事,不装 Blender):ComfyUI 内出"白模/骨架"视频 → 直接喂 H3

utility_sam3d_body.json 模板本身就能渲染网格叠加视频;把 BuildPoseFile 改成 openpose/scail 或直接用 SAM3DBody_Render 渲染 mesh,即可得到"无身份的骨骼/白模视频",正好当 <Video 1>。 适合:只想要"动作驱动 + 换皮",不追求特定运镜。 已有先例:本机 57-H3白模红模素材参考调研/ 里已有用现成白模/红模素材换人的成功记录。

路线 B(用户问的完整链路):SAM 3D Body → GLB/BVH → Blender → playblast → H3 Ref2V

需要补装:① 上面 4 个模型(约 5.2 GB,MoGe 可选);② Blender(建议 4.5.9 LTS 或 5.x 便携版,别用 apt 的 4.0.2)。 适合:需要穿透式运镜、精确遮挡、精确节拍揭示的镜头;也是"白模 + 渲染"理念的完整形态。

路线 C(要摄像机但不想开 Blender):ComfyUI 内做相机环绕

自定义节点 0(Apache-2.0)提供 Drive SAM3D Body Camera:围绕 MHR_POSE_DATA 的每一帧做相机轨道,再重投影网格/关键点/关节,内置关键帧编辑器(左键拖相机标记改 azimuth/elevation、滚轮 dolly、右键加/删关键帧、linear 直线段 / smooth Catmull-Rom 插值、azimuth 走最短路径跨 ±180°)。节点顺序:Detect Shape → Body Type Preset → Apply Shape → Drive Camera → Render 3D Body Pose;要导出原始身体动作(而非烘焙视角)时,从"相机之前"的分支取 GLB/BVH。 注意:这是轨道相机(绕主体转),做不到"相机穿模/穿缝"——真正的穿透式运镜还是得 Blender。 适合:环绕、推拉、Dolly 这类"看得清主体"的运镜,且不想装 Blender。

附加选项(没有驱动视频时):动作可以由 NVIDIA Kimodo 文生动作生成(ComfyUI-Kimodo-Bridge:文生动作 → Mixamo FBX / Unity Humanoid / BVH 导出),即"文字描述动作 → 3D 角色 → Blender 相机 → H3 渲染"。


七、安装清单(尚未执行,等确认)

# ① SAM 3D Body 权重(GPU 机,走 hf-mirror)
export HF_ENDPOINT=https://hf-mirror.com
# detection/
#   sam_3d_body_dinov3_bf16.safetensors          2699.6 MiB
#   (或 int8_convrot 版 1901.7 MiB)
# checkpoints/        sam3.1_multiplex_fp16.safetensors   1664.7 MiB
# diffusion_models/   rt_detr_v4-x-hgnet_fp32.safetensors  236.3 MiB
# geometry_estimation/moge_2_vitl_normal_fp16.safetensors  631.2 MiB(可选)

# ② Blender(本机经代理下载 → scp 到 GPU 机;GPU 机直连 blender.org 返回 403)
#    blender-4.5.9-linux-x64.tar.xz(LTS 稳)或 blender-5.2.2-linux-x64.tar.xz(最新)
#    解包到 /home/zyw/blender-4.5.9-linux-x64/,用 ./blender -b 跑后台渲染

建议的验证顺序:先跑官方 utility_sam3d_body.json 模板确认模型链路通(输出 output/video/SAM3D_body/)→ 再导一次 format=bvh 和 mesh_style=body_mesh 的 GLB,确认 Blender 能导入且骨架/表情正常 → 再搭一个 5 秒单镜头、带一个穿透遮挡的白模 → 最后才喂 H3 Ref2V。


八、需要你确认的三件事

  1. 这次要"了解"到什么程度——只要这份链路解读,还是要我实际把这条链路搭起来(下载模型 + 装 Blender + 跑一条 demo)?
  2. 有没有源视频/素材?如果这条链路来自某个视频(我猜可能是抖音那位 @有趣的80后程序员 的"上一个视频"),给我链接我可以像上次一样把原片下载 + 逐句转写,把作者的真实参数和踩坑补进来。
  3. GPU 机现在有别的服务在占显存(ComfyUI 常驻约 10.4 GB);跑 SAM3D Body + H3 需要先协调停哪些服务。

九、参考链接

十、本地相关文件

下载此文件