ComfyUI Node

SplitVec3

Turn ControlNet's strength/start/end bundle into three honest numbers

By robertvoy·Created 2 years ago·Updated 9 months ago· 239
SplitVec3
  • a
  • FLOAT
  • FLOAT
  • FLOAT

If you've used Flux Continuum's interface, you've met the ControlNetSlider: one node with strength, start, and end sliders that bundles all three into a single VEC3 output. And then you've met the problem this node solves - a ControlNetApplyAdvanced node doesn't want a vector, it wants three separate FLOAT inputs. SplitVec3 is the bridge: one VEC3 in, three FLOAT outputs out, in order.

Where it earns its keep

Look at the shipped workflow and you'll see SplitVec3 nodes everywhere the ControlNet values travel. Its outputs feed the strength_start and strength_end inputs of ControlNetApplyAdvanced, the same inputs on ImpactControlNetApplyAdvancedSEGS, and the Redux/IP-adapter strength slots - that whole ControlNet-to-apply path runs through these splitters. The ControlNetSlider bundles (Strength, Start, End); SplitVec3 hands them back as three individually-wirable floats.

That's the whole game in one sentence: the interface side of Continuum wants to present you one tidy control, and the sampling side of ComfyUI wants raw numbers. This node is the adapter between the two philosophies, and it's why the "one unified control interface" trick works at all.

Mechanically there's nothing to it - return a[0], a[1], a[2] on a tuple that defaults to (0.0, 0.0, 0.0). The three outputs are in the same order the vector was packed: first component, second, third. If you're feeding them into a ControlNet node, the conventional mapping is strength → start → end, so keep the order straight or your ControlNet will kick in at the wrong time.

Why you might reach for it outside the pack

A growing handful of packs output VEC2/VEC3 values, and most stock nodes don't accept them. SplitVec3 (and its two-value sibling SplitVec2) are generic enough to be the universal "unpack the vector" tool. Redux strengths, IP-Adapter strengths, Canny thresholds, offset trios - if it's bundled, you can split it. It's also a decent debugging habit: split a vector to a preview or a text display and you can actually read the three values instead of staring at a tuple.

One warning, same as its sibling: this is a pure utility. It can't make your ControlNet better, it can only make sure the right number reaches the right socket. If your edge-guided generation looks wrong, the culprit is the strength/start/end values themselves - or the guidance setting - not this splitter.

Install

Ships with the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/robertvoy/ComfyUI-Flux-Continuum

Restart, or install via ComfyUI Manager → search "Flux Continuum". No extra dependencies.

Troubleshooting

  • Outputs are all zeros - the input is disconnected and it's splitting the default (0.0, 0.0, 0.0) vector. Wire something in.
  • ControlNet behaves like strength is inverted or wrong - you've crossed the outputs. First output is component 1, second is 2, third is 3; strength, start, end in the pack's own slider.
  • Order feels off - check which producer fed the VEC3; a different pack may pack its own order, and this node blindly honors whatever order it was given.

Simple tool, simple job. When a bundle of three numbers is hiding a single useful slider, this is how you get them back out.

CategoryFlux-Continuum/Utilities

Inputs (1)

NameTypeDefaultDescription
aVEC30,0,0

Outputs (3)

NameTypeDescription
FLOATFLOAT
FLOATFLOAT
FLOATFLOAT