DreamWaltzG Stage Two Trainer
The node that actually runs training (then throws at the finish line)
- checkpoints_folder_path
- images
Stage two is where a DreamWaltz-G avatar actually becomes a 3D Gaussian splat. Stage One produced (or pointed you at) a NeRF checkpoint from the SMPL-X human template; this node runs the conversion that turns that NeRF into the 3DGS representation you can pose, animate, and drop into other 3D work. It wraps the second half of the upstream DreamWaltz-G pipeline, and unlike its stage-one sibling - whose training call is commented out - this one really does spawn the training process. It also has a bug that makes it look like it failed right when it succeeded. We'll get to that.
How it works
Give it the checkpoint folder from Stage One, and the node validates the path exists, then builds and runs:
python main.py --stage gs --render.from_nerf <stage_one_path>/checkpoints \
--optim.iters <iterations> --predefined_body_parts <body_parts> \
--prompt.scene <scene_type> --render.learn_hand_betas <bool> \
--render.lbs_weight_smooth <bool> --render.bg_color [0.5,0.5,0.5]
It streams the subprocess output straight to your console (so you can watch loss and snapshots tick by), writes checkpoints to outputs/<sanitized_prompt>/3dgs_cnl_<N>k/checkpoints/, and returns the experiment folder. The whole from_nerf idea is that you don't re-learn the avatar from scratch - the Gaussian stage distills the NeRF's geometry and appearance into splats, then adds the SMPL-X skinning that makes the avatar deformable.
The finish-line bug: after training completes, the shipped code sets results_folder_path = None and then calls .exists() on it, which raises an AttributeError. So the node throws a red error right after a successful run. If that happens to you, don't re-queue it and don't assume it failed - check outputs/<prompt>/3dgs_cnl_<N>k/checkpoints/ for the .pth files. Your avatar is there.
Inputs and outputs that matter
- stage_one_checkpoint_path - the
checkpoints_folder_pathoutput from DreamWaltzG Stage One Trainer. The node hard-errors with "Stage one checkpoint path does not exist" if you point it anywhere else. - prompt - must match the prompt used in stage one; it decides the output folder name, so a mismatch silently creates a second, orphaned experiment.
- iterations - default 5000 (range 1000–10000). The 3DGS stage is cheaper than the NeRF stage, which is why the cap is lower.
- learn_hand_betas - default on; lets hand shape refine beyond the template. Keep it on for anything where hands matter.
- lbs_weight_smooth - default on; smooths the linear blend skinning weights so joints don't tear. Leave it on.
- background_color - a string like
0.5,0.5,0.5(RGB in 0–1). The node validates it has exactly three values in range, so0.5,0.5or1,0.5,0.5,0will error before anything starts. - body_parts / scene_type - same as stage one (
hands/face/full,canonical/dynamic) and should match the stage-one settings.
Outputs: checkpoints_folder_path (STRING) is where your finished Gaussian avatar lives - this is what you hand to the upstream inference scripts for animation or video reenactment. images (IMAGE) is supposed to be a preview tensor but is broken by the bug above; expect None and don't wire anything critical to it.
Installing and what you need first
Same story as the whole pack: clone into custom_nodes and restart, then get ready for real work, because the pack's install.py is empty - Manager won't install the heavy stack for you. The honest path is the upstream DreamWaltz-G scripts/install.sh: a conda env (Python 3.11, torch 2.1.0, pytorch3d 0.7.5) plus nvdiffrast, smplx, human_body_prior, diff-gaussian-rasterization, controlnet-aux and friends. You also need the human template models (SMPL-X, FLAME, VPoser), the pre-trained Instant-NGP NeRF template, and Stable Diffusion 1.5 - all documented in the upstream README. If you skipped all that for Stage One, stage two will fail the moment it tries to import pytorch3d.
Common issues
- "Stage one checkpoint path does not exist" - you wired the wrong string. Feed it the
checkpoints_folder_pathoutput from Stage One, not your own guess. - Red error after training - the
results_folder_pathbug. Verify the checkpoint folder, then move on. - Instantly crashes on load - missing
pytorch3dordiff-gaussian-rasterization; the conda env frominstall.shis the cure, and yes, that's a big install.
This is early-wrapper territory: genuinely useful once the upstream environment is standing, and one line of code away from being clean. If you hit the finish-line exception, you've basically finished - that's the closest thing to good news this pack will give you.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| stage_one_checkpoint_path | STRING | — | |
| prompt | STRING | — | |
| iterations | INT | 50001000–10000 | — |
| body_parts | COMBO | hands | 3 options: hands, face, full |
| scene_type | COMBO | canonical | 2 options: canonical, dynamic |
| learn_hand_betas | BOOLEAN | true | — |
| lbs_weight_smooth | BOOLEAN | true | — |
| background_color | STRING | 0.5,0.5,0.5 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| checkpoints_folder_path | STRING | — |
| images | IMAGE | — |