ComfyUI Node

*Portal

The receiving end of a same-group wire-free bus

By drupsys·Created 6 months ago·Updated 6 months ago· 0
*Portal
    • out_0
    • out_1
    • out_2
    • out_3
    • out_4
    • out_5
    • out_6
    • out_7
    • out_8
    • out_9
    • out_10
    • out_11
    • out_12
    • out_13
    • out_14
    • out_15
    ref_name

    *Portal (class 0nedark_PortalOut) is the consumer half of eks-spaghetti's scoped bus - the matching receiver for &Portal, the same way *Node pairs with &Node. Pick a portal name from a dropdown and up to sixteen outputs appear carrying the values the &Portal in your current group gathered up. No wire, and - unlike the global &Node/*Node pair - the name only matches portals in the same group context, so you can reuse names freely across different groups.

    It's the quiet sibling. If &Portal is the "send" and *Node is the general-purpose receive, *Portal is the receive you reach for when you're building a reusable group and don't want a global ref name to collide with itself the moment you duplicate the group. The title makes the pairing obvious: name -> Portal (#<id>).

    How it works

    Identical machinery to *Node, scoped. The node derives its group scope from its execution ID's UUID prefix, builds the key scope + "/" + ref_name, and pulls whatever values the &Portal stored there - the same actual Python objects, so an IMAGE in is an IMAGE out. Outputs are padded to the pack's 16-output cap, and anything missing comes back as an ExecutionBlocker, which is ComfyUI's way of saying "this node and everything downstream doesn't run this pass" rather than erroring loudly.

    Ordering is handled the same way too: when you queue, the pack's JavaScript injects a hidden _ref_trigger dependency from the matching &Portal so it executes first. The visible select_portal combo widget is the only control you really touch.

    The inputs and outputs that matter

    • ref_name - the only backend input; the frontend hides the text field and gives you a searchable select_portal dropdown listing the &Portal nodes in scope.
    • out_0 … out_15 - the outputs, all wildcard *, with names and types auto-synced to whatever is connected to the &Portal's inputs.

    Install

    Search eks-spaghetti (registered as 0nedark-eks-spaghetti) in ComfyUI Manager, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/drupsys/eks-spaghetti
    

    Restart ComfyUI. No dependencies, no model files.

    Where people get burned

    The same trap as &Portal, reversed: scope. If the &Portal isn't in the same group as this node, the consumer finds nothing and goes grey - no error, just blocked outputs. Check that first, then the ref name spelling, then that the &Portal isn't bypassed or disabled. Because every output is wildcard *, there's also no type checking: you can wire an IMAGE into a LATENT socket and discover the mistake only when the run fails. And as with every node in this pack, it relies on recent ComfyUI features and a patched graphToPrompt - on an older frontend the dropdown list and ordering can break, so keep ComfyUI current.

    Categoryutils

    Inputs (1)

    NameTypeDefaultDescription
    ref_nameSTRING

    Outputs (16)

    NameTypeDescription
    out_0*
    out_1*
    out_2*
    out_3*
    out_4*
    out_5*
    out_6*
    out_7*
    out_8*
    out_9*
    out_10*
    out_11*
    out_12*
    out_13*
    out_14*
    out_15*