Nodes/COMFYUI-MODELINSTALLER/PMA Character Swap (Advanced)
ComfyUI Node

PMA Character Swap (Advanced)

A roadmap drawn in nodes, not a finished swap

By Pis7i·Created 10 months ago·Updated 9 months ago· 0
PMA Character Swap (Advanced)
  • reference_image
  • character_face
  • model
  • vae
  • clip
  • openpose_controlnet
  • depth_controlnet
  • canny_controlnet
  • ipadapter_model
  • output_image
  • pose_preview
  • depth_preview
  • latent
positive_prompthigh quality, detailed face, professional photo, 8k
negative_promptbad face, deformed, ugly, blurry, low quality, bad anatomy
pose_strength1.00
depth_strength0.70
face_strength0.85
seed0
canny_strength0.50

What you're actually looking at

The Advanced sibling of PMA Character Swap looks like a complete face-swap machine, and it's mostly a schematic. It accepts a model, a vae, a clip, plus optional ControlNet and IP-Adapter inputs, and its docstring claims the full pipeline: encode your prompts, apply the ControlNets, denoise with the model, inject the face with IP-Adapter FaceID, decode with the VAE. Read the source and you'll find that pipeline "not yet implemented." What it actually does is run the same OpenPose and depth preprocessors as the Basic version and return the pieces - including a latent.

One genuinely dangerous detail: that latent output is not your image. It's a hardcoded empty tensor. Wire it straight into a KSampler and you'll get noise, not your character in a new pose. Treat latent as "reserved for the real thing," not as something to sample.

The inputs that matter

Everything from the Basic node carries over - same reference_image, character_face, the three strength sliders, prompts, and seed - plus:

  • model, vae, clip (required) - the checkpoint and text-encoder plumbing any real generation pass would need.
  • openpose_controlnet, depth_controlnet, canny_controlnet (optional, CONTROL_NET type) - the control models that map onto those preview maps.
  • ipadapter_model (optional, IPADAPTER type) - the FaceID model this node is meant to consume.

None of the optional ones are applied yet, but they spell out the intended wiring: pose/depth/canny maps → ControlNet Apply → IPAdapter FaceID → KSampler → VAE decode. That's the same recipe the ecosystem converged on independently - ControlNet for structure, IP-Adapter FaceID for identity, per the identity-preservation playbook. This node is the pack author's take on it, in sketch form.

Why bother, then?

Two honest reasons. First, it's a decent map if you're hand-building a swap pipeline from native nodes - the outputs it does produce, pose_preview and depth_preview, are genuinely usable control maps you can feed into any ControlNet Apply node. Second, it shows where this pack is heading: the bundled model downloader already stages ControlNet Union SDXL and IP-Adapter FaceID Plus v2, so this is clearly the destination, not the detour.

For a swap that works today, don't wait on this node. The practical path is IP-Adapter FaceID (generative, ArcFace embedding + companion LoRA at weight ~0.5–1.0) stacked on ControlNet structure, or ReActor for a pixel-level post-process. Both beat wiring together a placeholder whose latent will happily produce noise.

Install and gotchas

Same pack, same steps as Basic:

cd ComfyUI/custom_nodes
git clone https://github.com/Pis7i/COMFYUI-MODELINSTALLER

or ComfyUI Manager → search COMFYUI-MODELINSTALLER, then restart. Both Character Swap nodes need ComfyUI-ControlNet-Aux installed for the preprocessors; without it you'll get gray placeholder maps and console errors. And the reminder that's worth repeating: an empty latent in means noise out - don't sample it.

Bottom line

A wiring diagram disguised as a node. Fine for studying the architecture and for grabbing pose/depth maps; not yet something that swaps faces. If swapping is your goal, you'll spend less time building the pipeline from native nodes than you will fighting this one's placeholders.

CategoryPMA Utils/Character

Inputs (16)

NameTypeDefaultDescription
reference_imageIMAGE
character_faceIMAGE
positive_promptSTRINGhigh quality, detailed face, professional photo, 8k
negative_promptSTRINGbad face, deformed, ugly, blurry, low quality, bad anatomy
pose_strengthFLOAT1.000–2
depth_strengthFLOAT0.700–2
face_strengthFLOAT0.850–1
seedINT00–18446744073709550000
modelMODEL
vaeVAE
clipCLIP
canny_strengthoptFLOAT0.500–2
openpose_controlnetoptCONTROL_NET
depth_controlnetoptCONTROL_NET
canny_controlnetoptCONTROL_NET
ipadapter_modeloptIPADAPTER

Outputs (4)

NameTypeDescription
output_imageIMAGE
pose_previewIMAGE
depth_previewIMAGE
latentLATENT