ComfyUI Node

Live Portrait

Drive a still portrait with a video, the multi-face way

By MixLabPro·Created 2 years ago·Updated 2 years ago· 479
Live Portrait
  • source_image
  • driving_video
  • crop_info
  • video
  • video_concat
driving_video_reverse_aligntrue

You have one still photo of a face and a video of someone talking or emoting, and you want the photo to copy that motion - same head turns, same blinks, same mouth shapes. That's the whole job of LivePortraitNode, and it does it fast because it isn't a diffusion model at all. It's a purpose-built warping network from KwaiVGI (the Kuaishou research team) that lifts the motion out of your driving video and reapplies it to your source face. No 20-step sampler, no LoRA, none of that. It was the talking-head sensation of July 2024 for exactly that reason.

This particular node is the shadowcz007 / Mixlab port. Worth saying up front: if you just want LivePortrait working, Kijai's ComfyUI-LivePortraitKJ is the more widely used, better-maintained implementation, and it has an InsightFace-free MediaPipe path. The reason you'd reach for this pack instead is the thing it's built around - multiple faces, each driven by its own motion. Feed it a group photo, hand each face a different driving clip, and everyone in the shot animates independently. That's the "family portrait" trick the Mixlab pack is known for, and the other packs don't really do it.

How it works

LivePortrait represents a face as a set of implicit keypoints - an appearance code for who the face is, plus motion codes for what it's doing (pose, expression, eye and mouth state). It reads those motion codes frame by frame off your driving video and stitches them onto your source's appearance, then warps and renders the result. Because the identity and the motion are separated, the person in the photo stays themselves while borrowing the movement.

The inputs and outputs that matter

Two inputs are required:

  • source_image (IMAGE) - the still face you want to bring to life. One clear, roughly front-facing portrait.
  • driving_video (SCENE_VIDEO) - the performance to copy. Head pose and expression get transferred; identity does not.

Then two optional ones. crop_info (CROP_INFO) is the important one - wire a FaceCropInfo node into it so LivePortrait knows exactly where the face (or faces) sit. This is how you unlock the multi-face behavior; without it the node falls back to finding a single face itself. driving_video_reverse_align (BOOLEAN, default true) handles motion alignment against the driving clip; leave it on unless your result drifts oddly, then try flipping it.

Note the SCENE_VIDEO type on the driving input and both outputs - that's a Mixlab-specific video format, which is why the README tells you to pair this with comfyui-mixlab-nodes. You'll want Mixlab's load/save-video nodes to feed the driving clip and to view the result.

Outputs are video (the animated portrait on its own) and video_concat (the same result stitched side-by-side with the driving video, which is genuinely useful for eyeballing how faithfully the motion transferred).

How to install it

Through ComfyUI Manager: open the Manager, search comfyui-liveportrait, install, restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/shadowcz007/comfyui-liveportrait

then restart ComfyUI. The models are not bundled - grab the LivePortrait and InsightFace weights from the Google Drive or Baidu links in the README and drop them into ComfyUI/models/liveportrait and ComfyUI/models/insightface. On dependencies: if you already run comfyui-mixlab-nodes, you don't need to install anything extra; the two share an environment.

Common issues

The number one "the node errors / does nothing" cause is missing model files - those Drive/Baidu downloads aren't automatic, and the folders have to be exactly models/liveportrait and models/insightface. Second: InsightFace itself is the most notorious install in ComfyUI, historically needing a C++ build toolchain (that finally eased with InsightFace 1.0). If your whole graph fails to import, InsightFace is the first suspect. One legal footnote worth knowing before you ship anything: InsightFace's model weights are licensed non-commercial even though its code is MIT, so anything driven through this face pipeline carries that restriction on commercial use. And keep expectations sane - LivePortrait wants a fairly frontal source; hard profiles and extreme angles are where it breaks down.

Category♾️Mixlab/Video/LivePortrait

Inputs (4)

NameTypeDefaultDescription
source_imageIMAGE
driving_videoSCENE_VIDEO
crop_infooptCROP_INFO
driving_video_reverse_alignoptBOOLEANtrue

Outputs (2)

NameTypeDescription
videoSCENE_VIDEO
video_concatSCENE_VIDEO