Nodes/ComfyUI-FLOAT_Optimized/Load FLOAT Encoder (VA)
ComfyUI Node

Load FLOAT Encoder (VA)

The VA graph's first stop for the image side

By set-soft·Created about a year ago·Updated 12 months ago· 33
Load FLOAT Encoder (VA)
    • inferred_input_size
    • dim_w
    • dim_m
    • float_encoder
    encoder_file
    target_devicecpu
    cudnn_benchmarkfalse

    In the Very Advanced graph there are no monolith pipes - every network is loaded separately, and the image side starts here. Load FLOAT Encoder (VA) loads just the encoder half of FLOAT's motion autoencoder from a .safetensors file, and it's smart about it: rather than making you specify the architecture, it infers the input size and latent dimensions straight from the weights. You tell it which file and which device; it tells you what the model expects.

    It belongs to the "Very Advanced/Loaders" category for a reason. The VA graph exists so you can swap individual components - a custom audio encoder, a different projection layer, whatever you're experimenting with - and this node is the seam for the appearance/motion encoder. The output float_encoder plugs directly into Apply FLOAT Encoder, which does the actual image processing.

    Inputs and outputs

    • encoder_file - dropdown of .safetensors files it found in ComfyUI/models/float/motion_autoencoder/. The shipped one is encoder.safetensors.
    • target_device - CPU or CUDA.
    • cudnn_benchmark - off by default. Turning it on makes CUDA hunt for the fastest algorithm, which can speed up repeated runs but makes the first inference noticeably slow. The author's advice: leave it off on RTX 3060-class cards unless you've tested that on helps.

    Outputs are the interesting part, because they wire the rest of the graph:

    • float_encoder - the loaded Encoder module, into Apply FLOAT Encoder.
    • inferred_input_size - the image size the encoder was trained on (e.g. 512). Feed this into the size input of Face Align for FLOAT so your alignment matches the model exactly.
    • dim_w - the dimension of the main appearance latent (s_r).
    • dim_m - the dimension of the motion-control parameters (r_s_lambda).

    Where the weights come from

    This is the loader behavior worth understanding, because it's the pack's neatest trick. The VA nodes look for individual part files - encoder.safetensors here - but if you only have the unified FLOAT.safetensors (the 2.4 GiB auto-downloaded model), the loader extracts the encoder weights from it automatically using a script shipped in the pack's tools/ directory. If the unified model isn't there either, it falls back to downloading the part directly from Hugging Face. So you never actually need to go hunting for the split files; just let it work.

    Install is the pack standard - ComfyUI Manager search "ComfyUI-FLOAT_Optimized", or cd ComfyUI/custom_nodes && git clone https://github.com/set-soft/ComfyUI-FLOAT_Optimized && pip install -r requirements.txt, then restart. First run will want the unified model downloaded (or it'll fetch the encoder part on its own). Since you're in the VA graph, remember the standing license: FLOAT is CC BY-NC-SA 4.0, non-commercial. And note the VA nodes' inputs and outputs are still settling - the README warns they "might change" as the author iterates.

    CategoryFLOAT/Very Advanced/Loaders

    Inputs (3)

    NameTypeDefaultDescription
    encoder_fileCOMBOThe .safetensors file containing the pre-trained weights for the FLOAT Encoder.
    target_deviceCOMBOcpuThe device (CPU or CUDA) where the Encoder will run during inference.
    cudnn_benchmarkBOOLEANfalseEnable or disable cuDNN benchmarking for this model's operations. Can improve speed.

    Outputs (4)

    NameTypeDescription
    inferred_input_sizeINT
    dim_wINT
    dim_mINT
    float_encoderFLOAT_ENCODER_MODEL