Local Lip-Sync on a 12GB GPU: InfiniteTalk with GGUF
Updated

Making a character talk — real lip-sync driven by an audio track — used to mean a hosted API and a per-second bill. It doesn’t anymore. We run InfiniteTalk lip-sync entirely locally, on a single consumer 12GB GPU, at $0 per shot. GGUF quantization is what makes it fit. Here’s the shape of it.
What InfiniteTalk gives you
Feed it a driving audio clip and a source (an image, or an existing video), and it produces a video where the subject’s mouth — and enough of the face — moves in sync with the speech. Two modes matter:
- Image-to-video (i2v): start from a still, get a talking clip. The subject is otherwise still-ish; the motion is the speech.
- Video-to-video (v2v): start from an existing motion clip and add lip-sync on top. You keep the body motion you already had and graft synchronized mouth movement onto it.
The v2v path is the one worth using: body motion and lip-sync together, so the character isn’t a talking mannequin. The lever that governs how much the source is preserved versus regenerated is denoise strength — around 0.5 is the sweet spot where you keep the original motion but let the mouth re-render to match audio. Too low and lips don’t move enough; too high and you lose the body motion you were trying to keep.
Why GGUF is the whole trick
The full-precision model won’t fit comfortably in 12GB alongside everything else a video graph needs. GGUF quantization shrinks the model weights to a lower-precision format that loads in far less VRAM, with quality loss that’s negligible for this job. That single change is the difference between “needs a datacenter card” and “runs on the GPU you already own.”
The practical upshot: once it’s quantized and local, every generation is free and private. You iterate as many times as you want — no metering, no upload of your source material to someone else’s server.
Running it without pain
A few things we learned the hard way:
- Keep it on your highest-VRAM node. Even quantized, lip-sync video plus the source frames is a tight fit. Give it the most headroom you have and don’t stack other jobs on the same card.
- Audio quality in, sync quality out. Clean, well-leveled speech tracks sync better. Noisy or clipped audio produces mushy mouth motion — fix the audio before blaming the model.
- Short segments, then join. Same discipline as any video generation: generate in short pieces and concatenate. Long single takes drift.
- Tune denoise before anything else. If v2v output looks wrong,
denoise_strengthis almost always the knob — nudge it around0.5before touching steps or CFG.
The point
This is the FlixML thesis in miniature: a capability that shipped as a cloud service, brought fully local, quantized to run on hardware normal people have, wired into the same agent-driven pipeline as everything else — and published open source. You own the model, the compute, and the output. Nothing leaves your machine, and the marginal cost of the next talking clip is zero.
Workflow catalog → · Providers & GPU nodes →
In the model directory
InfiniteTalk — ~12 GB (GGUF-quantized)
Audio-driven lip-sync, layered on a Wan 2.1 backbone. Makes a still or a clip talk.