Nodes/AQnodes for ComfyUI/AQ_multiface_ApplyPulidFlux
ComfyUI Node

AQ_multiface_ApplyPulidFlux

PuLID Flux identity for several faces at once — the pack's flagship

By 2frames·Created about a year ago·Updated 6 months ago· 1
AQ_multiface_ApplyPulidFlux
  • model
  • pulid_flux
  • eva_clip
  • face_analysis
  • images
  • attn_masks
  • options
  • MODEL
weight1.00
start_at0.000
end_at1.000

This is the reason the pack exists. The author's own one-line description of AQnodes is "mostly for llm calling and automatizing pulid multiface" - and this is the pulid half. A normal PuLID Flux node applies identity from a single reference face. This one loops over a list of face references, so you can lock several characters into one generation, each with its own attention mask, in a single pass.

Why you'd want it

PuLID (ByteDance) is the identity adapter that won the Flux face game by solving "ID pollution" - injecting a face without wrecking prompt adherence, which is what killed earlier approaches like InstantID on Flux. Normally that means one ApplyPulidFlux node per character, stacked and hoping the model patches chain correctly. This node automates the chaining: it literally calls the original ApplyPulidFlux from the ComfyUI_PuLID_Flux_ll pack once per input image, threading the patched MODEL through the loop. Two characters, three characters, same graph, one node.

How it works

It looks up the ApplyPulidFlux class from the already-registered ComfyUI node mappings - which means you must have ComfyUI_PuLID_Flux_ll installed and loaded; the code prints an explicit, helpful error if it can't find it. Then for each image in the list it calls apply_pulid_flux with that single image and its matching attention mask, accumulating the patched model. Same inputs as the original node: model, the PuLID Flux model, the EVA-CLIP, the face-analysis model.

Inputs

  • model - your Flux model.
  • pulid_flux, eva_clip, face_analysis - the three specialized inputs from the PuLID Flux pack (the identity model, EVA-CLIP, and the InsightFace-based face analyzer).
  • images - IMAGE_LIST, from AQ_MasksAndImagesAsList.
  • weight - -1 to 5, default 1.
  • start_at / end_at - 0 to 1, when in the schedule identity applies.
  • attn_masks (optional) - IMAGE_LIST, one per face.
  • options (optional).

Output

MODEL - the patched model, into your sampler.

Install

Two installs. First the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/2frames/ComfyUI-AQnodes
cd ComfyUI-AQnodes
pip install -r requirements.txt

Then the companion pack ComfyUI_PuLID_Flux_ll (ComfyUI Manager) plus its model downloads - the PuLID Flux weights, EVA-CLIP, and face-analysis model. Without the companion pack the specialized inputs won't even exist in the graph.

Gotchas

The real ones: (1) the standard face-analysis model is non-commercial, so shipping a product with this is a licensing problem - the PuLID_Flux_ll pack offers a FaceNet alternative specifically for commercial use, worth knowing before you commit. (2) insightface + onnxruntime-gpu are among the most install-hostile dependencies in the ecosystem; expect to fight the CUDA/onnxruntime pairing. (3) weight applies identically to every face - per-face weighting isn't exposed, so a strong identity will push all of them equally. And remember the pack's requirements pull in the whole face stack even if PuLID is all you use.

CategoryAQ/Pulid

Inputs (10)

NameTypeDefaultDescription
modelMODEL
pulid_fluxPULIDFLUX
eva_clipEVA_CLIP
face_analysisFACEANALYSIS
imagesIMAGE_LIST
weightFLOAT1.00-1–5
start_atFLOAT0.0000–1
end_atFLOAT1.0000–1
attn_masksoptIMAGE_LIST
optionsoptOPTIONS

Outputs (1)

NameTypeDescription
MODELMODEL