4DAnyone Model Loader
The node that stops guessing where you put the weights
- models
Here's the least fun sentence in the whole 4DAnyone pipeline: nothing downloads. No huggingface_hub dropdown that fetches a checkpoint when you queue, no "model not found, downloading 7GB" in the console. SplatKit disables automatic model fetching in the 4DAnyone node paths on purpose, so you put every file in the right folder yourself and then use this node to tell the generator which files you meant.
It's a boring node. It's also the one that produces the clearest error messages in the pack, provided you actually connect it.
What it does
Six dropdowns, one output. Each dropdown is the contents of one model folder, filtered to the files that make sense for that slot:
checkpoint- the 4DAnyone model,model.safetensors, inmodels/splatkit/4danyone/vae-Wan2.2_VAE.pth, same folderprompt_context-prompt_context.safetensors, same folderbirefnet-model.safetensorsinmodels/splatkit/birefnet/sam3d_body- SAM 3D Body weights inmodels/detection/turbo_lora- the published rank-64 Turbo LoRA, also inmodels/splatkit/4danyone/, withnoneas a valid choice
On load, it resolves each selection to a real path and raises if one is missing, rather than passing a name along and failing three minutes into a denoising run. So a wrong selection here costs you a second, not an hour.
A few things worth internalising:
The BiRefNet slot expects neighbours. Selecting model.safetensors isn't enough - config.json, birefnet.py and BiRefNet_config.py have to sit in the same folder. The loader can't check that (the enum only lists weights), but Export Frameset does, and it names the missing file. This trips people who grabbed the weights off HuggingFace and didn't notice BiRefNet loads its own code.
turbo_lora is conditional. Leave it on none and you're running the base model at 24 steps - set turbo off in Generate Views to match. Enable turbo and leave the LoRA unselected, and generation stops with "Select an installed turbo_lora in 4DAnyone Model Loader." Same for checkpoint, vae, prompt_context, birefnet and sam3d_body: all five are required regardless of what else you're doing, because view generation needs the lot.
The output is paths, not tensors. models carries a bundle of file paths to the generator. That's why SplatKit's model sockets don't talk to ComfyUI's MODEL or VAE sockets at all - different world, different loader. Don't try to feed a WAN checkpoint from the standard UNETLoader into this.
Installing the pack and the backend
cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-SplatKit
python_embeded/python.exe -m pip install -r ComfyUI-SplatKit/requirements.txt
Restart, or install via ComfyUI Manager by searching "ComfyUI-SplatKit". Then install the isolated backend: download the installer bundle from the pack's GitHub Releases page, drop installer.bat into the custom node folder, run it once, restart, and queue a Splat Backend Setup node to see "Ready." The backend environment is where the 4DAnyone weights actually get loaded; this node just decides which ones.
The files themselves:
ComfyUI/models/splatkit/4danyone/ model.safetensors, Wan2.2_VAE.pth,
prompt_context.safetensors,
Wan22_TI2V_5B_Turbo_lora_rank_64_fp16.safetensors,
imagenet-vgg-verydeep-19-conv.safetensors (training)
ComfyUI/models/splatkit/birefnet/ model.safetensors, config.json, birefnet.py, BiRefNet_config.py
ComfyUI/models/detection/ sam_3d_body_dinov3_bf16.safetensors
Links to each of those are in the pack's docs/4DANYONE.md, pointed at pinned revisions so you get the exact files the code expects.
When it breaks
- Empty dropdowns mean ComfyUI hasn't scanned the folder yet - refresh the model lists, or restart. Model folder registration happens at startup.
- "Select an installed X in 4DAnyone Model Loader." The file isn't where the node looked. The tooltip on each field names the exact folder, which is the fastest way to find the mismatch.
- Old workflows. The model layout moved: files used to live in
models/splatkit-4danyone/withbirefnet/inside it. The node does not move anything for you, and pre-change workflows need their loader selections re-picked. Move the four generator files tomodels/splatkit/4danyone/, BiRefNet tomodels/splatkit/birefnet/, VGG-19 intomodels/splatkit/4danyone/, and don't overwrite files that are already there. - Custom model roots.
extra_model_paths.yamlacceptssplatkit_4danyone,splatkit_birefnet,splatkit_perceptualand the coredetectionkey, if your models live on another drive. - Space is the quiet one: about 7.5GB for the backend and 19GB for models, before any outputs. This is not a pack you install on a full disk to try out.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| checkpoint | COMBO | 4DAnyone model.safetensors in models/splatkit/4danyone. | |
| vae | COMBO | Wan2.2_VAE.pth in models/splatkit/4danyone. | |
| prompt_context | COMBO | prompt_context.safetensors in models/splatkit/4danyone. | |
| birefnet | COMBO | model.safetensors in models/splatkit/birefnet, alongside config.json, birefnet.py and BiRefNet_config.py. | |
| sam3d_body | COMBO | SAM 3D Body weights in models/detection. | |
| turbo_lora | COMBO | Published rank-64 Turbo LoRA in models/splatkit/4danyone. Choose none for base generation. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| models | SPLATKIT_4DANYONE_MODELS | — |