ComfyUI Node

Save Face Model

Freeze a face into a .safetensors file for the next workflow

By TaiTair·Created 2 years ago·Updated 2 years ago· 14
Save Face Model
  • image
  • face_model
    save_modetrue
    face_model_namedefault
    select_face_index0

    Save Face Model is the pack's write-to-disk node: it takes a face and stores it as a .safetensors file in ComfyUI/models/simswap/faces/, where Load Face Model will pick it up by name. Build once, reuse forever - that's the whole loop this node closes.

    Unlike Build Blended Face Model (which builds a face model and saves it), this node is pure output - no IMAGE out, no FACE_MODEL out, just a file landing on disk. It exists for when you want the save to be a separate, explicit step, or when you have a face model you want to persist without touching the blending logic at all.

    How it works

    It accepts the identity from either of two places:

    • face_model - an existing FACE_MODEL (e.g. from Load Face Model or the swap node's face_model output). If you give it one, it just re-saves it under the name you choose. Useful for copying/renaming.
    • image - a raw image instead. The node runs InsightFace detection on it and pulls out the face at select_face_index (default 0, i.e. the first/largest face). Give a group photo and you can pick which person you mean.

    Then it saves whichever one you gave it to models/simswap/faces/<face_model_name>.safetensors - tensors for the bounding box, keypoints, pose, age, gender, and the ArcFace embedding that actually carries the identity. That's the same format Build Blended Face Model writes, so the two are interchangeable on the load side.

    Inputs that matter

    • save_mode - ON by default. This is the master switch; if it's OFF the node does nothing. (Yes, the whole node is optional once you turn this off.)
    • face_model_name - the filename (no extension needed). Default "default".
    • select_face_index - which face to use when saving from an image.

    No outputs - it's a terminal node. The success signal is the file appearing in models/simswap/faces/, and the console line that says where it went.

    Installing it

    Same as every node in the pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/TaiTair/comfyui-simswap
    # or: ComfyUI Manager → search "simswap" → install
    # then restart ComfyUI
    

    The save path (models/simswap/faces) is created automatically on first start, along with the pack's dependency install (insightface==0.7.3, onnxruntime, onnx, opencv-python, numpy, segment_anything). Detection won't work without a detection model under models/simswap, per the README.

    Gotchas

    • You need to supply either face_model or image - give neither and you just get an error in the console and no file. The node won't remind you.
    • Saving from an image with no detectable faces logs "No face(s) found" and quietly bails. If the face is tiny or heavily angled, this is why.
    • The pack is unmaintained and the README says so outright. For this node that's fine - the format is stable ReActor-style .safetensors, so the files you save won't stop loading.
    CategorySimswap

    Inputs (5)

    NameTypeDefaultDescription
    save_modeBOOLEANtrue
    face_model_nameSTRINGdefault
    select_face_indexINT0
    imageoptIMAGE
    face_modeloptFACE_MODEL

    Outputs (0)

    No outputs