Load ViewCrafter
The Node That Lets You Reshoot Any Scene
- model
- image_proj_model
Ever wished you could take a video you already shot and just… move the camera? That's the entire pitch of ViewCrafter, the novel-view-synthesis model from Tsinghua that took the video-diffusion world by storm in September 2024. Give it a short clip of a scene and it invents new camera angles around it - pan over, orbit the subject, see what's around the corner. Load ViewCrafter is the node that gets that model into your graph. It's the boring half of the equation, and that's exactly why it matters: if you load it wrong, nothing downstream works.
The model itself isn't a brand-new architecture. ViewCrafter builds directly on the video diffusion backbone from DynamiCrafter (the lvdm / UNet3D family), which is why the pack's author, logtd, nods to ExponentialML's DynamiCrafter implementation in the README. The trick that makes novel views possible: the UNet takes 8 input channels instead of 4 - 4 channels of noise plus 4 channels of the latent video you already have - and cross-attends to image embeddings of your reference frame. The diffusion prior then figures out what the unseen angles should look like. This loader handles that whole rigging job for you.
Here's the part that saves you actual grief: it doesn't just shove weights into a BaseModel. It splits the checkpoint into the UNet weights and the separate image-projection (Resampler) weights, and it auto-applies two patches you'd otherwise have to wire up by hand - ModelSamplingDiscrete in v-prediction mode (with an optional zero-SNR switch) and a RescaleCFG at 0.7. If you've ever run a vpred model at normal CFG and gotten burnt, washed-out output, you know why that's generous of it. You won't need a single extra conditioning node in your graph.
The inputs that actually matter
Three knobs, and only two you'll touch:
- model_path - a dropdown of whatever's sitting in
ComfyUI/models/viewcrafter. If it's empty, you haven't downloaded a checkpoint yet. The loader accepts.ckpt,.safetensors, and.bin. Grab one of the ViewCrafter checkpoints and drop it in there, then refresh the node list. Note the README's warning: pay attention to each checkpoint's supported frame count - the config baked into this pack expects 16 frames. - precision -
fp16orfp32. fp16 is the default and the right choice on anything with a half-decent GPU; fp32 only if you're chasing exactness or hitting numerical weirdness. - zsnr - zero-terminal-SNR noise schedule, off by default, matching the author's own workflow. It's wired straight into the v-prediction sampling patch. If your outputs come out flat and gray-washed, flipping it on is the first thing to try.
Outputs
Two sockets, both headed to Apply ViewCrafter - that's the whole point of the pair:
- model (
MODEL) - the patched, vpred-aware diffusion model. - image_proj_model (
IMAGE_PROJ_MODEL) - the Resampler that turns CLIP image embeddings into conditioning. Don't lose this wire; without it the other node can't run.
Installing it
The pack needs zero Python dependencies - its requirements.txt is empty, which is refreshingly rare in this ecosystem. So:
- Via ComfyUI Manager, search "ViewCrafter" and install, or
cd ComfyUI/custom_nodes && git clone https://github.com/logtd/ComfyUI-ViewCrafter, then restart ComfyUI.- Download a ViewCrafter checkpoint into
ComfyUI/models/viewcrafter(create the folder if it doesn't exist). This is the only model download - the pack does not fetch anything for you.
Where people get burned
The classic failure is an empty model_path dropdown - the node has nothing to list because the checkpoint isn't in the right folder. Beyond that, remember this node only loads the diffusion model. It does not load a VAE or CLIP; you still need the SD 1.5 VAE and SD 2.x CLIP as separate nodes (the model lives in SD1.5 latent space, per its config). And if you skip the image_proj_model output, ApplyViewCrafter will refuse to run. Wire both, keep the folder populated, and this node quietly does its job.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | COMBO | 0 options: | |
| precision | COMBO | 2 options: fp16, fp32 | |
| zsnr | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| image_proj_model | IMAGE_PROJ_MODEL | — |