ComfyUI Node

BDV (Router)

The tiny node that unpacks your whole workflow's settings

By SineSwiper·Created 7 months ago·Updated 7 months ago· 0
BDV (Router)
  • bus
  • bus
  • width
  • height
  • frame_count
  • batch_size
  • fps
  • seed

Basic Dimension Variables is a great idea and a mildly awkward one: the values you declared in one node have to get to the nodes that use them, and dragging six wires across a huge workflow is exactly the kind of mess the node exists to prevent. BDV (Router) is the other half of the trick - it takes the single bundled bus wire and splits it back into the individual values, right where you need them. SineSwiper's LoadAnim-Adv pack calls it "a smaller bus-only" version of the BDV node, and that undersells how often you'll use it.

What it does

One input, bus (a BDV_BUS from a Basic Dimension Variables node). Seven outputs: the bus again, then width, height, frame_count, batch_size, fps, and seed as individual typed values. It doesn't compute anything - no defaults, no overrides, no editing. It's a distribution block, pure and simple.

Why it exists

Say your BDV node sits at the top of a workflow, and 40 nodes below it need width, height, and seed. You have two options: run wires from the top of the graph down past everything else (a mess), or drop a BDV Router near the consumers and run one short bus wire to it. The router turns "one long bus cable" into "a local power strip." ComfyUI keeps the actual bus data as a small tuple, so moving it around costs nothing - the router is purely about keeping your canvas readable.

This is the same pattern power users hit with rgthree's and other packs' buses - a typed tuple that travels as one wire and gets unpacked on arrival. BDV just implements it with a purpose-built type instead of gluing a generic tuple together by hand.

Inputs and outputs

Inputs: bus (required, BDV_BUS). Outputs: bus, width (INT), height (INT), frame_count (INT), batch_size (INT), fps (FLOAT), seed (INT) - mirroring the BDV node exactly, so you never have to remember which side has which.

Installing

Part of ComfyUI-LoadAnim-Adv by SineSwiper. ComfyUI Manager → search "LoadAnim", or:

cd ComfyUI/custom_nodes
git clone https://github.com/SineSwiper/ComfyUI-LoadAnim-Adv.git

Restart ComfyUI. It's a pure utility node - no models, no dependencies beyond the pack's usual torch, numpy, Pillow.

Gotchas

  • It has no defaults. Leave the bus input unconnected and it uses an all-zero tuple, so you'll get 0s out the other end. A router with no bus is a wall ornament.
  • Output order matters if you're wiring by port position: bus first, then width/height/frame_count/batch_size/fps/seed. The output names are labeled, but it's good to know the pattern.
  • Since it only unpacks, there's nothing to tune. If you need to change a value mid-flow, chain a Basic Dimension Variables node (its non-zero inputs override the bus) rather than trying to edit here.

It's two dozen lines of code and it'll quietly save you from spaghetti. In a big animation graph, that's worth more than a fancy loader.

CategoryLoadAnimAdv/BDV

Inputs (1)

NameTypeDefaultDescription
busBDV_BUSBDV bus input, from a previous BDV node.

Outputs (7)

NameTypeDescription
busBDV_BUSBDV bus output, for use in other BDV nodes.
widthINTWidth of the image/video
heightINTHeight of the image/video
frame_countINTFrame length of the animation/video
batch_sizeINTBatch size
fpsFLOATFrames per second
seedINTRandom seed