Nodes/studio_universal_gateway/Studio Output Gateway
ComfyUI Node

Studio Output Gateway

Get results out of the graph and onto a dashboard

By workdsammy-art·Created 2 months ago·Updated 2 months ago· 0
Studio Output Gateway

      The Studio Output Gateway is the answering half of the studio_universal_gateway pack. The Input Gateway turns your workflow's knobs into form fields on a web dashboard; this node takes whatever the workflow produced and sends it back to that same dashboard. Same trick, other direction. If you're building a "studio" experience - a clean /gateway page where someone fills in a form, hits run, and watches results land - this is the node that makes the "results land" part happen.

      On the canvas it looks like a terminal node: dynamic input sockets on the left, nothing on the right. That's the point. It's an output node (is_output_node in the schema), which also means ComfyUI treats it as always-execute - no caching, no "nothing changed, skip it" - so the dashboard always gets a fresh read.

      How it works

      Like its sibling, the node's declared schema is empty. The real sockets are created at runtime by the pack's JS extension: wire into the last link_N input and a new row appears. Each row is one thing you want surfaced on the dashboard - connect a Save Image, a prompt string, a seed value, whatever.

      When the workflow runs, the node's execute() walks every row and does the mapping. The per-row metadata you set (a name, a widget type like text/image/number, a position of left/middle/right) rides along with the data, so the dashboard knows how to render each result. Images get special handling - a filename-shaped dict is unpacked into the file name, subfolder, and output type so the dashboard can point at the actual file. Strings and numbers pass through as-is; lists and dicts get JSON-serialized if they can be.

      The result is emitted as a studio_assets UI payload (ui={"studio_assets": [...], "link_states": {...}}), which is ComfyUI's standard UI-message mechanism. The dashboard reads it after each run and shows your outputs - images, metrics, text - without anyone touching the graph.

      One honest caveat from the source itself: image links often arrive as None because the actual filename lives in the node's executed message rather than the link value. The node detects a connection by key presence rather than by value, so a wired-but-empty image slot is treated as "connected, nothing to show yet" instead of an error. You'll occasionally see a blank row on the dashboard for that reason; it's a known rough edge, not something you misconfigured.

      Installing it

      Same pack, same steps as the Input Gateway. ComfyUI Manager → search "studio_universal_gateway" → Install, or:

      cd ComfyUI/custom_nodes
      git clone https://github.com/workdsammy-art/studio_universal_gateway
      # restart ComfyUI
      

      requirements.txt declares no external dependencies - everything is provided by ComfyUI, and the dashboard ships pre-built in dist/ (Vue 3, PrimeVue, Tailwind) with no build step. An orange "Gateway" button appears in the ComfyUI menu; that opens the dashboard.

      Where people get burned

      • There's nothing to wire downstream. If you're hunting for an output socket, you're missing the point - the "output" is the UI payload the dashboard consumes. If you don't use the /gateway dashboard, this node is mostly pointless; it's one half of a two-node system, not a general-purpose exporter.
      • Queue it from the dashboard, not the graph. It'll still emit its payload if you run the graph directly, but the flow is designed around /gateway - the Input Gateway on the other end won't apply your values unless the dashboard's /gateway/run route does the substitution.
      • It's brand new. Version 0.1.0, a single author, and it behaves like it in the corners. Works for the core dashboard loop; plan for rough edges and updates.

      Worth knowing: this is the dashboard-flavored version of a very old ComfyUI idea - the node that exists only to collect and surface results, like a save/display node that routes to the frontend instead of to disk. If you've ever wanted a "for the boss" view of a workflow, this is the thin end of that wedge.

      CategoryStudio

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs