Nodes/ComfyUI-PhotoMaker-Plus/PhotoMaker Loader Plus
ComfyUI Node

PhotoMaker Loader Plus

The unglamorous node every PhotoMaker workflow starts with

By shiimizu·Created 3 years ago·Updated 2 years ago· 296
PhotoMaker Loader Plus
    • PHOTOMAKER
    photomaker_model_name

    This is the node nobody screenshots and every PhotoMaker workflow depends on. If you're here it's because you want a specific person's face in your generations without training a LoRA, and PhotoMakerLoaderPlus is where that starts: it loads the PhotoMaker model file and hands it to the rest of the pipeline.

    PhotoMaker (from TencentARC) is the zero-shot identity approach that sits in the same family as IP-Adapter and InstantID, except it works differently under the hood. Its model file is not a checkpoint and not a normal LoRA - it's a .bin that packs two separate things: an id encoder (a CLIP Vision encoder that reads your reference photos) and lora_weights (a LoRA that patches the diffusion UNet). This loader peels those apart and passes the pieces along. Everything else in the pack hangs off it.

    What it does

    One input, one output. That's the whole node.

    • photomaker_model_name - a dropdown of every .bin in ComfyUI/models/photomaker/. You pick photomaker-v1.bin or photomaker-v2.bin.
    • PHOTOMAKER (output) - a custom object holding the loaded ID encoder, the LoRA weights, and a reference to the file. You don't wire this into any standard Comfy node; it's a pack-internal type that feeds PhotoMakerLoraLoaderPlus and PhotoMakerEncodePlus.

    Under the hood it does one clever thing: it sniffs the file for a qformer_perceiver.token_norm.weight key. Found it? That's V2, so it builds the V2 ID encoder that expects InsightFace embeddings. Not found? V1, simpler encoder. You never have to tell it which version you downloaded - it checks the weights themselves. It also caches the file in memory, so re-running the graph doesn't re-read a multi-hundred-MB file from disk every time.

    Wiring it up

    In the pack's own workflows the chain looks like:

    CheckpointLoaderSimple → PhotoMakerLoraLoaderPlus → KSampler
            │                        ▲
            └→ CLIP ────────────┐    │ PHOTOMAKER
                                ▼    │
    PhotoMakerLoaderPlus ──── PHOTOMAKER → PhotoMakerEncodePlus → KSampler
    

    The PHOTOMAKER output splits into both PhotoMakerLoraLoaderPlus (which applies the LoRA half to your base model) and PhotoMakerEncodePlus (which uses the ID encoder half). Skip either and your results will be subtly wrong - identity will leak through, but weak.

    Installing and getting the model

    Install the pack the usual way. Via ComfyUI Manager, search "PhotoMaker Plus" and hit install, or from a terminal:

    cd ComfyUI/custom_nodes
    git clone https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus.git
    

    Restart ComfyUI. The pack pulls in onnxruntime and insightface from its requirements.txt (plus a numpy<2 pin), so you may get an install step on first launch.

    Then download the model - not from CivitAI, from Hugging Face:

    # V1: https://huggingface.co/TencentARC/PhotoMaker  → photomaker-v1.bin
    # V2: https://huggingface.co/TencentARC/PhotoMaker-V2 → photomaker-v2.bin
    mkdir -p ComfyUI/models/photomaker
    # drop the .bin in there
    

    The dropdown in the node reads that folder, so it stays empty until you add the file.

    Where people get burned

    • Empty dropdown. The model isn't in models/photomaker/, or you put the whole HF repo folder in instead of just the .bin.
    • Mixing versions. You can run a V2 .bin without InsightFace wired in - the loader won't stop you, but PhotoMakerEncodePlus will throw "InsightFace is required for PhotoMaker V2" when it runs. If you loaded photomaker-v2.bin, grab the PhotoMakerInsightFaceLoader node too.
    • The "Plus" caveat. This pack is a native ComfyUI port of PhotoMaker by shiimizu (the same person behind ComfyUI-TiledDiffusion). It is deliberately not a diffusers wrapper, which is exactly why it's fast and doesn't rot with ComfyUI updates. But it means the node names and the PHOTOMAKER type are this pack's own - old YouTube tutorials from 2024 reference a different loader that no longer exists.

    One last thing worth knowing: PhotoMaker is an SD 1.5 / SDXL-era tool. It's still the right call when you want a specific real face in a generation with zero training. For the newest 2026 character-consistency workflows the community has largely moved to edit models - but on SDXL, this still works and works well.

    CategoryPhotoMaker

    Inputs (1)

    NameTypeDefaultDescription
    photomaker_model_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    PHOTOMAKERPHOTOMAKER