Fast, cheap talking heads from one portrait with FlashHead Pro in ComfyUI

SoulX-FlashHead Pro turns one portrait and a voiceover of any length into a 512 × 512 talking head at about 1.8 seconds of RTX 5090 time per second of video, roughly $0.04 a finished minute. Setup, settings and batch rendering.

Anton TenitskyNovember 1, 20269 min readVideo version belowSource on GitHub
Four FlashHead Pro talking-head renders: a man, a marble statue, a red-skinned demon and a woman, each a 512 × 512 face crop

Status: Tested on RunPod. I rendered with this template on RunPod on an RTX 5090 and an RTX 4090. The times and costs in this guide come from those runs.

These are the fastest talking avatars I’ve rendered so far. SoulX-FlashHead Pro is a small open model from Soul AI Lab (1.3 billion parameters, Apache-2.0 licence) that turns one portrait and a voiceover of any length into a 512 × 512, 25 fps talking-head video with your original audio.

On an RTX 5090 it needs about 1.8 seconds of GPU time per second of video, roughly $0.04 per finished minute. It’s light enough for consumer cards too, so you can run it locally.

The catch: it was trained on 512 × 512 crops of the face, so you don’t get the full bust of my LTX-2.5 and LongCat setups. Just the face.

In short

  • Speed: about 1.8 s of RTX 5090 time per second of video, after a one-off warm-up of 4–5 minutes per run.
  • Cost: about $0.04 per finished minute on an RTX 5090; an hour of voiceover for about $2.20.
  • Hardware: peaks at 6.4 GB of VRAM. 8 GB cards run it, slower; 12 GB+ is comfortable.
  • Output: 512 × 512 face crop at 25 fps. No shoulders, no hands.
  • Free template on GitHub, or one click on RunPod.

Speed and cost against my other avatar models

Model Framing Render time per finished minute Cost per finished minute
FlashHead Pro Face, 512 × 512 ~1.8 min (RTX 5090) ~$0.04
LTX-2.5 Full bust ~9 min (RTX 5090) ~$0.19
LongCat Half body with hands ~1 h (H100) to ~1.4 h (RTX PRO 4500, 640 × 640) $1–4
Chart of render time and cost per minute of finished video: FlashHead Pro about 1.8 minutes and $0.04, LTX-2.5 about 9 minutes and $0.19, LongCat 1 to 1.4 hours and $1–4
Measured GPU time and cost for one minute of finished video.

I compare all four of my avatar templates, including MiniMax H3, in a separate guide.

The catch: face only

FlashHead Pro is hard-wired to crop the face. Give it a bust or a half-body portrait and it cuts out a square around the head.

A FlashHead Pro render of a woman's face, tightly cropped to 512 × 512
The output is always a 512 × 512 face crop.

The quality is decent, not outstanding. For the price and the speed, it’s the best I’ve found. It suits long voiceovers where quality matters less than volume, for example a presenter in the corner of the screen.

Run it locally or on RunPod

Everything is free on GitHub. To run it locally in ComfyUI, ask Claude (or any AI) to fetch the files and install them in the order of setup.sh.

Slide: light enough for consumer GPUs. 6.4 GB peak VRAM measured, 6.9 GB of models to download. 8 GB cards run it but slower; 12 GB+ VRAM is comfortable. RTX 4090: about 2.3 seconds per second of video
6.4 GB of VRAM at peak, so RTX 3080 or 4060-class cards can run it.

On an 8 GB card it’s slower, because Windows moves part of the model to system RAM. In the video I estimate around 10 seconds of rendering per second of video on a consumer card. The template’s README records 12–79 seconds per second on an 8 GB RTX 3080 Laptop GPU, depending on memory pressure. 12 GB or more is comfortable.

For big jobs, I rent GPUs on RunPod. If you’re new to it, my introduction to RunPod covers the basics.

Set up the pod

Storage: use a Global Volume

Open the template link and click Configure Pod. RunPod offers to create a Network Volume, but I recommend a Global Volume: go to Storage → New volume → Global volume and create it.

RunPod Storage page with notes: Global Volume $0.09/GB a month for what is stored, FlashHead Pro about 7 GB for about $0.63 a month, billed per hour; Network Volume $0.07/GB a month for the size you book, 50 GB for $3.50 a month
A Global Volume charges for what's stored. FlashHead's ~7 GB costs about $0.63 a month.

A Global Volume grows with your files instead of making you book 50 or 80 GB up front, and it’s billed by the hour, not for the whole month at once. It can attach to a GPU in any data center, which matters because GPUs are often hard to find on a Network Volume. The one downside: ComfyUI is set up again on each new pod, which takes a few minutes.

Global Volume Network Volume
Price (October 2026) $0.09/GB a month, for what’s stored $0.07/GB a month, for the size you book
FlashHead Pro ~7 GB ≈ $0.63 a month 50 GB = $3.50 a month
Data centers Any One

On the deploy page, the filter still says Network volume and looks empty. That’s confusing, but you’re on the Global Volume anyway, with every GPU available.

Pick a GPU and deploy

RunPod deploy page with notes: FlashHead needs about 6.4 GB VRAM, almost any GPU; RTX 5090 at $1.19 an hour, about 1.8 seconds per second of video; RTX 4090 at $0.89 an hour, about 2.3 seconds per second, about the same cost per minute
The RTX 5090 and 4090 cost about the same per finished minute.
GPU Price (Oct 2026) GPU time per second of video
RTX 5090 $1.19/hr ~1.8 s
RTX 4090 $0.89/hr ~2.3 s

The 4090 is slower but cheaper per hour, so the cost per minute ends up about the same. I used the 5090. Leave the container disk at the template’s preset of 20 GB.

Deploy, then follow the setup in the Logs (System and Container tabs). The first boot downloads about 6.9 GB of models, once, so it only takes a couple of minutes. An “Unsupported volume type” warning on the deploy page is safe to ignore with this template.

When ComfyUI says it’s ready, open it from the Connect menu. JupyterLab, your file browser, may keep saying “initializing” even when it’s ready.

The single-voiceover workflow

Open the Workflows sidebar and choose flashhead_pro_1_continuous. It opens on a sample portrait and a sample voiceover, so you can run it straight away, or plug in your own.

The graph is simple: one Render node takes the model, the portrait and the voiceover, and puts out the video.

The FlashHead Render node in ComfyUI with its settings: anchor continuous (upstream), reset_seconds 40, seed, control after generate, color_correction 1.00 and name_suffix _pro_continuous
The Render node. The defaults work; name_suffix is the one you might change.
  • anchor: continuous (the default) means every chunk flows on from the one before, and the render never resets to the portrait. reset_seconds is only used by the “refresh at a pause” anchor.
  • color_correction: 1.00 is the upstream default; it keeps every chunk’s colours close to the portrait.
  • name_suffix: the output is named after the voiceover plus this suffix, for example sample_voiceover_pro_continuous.mp4.

Tip: crop the portrait yourself

The Render node finds the face and cuts a square about twice the face’s width around it. A bust photo loses its shoulders, and the framing can feel a little random.

ComfyUI with a bust portrait loaded and a note: the Render node crops a square twice the face width, so a bust photo loses its shoulders; crop it square first
Prepare a square portrait around the face, so you choose the framing, not the detector.

I recommend preparing a square portrait, cropped around the face, before you load it.

Why the first run is slow

The model itself is very fast. The annoying part is starting the task: on a new pod, the first run spends about 4–5 minutes loading the model and compiling it (torch.compile). A one-minute voiceover that renders in two minutes can take six minutes on the first run.

ComfyUI with a note: why the first run is slow. On a new pod about 4–5 minutes of warm-up, loading and compiling the model, then about 1.8 seconds per second of video on an RTX 5090
The warm-up happens once per run, not per video.

In my test on the RTX 5090, the first run rendered 57.5 seconds of video in 352.5 seconds, most of it warm-up. After that, 28 seconds of video took 51 seconds, peaking at 6.4 GB of VRAM.

ComfyUI with a note: this render on an RTX 5090, 57.5 seconds of video in 352.5 seconds, about 4–5 minutes of it the one-off warm-up, then 28 seconds of video in 51 seconds, about 1.8 seconds per second of video, peak VRAM 6.4 GB
The numbers from the console for my first render.

If an error appears in the log as the first render starts, it comes from the batch workflow running on an empty input/batch_audio folder. It doesn’t affect the single render.

This is why FlashHead shines on volume: with an hour of voiceovers, you pay the warm-up once. The finished video is in ComfyUI/output/; open it in JupyterLab to play or download it.

Batch: a whole folder of voiceovers

For many voiceovers, use flashhead_pro_2_batch_folder_continuous. Set the portrait, and it picks up every audio file in ComfyUI/input/batch_audio/ and renders them one by one, one video each. Files already rendered are skipped.

JupyterLab showing the ComfyUI input folder with the batch_audio folder and a rendered talking-head video playing
Upload your voiceovers to ComfyUI/input/batch_audio with JupyterLab.

The only settings to touch are the folder and, if you like, the name suffix.

Big jobs: several pods, one folder each

You can make more folders (batch_audio_2, batch_audio_3, or any name) and point each pod’s workflow at its own folder. With a Global Volume, every pod sees the same files, so you can split a really big job across several GPUs.

ComfyUI batch workflow with a note: 10 hours of voiceover, about 18 hours on an RTX 5090, about $22, plus one warm-up per run; a cheaper GPU works too, just slower
10 hours of voiceover: about 18 hours on one RTX 5090, about $22.
Voiceover Render time on an RTX 5090 Cost (Oct 2026)
1 hour ~1.8 hours ~$2.20
10 hours ~18 hours ~$22

Plus one warm-up per run. A cheaper GPU works too, just slower.

Watching and resuming a long render

According to the template’s README, a long render is saved in parts of about 30 seconds as it goes (output/flashhead_parts/<name>/part_001.mp4 and so on), which you can open while the rest renders. ComfyUI has no pause button: cancel the run, and queuing it again with the same inputs picks up after the last finished part. When all parts are done, they’re joined and the original audio is laid over the whole video.

When you’re done

Go back to the pod in RunPod and click Stop. Don’t leave a finished render running on the GPU bill.

Mistakes to avoid

  • Expecting a full bust. FlashHead Pro only renders the face.
  • A wide portrait. Crop it square around the face yourself.
  • Judging the speed by the first run. The 4–5 minute warm-up is a one-off per run.
  • One voiceover per run. Batch them, so you pay the warm-up once.
  • Forgetting to stop the pod.

Sign up through my RunPod referral link and you get $5–$500 in RunPod credits. Without a referral link there's no bonus. I get the same bonus and use it for compute.

Watch the video version (7:54)

Everything above is in the video too, if you'd rather follow along on screen.

FAQ

How fast is FlashHead Pro?

On an RTX 5090, after the warm-up, about 1.8 seconds of GPU time per second of video: 28 seconds of video rendered in 51 seconds. On an RTX 4090 it was about 2.3 seconds per second of video.

How much does a minute of FlashHead Pro video cost?

About $0.04 per finished minute on an RTX 5090 at $1.19 an hour (October 2026). An hour of voiceover takes about 1.8 hours, about $2.20, plus one warm-up per run.

Can FlashHead Pro run on an 8 GB GPU?

Yes. It peaks at 6.4 GB of VRAM, so 8 GB cards run it, but slower, because Windows moves part of the model to system RAM. 12 GB or more is comfortable.

Can FlashHead Pro do a full bust or hands?

No. It was trained on 512 × 512 crops of the face, so the output is the face only: no shoulders, no hands.

Why is the first render so slow?

On a new pod the first run spends about 4–5 minutes loading the model and compiling it. After that it renders at full speed, so batching many voiceovers into one run pays off.

Anton Tenitsky is a 3D artist with 15+ years in computer graphics, working with Nickelodeon, Gameloft, Marvel Rivals and many other clients. More about me

Related guides