RunningHub SoulX-FlashHead Loader
One dropdown, two very different talking-head modes
- FlashHead Pipeline
The FlashHead Loader is the boring half of a pair, and that's exactly why it deserves its own write-up. If you want a face in a photo to start talking - lips actually moving in sync with an audio clip - SoulX-FlashHead is one of the better local options in 2026, and this node does the setup half: it loads the 1.3B pipeline into VRAM and hands the result to its sibling Sampler. It generates nothing itself. Everything fiddly about this pack lives right here, so you get it right once and never think about it again.
What it actually does
Under the hood the Loader builds a FlashHeadPipeline pointing at two model directories under ComfyUI/models/:
Soul-AILab/SoulX-FlashHead-1_3B- the FlashHead checkpoint (where theModel_Lite/Model_Prosubfolders live)wav2vec/facebook/wav2vec2-base-960h- the wav2vec2 audio encoder that turns speech into embeddings
It loads everything in bf16 and pins it to CUDA. Despite "RunningHub" in the name there's no API, no cloud, no key - this is fully local. RunningHub is the GPU-cloud platform that wrote the pack (the folks who host ComfyUI instances and get compared to RunPod), and this is their ComfyUI wrapper around the Soul-AILab model. The node itself never phones home.
The single input tells the whole story: model_type, an enum with two choices - pro and lite, defaulting to lite. This is not a quality slider; it swaps the actual architecture. lite loads the LTX-Video VAE and the distilled model. pro loads the Wan 2.1 VAE and the full model. Different VAE, different weights, different appetite for VRAM.
So which one? Be honest about your card:
lite- roughly real-time. The README quotes ~96 FPS on a 4090 and suggests 8GB+ VRAM. This is the one you reach for to iterate or run volume.pro- noticeably better fidelity, ~10.8 FPS on a 4090, wants ~24GB. Use it for final renders, not for experimenting.
The output is a single "FlashHead Pipeline" object of the custom RH_FlashHead_Pipeline type. You can't preview it, and nothing else in ComfyUI consumes it - it only plugs into the Sampler's pipeline input. That's the whole wiring: Loader → Sampler → SaveVideo.
Install
The pack is ComfyUI_RH_FlashHead. In ComfyUI Manager, search that title and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/HM-RunningHub/ComfyUI_RH_FlashHead.git
cd ComfyUI_RH_FlashHead
pip install -r requirements.txt
requirements.txt pulls in the usual suspects - transformers, diffusers, librosa, imageio, av, mediapipe, optimum-quanto. Nothing exotic, but they're the kind of pins that occasionally fight with other video packs, so keep ComfyUI itself updated.
Two things install alone can't do for you: you need FFmpeg on the system (apt-get install ffmpeg), and you need the models. The checkpoint is multi-GB and must sit in the exact folders above or the Loader throws at startup. Easiest path:
huggingface-cli download Soul-AILab/SoulX-FlashHead-1_3B \
--local-dir ComfyUI/models/Soul-AILab/SoulX-FlashHead-1_3B
huggingface-cli download facebook/wav2vec2-base-960h \
--local-dir ComfyUI/models/wav2vec/facebook/wav2vec2-base-960h
(China users: export HF_ENDPOINT=https://hf-mirror.com before the downloads.)
Gotchas
- First load is slow. It's building a diffusion pipeline in bf16, so give it a minute and a real chunk of system RAM. The "stuck" progress bar is usually just the load.
- Don't rename folders. The pack README's tree diagram writes
model_lite/lowercase, which is wrong - the code and the actual Hugging Face repo useModel_Lite/Model_Pro. Lethuggingface-clilay the directories down and leave them alone. - It's a cold-load node. Every new Loader call rebuilds the whole pipeline. Keep one Loader feeding as many Samplers as you need instead of re-invoking it per clip.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | COMBO | lite | 2 options: pro, lite |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FlashHead Pipeline | RH_FlashHead_Pipeline | — |