
3D 场景 (3D Scene)(ComfyTV)
这个节点是做什么的
3D Scene 是一个完整的浏览器内 3D 摆场工具。你在实时 WebGL 视口里搭建场景——放入带动画的角色、几何基元、你自己导入的模型、灯光和相机——用移动/旋转/缩放 gizmo 摆好一切,再用工具栏 Capture(捕获) 一帧或 Record(录制) 一段。你拍下的画面会成为节点的项目快照。 它不是「文生 3D」生成器,而是一个供你布置和拍摄的片场。视口与其它 3D 节点共用 ComfyTV 唯一的 WebGL 渲染器,因此画布上放多个场景也依然轻量。 创作者的所有产出汇集为三个输出:点选的静帧 image、录制的 video、以及多相机批次 images。所有几何、相机和输出设置都以 scene state JSON 形式存在内部;节点上没有暴露的数值控件——一切都通过编辑器 UI 驱动。适用场景
- 搭一个可控的 3D 参考(角色 + 相机角度),通过 depth、normal 或 openpose 通道喂给 ControlNet 式的图像/视频工作流。
- 用多个相机分镜,在一次 Capture 里为每个相机各出一张干净的渲染。
- 让角色动画沿相机路径播放,Record 一小段运动视频用于 I2V/V2V。
- 摆放道具和灯光,在生成前先艺术指导光影或剪影。
编辑器
节点是一个三栏工作台:顶部工具栏,底部可选时间线条。 顶部工具栏(从左到右):- Gizmo 模式 —— None、Translate、Rotate、Scale。选一个,拖拽屏幕上的 gizmo 变换选中对象。当前选择不适用的模式会变灰。
- Undo / Redo(撤销/重做) —— 场景编辑的完整历史。
- Capture(捕获) —— 用所选通道渲染当前帧并上传为静帧
image。若场景有多个相机,还会生成images批次,每个相机一张。 - Record(录制) —— 把动画片段录到
video输出。仅当场景有可录制时长(有动画的角色或运动相机)且浏览器支持录制时可用。 - Fullscreen(全屏) —— 把编辑器弹出铺满屏幕(Esc 退出)。
- Add Character(添加角色) —— 从可用的绑定模型库中挑选;角色自带动画片段。
- Add Object(添加物体) —— 几何基元:
cube、sphere、cylinder、plane(每个都有可编辑颜色)。 - Add Model(添加模型) —— 插入你导入/上传的某个 GLB 模型资产。
- Add Light(添加灯光) ——
directional、point或spot,另有灯光预设下拉(如三点布光),一次布好整套。 - Add Camera(添加相机) —— 新增一个场景相机。当前用于输出的相机在列表里标记 REC。
- 角色 / 模型面板 —— 选动画片段,设置速度、起始偏移和循环,编辑位置/旋转/缩放。模型多一个 Fit to scene(适配场景) 按钮。
- 基元面板 —— 颜色加变换。
- 灯光面板 —— 颜色、强度,以及灯光类型专有设置(范围、锥角)。
- 相机面板 —— 绑定 camera preset(相机预设,一段成品运镜) 或保持自由相机;自由相机暴露 FOV 滑块(10–140°)和位置/旋转;预设相机暴露调节滑块、X/Y/Z 位置 offset(偏移)、reverse(反向) 开关和 Reset(重置)。眼睛按钮透视该相机。
四种捕获通道
Channel 下拉决定渲染 pass 输出什么——Capture 与 Record 相同:- color —— 正常打光的美术渲染(beauty)。
- depth —— 归一化灰度深度图(近处更亮),可直接作深度条件。
- normal —— 法线图(经典蓝紫色法线渲染)。
- openpose —— 从每个角色骨架投影出的 OpenPose 骨骼叠加图,用于姿态条件生成。
工作流程(分步)
- 放一个 Project 节点,再 Add Node → ComfyTV → Input → 3D Scene。
- 从 Add Character(或 Add Model)放入一个角色;从 Add Light 应用一套灯光预设。
- 轨道旋转视口取景,或 Add Camera 后选中并 look through 它。
- 在检视器里设置角色的动画片段、速度和循环。
- 在 Output 里设好宽/高并选一个 Channel(如用
depth出深度条件)。 - 点 Capture 出静帧;或设好 FPS/Frame count 后点 Record 出片段。
- 把 image / video / images 接向下游——插入 Bridge 转成原生 ComfyUI 张量用于 ControlNet 工作流。
输入与输出
节点没有面向用户的输入控件——场景、通道、尺寸和捕获媒体都存在内部并由编辑器驱动。输出为项目快照:COMFYTV_* 输出是项目引用,不是原生 ComfyUI 张量。要接入原生节点(ControlNet 等),加一个 Bridge——见 bridges 指南。
小贴士
- 场景里真正有动画之前(正在播放的片段或运动/预设相机),Record 是禁用的——先加运动。
- images 批次只在有两个及以上相机时出现;单相机时用 image。
- 捕获前先对相机 look through,让你拍到的构图与看到的一致。
depth、normal、openpose是给条件用的贴图——在下游工作流里配对应的 ControlNet。- 视口在所有 3D 节点间共用一个 WebGL 上下文;若大量画布编辑后场景看起来空白,重新选中一个对象强制重绘。
相关节点
- Model 3D / Model Loader —— 准备
COMFYTV_MODELGLB,经 Add Model 引入。 - Material —— 制作 PBR 材质应用到导入部件上。
- Bridge → / ← ComfyTV Image/Video —— 把捕获在原生 ComfyUI 张量间来回转换以用于 ControlNet。
- Image / Video Stage —— 把捕获的静帧或片段作为生成条件消费。