Nodes/comfyui_bmad_nodes/FromListGetLatents
ComfyUI Node Runs on cloud

FromListGetLatents

Split a latent batch into single latents — FromListGetLatents

By bmad4ever·Created 3 years ago·Updated 9 months ago· 70
FromListGetLatents
  • list
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT
  • LATENT

FromListGetLatents is the latent member of Bmad's "unpack the list" family: a LATENT list in, individual latents out on separate sockets. It's the splitter half of the gather/split pair, where ToLatentList (same pack) gathers single latents into a list and this node fans them back out.

Latent lists are where this pack's list plumbing earns its keep. A VAEEncodeBatch, a Repeat Into Grid, or a batch sampler produces multiple latents at once, and almost every downstream node - a KSampler, a second VAEEncode, an area-based conditioner - wants exactly one. Rather than picking them apart with index math, FromListGetLatents gives each latent its own wire so each can be sampled with different settings, different denoise, or routed to a different upscaler before decoding. It's the difference between a readable graph and a bowl of spaghetti.

How it works

Same UnMakeListMeta machinery as the other FromListGetX nodes - INPUT_IS_LIST on, and the implementation is:

def get_all(self, list):
    return tuple(list)

Declared with 32 output slots, but on the canvas it starts with zero visible outputs. The pack's JS extension (ArbitraryOutputsFixedInputs.js) adds an outputs widget - set how many sockets you want (up to 16), or right-click → "update Outputs". This is the in the README; ignore the widget and the node looks like an empty box.

Inputs and outputs

  • list - a LATENT list, forceInput, wired from ToLatentList, VAEEncodeBatch's list output, or another list producer.
  • Outputs: up to 16 individual LATENT sockets, one per entry.

Match the widget to the actual list length - the node returns exactly as many latents as the list holds, so an oversized widget leaves empty sockets and an undersized one hides items.

Install

Ships in bmad4ever/comfyui_bmad_nodes. Via ComfyUI Manager, search "comfyui_bmad_nodes" ("Bmad Nodes"), install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/bmad4ever/comfyui_bmad_nodes
cd comfyui_bmad_nodes
pip install -r requirements.txt

Then restart ComfyUI. No model files; the requirements are opencv-python, scikit-image, simpleeval and gray2color.

Common issues

The invisible-outputs trap applies here like everywhere in this family: no sockets visible means set the outputs widget; widget missing means the JS didn't load (hard-refresh, update frontend). Also watch for latent batch semantics: a single LATENT object can itself contain multiple images in its batch dimension, which is not the same as a list of latents. This node splits list items, not batch dimension. If you're trying to pull frame 3 out of one latent, that's a different node. For list-of-latents splitting, though, it's exactly what you want.

CategoryBmad/Lists/GetAll

Inputs (1)

NameTypeDefaultDescription
listLATENT

Outputs (32)

NameTypeDescription
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT
LATENTLATENT