SONICTLoader
The SVD + Sonic fusion that starts every Sonic workflow
- model
- model
- weight_dtype
Every Sonic workflow in ComfyUI starts here. SONICTLoader is the loader in the three-node chain (SONICTLoader → SONIC_PreData → SONICSampler): it takes an ordinary Stable Video Diffusion checkpoint and fuses Sonic's audio-aware UNet onto it, producing the MODEL_SONIC that the other two nodes expect. If you've loaded an SVD checkpoint into ComfyUI before, this will feel familiar - except that instead of a KSampler you get a custom pipeline object that understands audio conditioning.
How it works
Read the class and it's all laid out. The node takes the standard MODEL from an ImageOnlyCheckpointLoader (your svd_xt.safetensors or svd_xt_1_1.safetensors from models/checkpoints/), converts it into a diffusers UNetSpatioTemporalConditionModel via a bundled conversion helper, then does three things: it load_state_dicts the Sonic-trained UNet weights (unet.pth) into the model with strict=True, it fuses audio cross-attention adapters at one layer with a strength you control (add_ip_adapters), and if interframe is on, it loads the RIFE optical-flow model (RIFE/flownet.pkl) for frame interpolation. The Euler scheduler comes from the pack's bundled svd_repo. End result: a pipeline that denoises while listening to the audio.
The inputs that matter
- model (
MODEL) - from ImageOnlyCheckpointLoader with an SVD checkpoint. Not a regular checkpoint; the SVD img2vid ones the README names. - sonic_unet - a dropdown of files in
ComfyUI/models/sonic/, i.e. yourunet.pth. The dropdown lists "none" first, but here's the thing from the source: the loader unconditionally loads the picked file into the UNet. In practice you selectunet.pth- leaving "none" gets you a load error, not a Sonic-less UNet. - ip_audio_scale (1.0, range 0.5–2.0) - the strength of the audio conditioning adapters. 1.0 is the default from the Sonic config; lower it to reduce how strongly the audio drives the motion.
- use_interframe (True) - toggles RIFE optical-flow interpolation. Leave it on for smoother video; turn it off if you don't want to download
flownet.pklor you're squeezing VRAM. - dtype (fp16 / fp32 / bf16) - the weight precision. fp16 is the default; bf16 is supported (there was a bf16 bug that's since been fixed); fp32 is the safe-but-slow option.
Outputs
Two: model (MODEL_SONIC) → into SONICSampler, and weight_dtype (DTYPE) → into SONIC_PreData, so the whole chain stays on one precision. Don't skip wiring that second one - PreData needs it to keep its encodings consistent with the UNet.
Installing and the traps
Same install as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_Sonic.git
pip install -r requirements.txt
or ComfyUI Manager, searching "ComfyUI_Sonic". What this node actually needs on disk: unet.pth (Google Drive link in the README) and, if you keep interframe on, RIFE/flownet.pkl - both under ComfyUI/models/sonic/, plus the SVD checkpoint in models/checkpoints/.
Two ways this bites. First, strict=True on the UNet load means a mismatch between your SVD checkpoint version and the Sonic weights throws a missing/unexpected keys error - if that happens, check you're using the SVD model the pack expects (svd_xt or svd_xt_1_1), not a random finetune. Second, if use_interframe is on but flownet.pkl isn't there, model loading fails with a file error - download it or flip the toggle off. Neither is a mystery once you know where the files live, which is the whole ballgame with this pack: the nodes are simple, the model downloads are the install.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| sonic_unet | COMBO | 1 options: none | |
| ip_audio_scale | FLOAT | 1.00.5–2 | — |
| use_interframe | BOOLEAN | true | — |
| dtype | COMBO | 3 options: fp16, fp32, bf16 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL_SONIC | — |
| weight_dtype | DTYPE | — |