Nodes/ComfyPanel/PrimitivePlus
ComfyUI Node

PrimitivePlus

One control hub for every widget you're tired of hunting for

By Ginolazy·Created 6 months ago·Updated 2 days ago· 23
PrimitivePlus
    • connect_to_widget_input_1
    • connect_to_widget_input_2
    • connect_to_widget_input_3
    • connect_to_widget_input_4
    • connect_to_widget_input_5
    • connect_to_widget_input_6
    • connect_to_widget_input_7
    • connect_to_widget_input_8
    • connect_to_widget_input_9
    • connect_to_widget_input_10

    The name undersells it. PrimitivePlus is a control hub that lets you drive the widgets on other nodes from one place - think ten tiny sliders and text boxes on a single node instead of clicking through ten separate ones. The pack's own description calls it "a single control hub" that "manages and proxies multiple Primitive-style widgets from different nodes," and that's exactly the deal.

    If you've used ComfyUI's core Primitive node, you know the pattern: convert a widget to input, plug a value source into it, and that value is now defined in one authoritative place instead of buried in a widget. PrimitivePlus is that same mechanic, multiplied - it has ten outputs, and each one can babysit a different widget on a different node.

    How it works

    The Python side is almost embarrassingly simple: it reads its hidden prompt data to find which widget inputs each of its outputs is wired to, and emits each value as a one-item list. The magic lives in the frontend extension. When you drag one of PrimitivePlus's outputs onto a converted widget input on another node, the extension tracks the connection. Type a value in the hub, and it live-pushes that value onto the target widget - you see the downstream node's field update before you even run the graph. It's bidirectional, too: change the value at the source node and the hub follows.

    The outputs are named connect_to_widget_input_1 through connect_to_widget_input_10, all * type, all lists. Connect one to a target's converted input and type away.

    What you'd use it for

    The classic use is a "control strip" workflow: five different CLIP Text Encode nodes, or five samplers with different seeds, all driven from one PrimitivePlus node sitting at the top of the canvas. You get the tidy single-source-of-truth benefit that value nodes are for (see the node-plumbing doc - one value, many consumers), without a spiderweb of wires. It's especially nice in ComfyPanel's intended Photoshop workflow, where you want a compact panel of editable values rather than a sprawling graph.

    The fiddly bits

    Because the live-push is frontend glue, it can occasionally get out of sync after you reload a workflow. If you type a value and the target widget doesn't move, the fix is boring: reconvert the target widget to input, or disconnect and reconnect the wire to re-establish the tracking. When you actually run the graph, the values always flow correctly through the connection - the live preview is a nicety, not the mechanism. Empty values come through as [""], so a blank hub port acts like an empty string rather than a hard error, which can silently feed a blank prompt somewhere if you're not careful.

    Installing it

    It's part of ComfyPanel:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Ginolazy/ComfyPanel
    

    Restart ComfyUI - or search ComfyPanel in ComfyUI Manager. Requirements are the standard torch/numpy/Pillow plus kornia, scipy, and opencv-python; Manager will flag anything missing. No models to download, and you don't need the Photoshop plugin this pack is famous for - PrimitivePlus runs fine as a plain ComfyUI node.

    CategoryComfyPanel/Utils

    Inputs (0)

    No inputs

    Outputs (10)

    NameTypeDescription
    connect_to_widget_input_1*
    connect_to_widget_input_2*
    connect_to_widget_input_3*
    connect_to_widget_input_4*
    connect_to_widget_input_5*
    connect_to_widget_input_6*
    connect_to_widget_input_7*
    connect_to_widget_input_8*
    connect_to_widget_input_9*
    connect_to_widget_input_10*