Nodes/ComfyUI-InstaSwap/Save Face Model
ComfyUI Node

Save Face Model

Turn a face into a tiny .safetensors file

By abdozmantar·Created 3 years ago·Updated 2 years ago· 57
Save Face Model
  • image
  • face_model
    save_modetrue
    face_model_namedefault

    This is the flip side of InstaSwap's Load Face Model. You built a swap you like, and you want that face reusable in any future workflow without dragging the reference photo in again. Save Face Model is the node that makes it permanent: it writes the face out as a small .safetensors file you can load later by name. Think of it as bookmarking a face rather than training anything - there's no learning here, just packaging.

    What you actually feed it

    Two required inputs, and either of the two optional ones:

    • save_mode - the on/off switch. On (default) means "actually save." Flip it off and the node does nothing.
    • face_model_name - the filename, no extension needed. Save as alice and you get alice.safetensors.

    Then you connect one of the optional inputs:

    • image - a face photo. If you give it an image, the node runs InsightFace's buffalo_l analysis on the spot, extracts the face, and saves that. Handy when you want to save a face you haven't swapped yet.
    • face_model - the FACE_MODEL output from InstaSwap Fast Face Swap. This reuses the embedding that was already computed during the swap, which is the more common route: swap once, and save the resulting face model straight off the output.

    The node has no outputs - it's a terminal node, so it sits at the end of the line and just writes the file.

    How it works

    The "model" is the raw InsightFace face record - the ArcFace embedding, the 2D/3D landmarks, bounding box, detection score, gender, and age - serialized to safetensors. The file lands in ComfyUI/models/instaswap/faces/<name>.safetensors. That's also where Load Face Model reads from, so the two nodes are just mirror images of each other.

    One honest expectation-setting: this is an embedding file, kilobytes at most, and it gives you no quality boost over using the source image directly. When you load it back and swap, you're hitting the same inswapper_128.onnx at 128×128. The value is convenience and portability, not fidelity - and if your goal is sharing a likeness without sharing a photo, this is exactly the file you'd pass along.

    Installation and gotchas

    No separate install - it's part of ComfyUI-InstaSwap (ComfyUI Manager → "ComfyUI-InstaSwap", or clone + python install.py). Two things trip people up:

    • Feed it nothing (no image, no face_model) and it logs an error and quietly does nothing - there's no visual failure, so check the console.
    • After saving, the dropdown on Load Face Model is cached at page load. Refresh your ComfyUI page before you go looking for the new model.

    And keep the path in mind: the README says models go to ComfyUI/models/reactor/faces, but the code writes to ComfyUI/models/instaswap/faces/. The instaswap folder is the real one.

    CategoryInstaSwap

    Inputs (4)

    NameTypeDefaultDescription
    save_modeBOOLEANtrue
    face_model_nameSTRINGdefault
    imageoptIMAGE
    face_modeloptFACE_MODEL

    Outputs (0)

    No outputs