Nodes/FLOAT Optimized/Apply FLOAT Encoder (VA)
ComfyUI Node

Apply FLOAT Encoder (VA)

The VA graph's image-to-puppet step

By set-soft·Created about a year ago·Updated about a year ago· 33
Apply FLOAT Encoder (VA)
  • ref_image
  • float_encoder
  • appearance_pipe (Ws→r)
  • r_s_lambda_latent
  • float_encoder_out

Apply FLOAT Encoder (VA) is the Very Advanced equivalent of "encode the image," and it does the same split that FLOAT Encode Image to Latents does in the Advanced graph, but with the encoder handed to it explicitly instead of buried in a pipe. Feed it a reference image and a loaded encoder; it preprocesses the image, runs it through the encoder, and hands back the two things FLOAT needs from a photo: the appearance puppet and the current pose.

To restate it in FLOAT terms: the output appearance pipe bundles s_r (the compact appearance/style latent) plus feats, the multi-resolution feature maps that carry the spatial detail - that's "what they look like." The r_s_lambda_latent output is the motion-control parameters - "what pose they're in right now." Two different things, two different destinations downstream, and confusing them is the classic VA-graph error.

The wiring

Inputs:

  • ref_image - a batch of reference images, correctly sized for the encoder. "Correctly sized" is doing real work here: the VA graph has no hidden face alignment, so the image should already be square and at the encoder's native size - wire inferred_input_size from Load Float Encoder into a Face Align for FLOAT node upstream, or prepare it yourself.
  • float_encoder - from Load FLOAT Encoder.

Outputs:

  • appearance_pipe (Ws→r) - the appearance latent plus feature maps. This travels all the way to Apply Float Synthesis at the end.
  • r_s_lambda_latent - the motion-control parameters. Note this is not the final identity latent: it still needs FLOAT Get Identity Reference VA to become r_s for the sampler.
  • float_encoder - passthrough of the input model (so the encoder keeps flowing down the graph if later nodes want it).

So the VA image path reads: Load Float EncoderApply Float Encoder → both Float Get Identity Reference VA (from r_s_lambda_latent) and Apply Float Synthesis (from the appearance pipe).

Why bother with the VA version

Because you can see and rewire every connection, and because the pack's own docs recommend the VA nodes for investigating options and say they use less VRAM than the regular pipeline. If you're experimenting - swapping in a custom encoder, running the identity and synthesis branches on different devices - this is where you want to live. If you just want a video, use FLOAT Process (Opt) and don't look back.

The only real gotchas are the load-time story: the encoder weights are auto-extracted from the unified FLOAT.safetensors (or downloaded on their own if that's missing), and this node runs on whatever device Load Float Encoder chose, so keep those consistent across the graph or you'll get device-mismatch errors. Install is the pack routine - Manager search "ComfyUI-FLOAT_Optimized", or clone into custom_nodes + pip install -r requirements.txt, restart. FLOAT is CC BY-NC-SA 4.0 (non-commercial), and the VA nodes' interfaces are still marked as "might change."

CategoryFLOAT/Very Advanced

Inputs (2)

NameTypeDefaultDescription
ref_imageIMAGEA batch of reference images, correctly sized (e.g., 512x512) for the encoder.
float_encoderFLOAT_ENCODER_MODELThe loaded FLOAT Encoder model module.

Outputs (3)

NameTypeDescription
appearance_pipe (Ws→r)FLOAT_APPEARANCE_PIPE
r_s_lambda_latentTORCH_TENSOR
float_encoder_outFLOAT_ENCODER_MODEL