Nodes/OpenRouter Studio/OpenRouter Studio · Asset
ComfyUI Node

OpenRouter Studio · Asset

Get your Studio edits and painted masks back into a normal ComfyUI workflow

By tahabahrami·Created about a month ago·Updated about a month ago· 0
OpenRouter Studio · Asset
    • image
    • mask
    • asset name
    • asset metadata JSON
    asset_id
    use_saved_masktrue

    Studio Mode's non-destructive editor lets you crop, layer, outpaint, expand the canvas, and paint inpaint/removal masks on generated images. The Asset node is the bridge that brings that work back into the graph. It loads a saved Studio asset as native ComfyUI IMAGE and MASK, so whatever you did in the editor becomes real inputs for your local upscaler, detailer, or inpaint pipeline.

    The reason this node has to exist is subtle and worth understanding. OpenRouter's dedicated image API advertises reference images but no explicit mask parameter. So a reference-image request can't carry your carefully painted mask - the pack doesn't pretend otherwise. Instead its editor exposes native IMAGE and MASK outputs via Save & Canvas, and the Asset node is how a saved mask re-enters ComfyUI as a first-class MASK tensor. If you're used to reference-only editing feeling like a shot in the dark, this is the honest alternative: a mask you painted with your own cursor, ready for a real local inpaint pass.

    How it works

    An asset_id is a UUID created automatically by the Job & Asset Center or the Image Editing Workspace and stored in a private SQLite asset store inside your ComfyUI user directory. The node looks up the record, decodes the image, and - with use_saved_mask left on (the default) - uses the mask you painted in Studio. If there's no saved mask, the MASK output is instead derived from image transparency, which marks any padding. The editor is non-destructive: each save creates a new asset branch and preserves the source, so you never lose the original generation.

    The asset_id contains no API key and no prompt - just a local identifier - which makes it safe to keep in shared workflows. What it isn't is portable: the asset itself lives on the ComfyUI installation that created it.

    Inputs and outputs

    Inputs: asset_id (empty until you create one - paste one or use the Studio "Open in Canvas" flow to wire it automatically) and use_saved_mask (default true).

    Outputs:

    • image (IMAGE)
    • mask (MASK)
    • asset name (STRING)
    • asset metadata JSON (STRING)

    How to use it

    Do the editing in Studio Mode, save, then add the Asset node. The Job & Asset Center gives you an Open in Canvas / drag-into-graph path that drops the node in already wired with the right asset_id - that's the frictionless route and the one the README recommends. Then wire image and mask into whatever local nodes you were planning to use the output with. Because the asset store is served only to the same-origin loopback Studio page, this stays private to your machine.

    Install

    Same shared install as the rest of the pack: ComfyUI 0.28.0+, ComfyUI Manager → search OpenRouter Studio → Install → restart → paste your OpenRouter key on the first-run screen. No model downloads. Note that this node doesn't call OpenRouter at all - it's pure local plumbing between Studio's store and your graph.

    Troubleshooting

    • "Studio asset … was not found on this ComfyUI installation": the ID doesn't exist here. Assets are local to the machine that created them, so a workflow copied from elsewhere won't bring the image along.
    • No mask output: if there's no saved mask and the source has no transparency, the mask output is effectively empty - re-save the asset with a painted mask if you need one.
    • Mask mismatch: if a saved mask's dimensions no longer match the image, the node refuses to load rather than silently distorting your careful paint job - that guard exists so corrupted stores fail loudly instead of quietly.

    It's the least glamorous node in the pack and arguably the most useful one. It's what turns Studio from a self-contained toy into an input source for your real local pipeline - and a painted mask you made yourself is worth more than a reference-image guess every time.

    CategoryOpenRouter Studio/Assets

    Inputs (2)

    NameTypeDefaultDescription
    asset_idSTRINGCreated automatically by the Job & Asset Center or Image Editing Workspace. It contains no API key or prompt.
    use_saved_maskBOOLEANtrueUse the mask painted in Studio when present. Otherwise the MASK output is derived from image transparency.

    Outputs (4)

    NameTypeDescription
    imageIMAGE
    maskMASK
    asset nameSTRING
    asset metadata JSONSTRING