Nodes/ComfyUI-PuLID-Flux-GR/GR Load Eva Clip (PuLID Flux)
ComfyUI Node

GR Load Eva Clip (PuLID Flux)

The zero-knob node that's quietly downloading a model

By GraftingRayman·Created 2 years ago·Updated 2 months ago· 60
GR Load Eva Clip (PuLID Flux)
    • EVA_CLIP

    GR Load Eva Clip (PuLID Flux) has no inputs at all. Not a dropdown, not a toggle, not a slider - you add it to the canvas and it produces one EVA_CLIP output, and that's the whole node. It's also doing more work than it looks like, and the first time you run it you'll be waiting a while.

    PuLID builds its identity embedding from two complementary views of the reference face. InsightFace's ArcFace gives the biometric identity - the "who is this geometrically." EVA-CLIP gives the visual identity - the actual appearance, skin tone, face shape, the way the person looks in the photo. That second half is what this node provides. Without it, the apply node is working blind on half the signal.

    What it actually loads

    The node instantiates EVA02-CLIP-L-14-336 - the EVA-02 CLIP vision backbone with a 336px input - using the vendored eva_clip code that ships inside the pack. This is the same CLIP flavor PuLID's training used, which matters: identity adapters are picky about their embedding space, and mismatched CLIP backbones are a classic source of weak likeness.

    Two practical things worth knowing:

    • It downloads on first run. The model weights aren't bundled in the repo; the first time this node executes it fetches the EVA02 checkpoint from HuggingFace into your HF cache. If ComfyUI looks frozen on your very first generation with this pack, this is why. You need internet for that first load.
    • It keeps the model warm. Like its siblings in the pack, it loads once and holds the model in memory, with cleanup/__del__ handlers that move it to CPU and flush the CUDA cache when the graph is torn down. That memory discipline is the GR fork's whole reason for existing.

    Where it goes in the workflow

    The EVA_CLIP output feeds the eva_clip input on GR Apply PuLID Flux. The full wiring for a working PuLID graph is:

    GR Load PuLID Flux Model  ──PULIDFLUX──▶
    GR Load Eva Clip          ──EVA_CLIP───▶  GR Apply PuLID Flux ──MODEL──▶ KSampler
    GR Load InsightFace       ──FACEANALYSIS▶
                                            ▶ image (your reference photo)
    

    Install is the same as the rest of the pack - ComfyUI Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR
    cd ComfyUI-PuLID-Flux-GR
    pip install -r requirements.txt
    

    (Portable installs: ComfyUI\python_embeded\python.exe -m pip install -r <path>\requirements.txt.) The requirements list is heavy - insightface, onnxruntime, onnxruntime-gpu, facexlib, timm, filterpy - and if insightface errors out, it's almost always the onnx stack being too new; pin onnx==1.14.0 and onnxruntime-gpu==1.15.0 and it settles down.

    The tl;dr: add the node, wire the output to the apply node, and let the first run download the weights. If a workflow loads but produces a generic face that doesn't resemble your reference, this is one of the two loaders you'd suspect - but honestly, the more common culprit is feeding it a low-res or heavily filtered reference photo rather than anything this node does wrong.

    Categorypulid

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    EVA_CLIPEVA_CLIP