iAskAsk Local FlashHead Sampler
FlashHead sampling in ComfyUI
- pipeline
- ref_audio
- avatar_image
- video
This is where the magic actually happens. The "iAskAsk Local FlashHead Sampler" is the payoff node of this pack: you hand it the pipeline from the Loader, a single portrait, and a driving audio clip, and it returns a talking-head video where the person in the picture speaks with believable lip sync. Everything before it - the 12GB model download, the Loader, the reference image - is just staging for this node. Nothing moves until here.
If you've read the sibling article on the Loader, you know the deal: FlashHead is Soul-AILab's 1.3B audio-driven talking-head model, wrapped as two typed nodes, and this is the one that actually samples. The wider context in the audio knowledge base is that local talking-head work is real but second-class in ComfyUI - a pile of bespoke packs, each with its own dependency stack - and this is one of those bespoke packs. It doesn't call any API and needs no key; the "Local" in the name is the point.
How it works
The node's job breaks into a few mechanical steps, and knowing them explains the whole design:
- It writes the incoming
AUDIOtensor andIMAGEto temporary files on disk (a wav and a png), then reads the audio back with librosa at 16kHz. - wav2vec2 (the small encoder you had to download) turns the audio into embeddings the model can condition on.
- The audio is cut into short slices. Each slice generates a clip conditioned on a rolling ~8-second window of cached audio, the overlapping motion-frame heads are trimmed off, and the clips are stitched back together.
That slicing is the "long audio" feature - it's how a 30-second voice clip doesn't blow up your VRAM but still produces one coherent video. The model runs at a hard-coded 4 sampling steps, which is the few-step-distillation playbook: fast, but you're trading away the last bit of refinement for speed, exactly as distilled models always do.
The inputs you actually set
pipeline- theFlashHead Pipelinefrom the Loader. First wire this up or the node is dead on arrival.ref_audio- anAUDIOtensor. Load it with ComfyUI's Load Audio / audio-input nodes. Longer clips are fine; that's what the slicing is for.avatar_image- anIMAGEwith one clear, front-ish face. Keep it simple: a single subject, decent lighting. The code even runs with face-crop disabled, so garbage in, garbage out.seed- default 42. Bump it to get a different motion take. Note the widget floor is 0, so the README's "-1 for random" claim doesn't actually work - just pick a different number.width/height- default 512×512, and that's what the author actually tested (continuous generation for a minute-plus). The range goes up to 2048 in steps of 8, but don't start there; 512×512 is the safe, known-good resolution.
The output
One VIDEO (labeled "video"), written as an mp4 to ComfyUI's output folder and returned as a proper video object. Wire it into a Preview Video / Video Combine-style node to see and save it. The audio is muxed back in, so the file you get has the original sound - no separate audio track to reattach.
Getting it running and where it trips
Install is the same as the Loader - it's the same pack: Manager search for "ComfyUI_iAskAsk_SoulX_FlashHead", or git clone https://github.com/iaskask-com/ComfyUI_iAskAsk_SoulX_FlashHead into custom_nodes, then pip install -r requirements.txt. Both models must be present and findable (the Loader article covers the path mismatch trap in the download scripts - worth reading before you blame this node).
Things that will actually bite:
- ffmpeg must be on your PATH. The node shells out to a system
ffmpegbinary to mux the audio into the final mp4. If you get an ffmpeg-not-found error, that's the cause - install ffmpeg and retry. - VRAM. This is a ~12GB model running at bf16 on Ampere-or-newer GPUs. On a 12GB card you're realistically right at the edge; close other heavy stuff.
- First run is slow. A minute-plus of continuous generation is the author's own test note, and that's after the models are loaded. Chunking keeps memory flat, but it doesn't make the whole thing fast.
- Don't judge it on a bad reference photo. If the face is occluded or tiny, the "talking head" has nothing to work with - recrop before you curse the model.
It's not a silver bullet, and a 1.3B model won't outdo the big closed lip-sync services on a perfect-enunciating celebrity closeup. But for a fully local, free, portrait-plugs-in workflow, this is a remarkably short path from "one photo and a voice file" to "video that looks like a person talking."
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeline | iAskAsk_FlashHead_Pipeline | — | |
| ref_audio | AUDIO | — | |
| avatar_image | IMAGE | — | |
| seed | INT | 420–18446744073709550000 | — |
| widthopt | INT | 51264–2048 | — |
| heightopt | INT | 51264–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |