LipSync GAP Model Loader
The model loader where LipSync GAP actually decides how much VRAM you'll cry over
- vae
- models
The LipSync GAP Model Loader is the least glamorous node in Geekatplay Studio's ComfyUI-LipSync-GAP pack, and also the one that decides whether your run works at all. It's the node that loads everything the lip-sync sampler needs: ByteDance's LatentSync UNet, a Whisper audio encoder, and your VAE, bundled into a single PERFECT_SYNC_MODELS object. If you're new to this pack, this is where you'll make the two choices that actually matter - Whisper size and precision - before the fun part starts downstream.
What it is and why you'd reach for it
This pack is a ComfyUI port of ByteDance's LatentSync, one of the "components open, products closed" releases ByteDance keeps feeding the local ecosystem (Apache 2.0, no API key, no cloud round-trip - the name is a lie in the best way). LatentSync is the audio-driven lip-sync pipeline that this pack's README calls v1.6 core. The loader is the entry point: no loader, no models, and the sampler just sits there unplugged.
It's a two-node pack, really. This loader plus the LipSync GAP Sampler, and everything else in the repo is legacy aliases of those two. Learn these and you've learned the whole thing.
How it works
Under the hood the loader does three jobs in one load_models call:
- Loads the LatentSync UNet from
ComfyUI/models/latentsync/(expectslatentsync_unet.pt), cast to the precision you pick. - Loads a Whisper checkpoint from
models/latentsync/whisper/and wraps it as theAudio2Featureencoder that turns speech into the conditioning the diffusion model lip-syncs to. - Wraps your ComfyUI VAE so the LatentSync pipeline can use it.
The precision dropdown is a straight dtype mapping - fp16 and fp8_e4m3fn for a real VRAM win on 12 GB cards, fp32 if you've got headroom and want maximum fidelity. Worth knowing: the Whisper dropdown does "alias handling," so picking tiny or tiny.pt lands on the same file.
The inputs that matter
- whisper_model - the one dial that changes results. Default
tiny, up tomedium/large. README's own guidance: bigger Whisper = stronger mouth articulation. Starttinyto test, bump up when the sync feels mushy. - precision -
fp16default; switch tofp8_e4m3fnthe moment you see OOM. - unet_model - dropdown of whatever's in your
models/latentsyncfolder. One UNet ships; if the dropdown is empty, the model download didn't happen. - vae - wire any VAE Loader in (an SD 1.5 VAE works; the sampler casts it to match).
Output is a single models socket (PERFECT_SYNC_MODELS) that feeds straight into the sampler's models input. That's the whole circuit.
Installing it
Same install for the whole pack. ComfyUI Manager: search LipSync GAP. Or the manual route, then restart:
cd ComfyUI/custom_nodes
git clone https://github.com/GeekatplayStudio/ComfyUI-LipSync-GAP
cd ComfyUI-LipSync-GAP
install.bat
The installer locates ComfyUI Portable's python_embeded (or your system Python), pip-installs the requirements (diffusers, mediapipe, DeepCache, torchaudio, soundfile, ffmpeg-python - a real dependency stack, not a toy), and tries to auto-pull latentsync_unet.pt, whisper/tiny.pt, and the Mediapipe face_landmarker.task. If the model pulls fail it prints manual paths.
Common issues
- Model not found: the UNet and Whisper checkpoints live in
ComfyUI/models/latentsync/, not the node folder. Installer creates the folders for you; verify files are actually there. - Only
tinyauto-downloads: the installer fetcheswhisper/tiny.ptspecifically. If you wantmediumorlargefor stronger sync, you'll be downloading those by hand. - VRAM errors: flip
precisiontofp8_e4m3fnbefore buying new hardware. - Everything shows as missing after install: restart ComfyUI - the category appears as Geekatplay Studio/LipSync GAP and the folder must be exactly
custom_nodes/ComfyUI-LipSync-GAP.
The pack is flagged beta and under active development, so rough edges are expected. When a run goes sideways, the loader is where you'll check first - it's the only node that can genuinely stop the graph before it starts.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_model | COMBO | 0 options: | |
| whisper_model | COMBO | tiny | 16 options: base, base.en, large, large-v1, large-v2, large-v3, +10 |
| precision | COMBO | fp16 | 3 options: fp16, fp32, fp8_e4m3fn |
| vae | VAE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| models | PERFECT_SYNC_MODELS | — |