Nodes/Photoshop Bridge/Photoshop Live Canvas
ComfyUI Node

Photoshop Live Canvas

The input side of drawing-in-Photoshop, render-in-ComfyUI

By ericpaulsnowden·Created 2 months ago·Updated 4 days ago· 1
Photoshop Live Canvas
    • IMAGE
    • MASK
    auto_queueOn

    This is the node that makes the pack's realtime loop realtime: Photoshop Live Canvas serves a fresh snapshot of whatever you're currently drawing on in Photoshop, pushed to the graph after every stroke, with no saving. Sketch a face, and a moment later your workflow re-renders from the newest canvas. It's the "draw here, watch it come alive" input that sits at the start of the Live workflow, feeding a KSampler that's steered by Photoshop Live Prompt and Photoshop Live Creativity, with the result shown back inside Photoshop by Photoshop Live Preview.

    The plugin requirement is non-negotiable

    Unlike most of the pack, there's no file-based fallback here. Capture-without-a-save is genuinely impossible through a file watcher - a watcher only ever sees saves. So this node needs the Tier 2 UXP plugin installed and Live Mode toggled on in its panel. With that on, the plugin streams a keep-latest live frame over the WebSocket after every stroke (a lightweight change-detect poll plus a downscaled capture - roughly sub-second). No file is written to disk, ever; frames are ephemeral and die with the connection.

    The CAPTURE SIZE control in the panel (512 / 768 / 1024, persisted) sets the live frames' long side. The bundled example workflow is tuned for SD1.5 at the smaller sizes; if you're on an SDXL-class model, 1024 gives noticeably sharper results at the cost of slower re-renders.

    What it outputs

    • IMAGE - the newest captured frame.
    • MASK - always all zeros, present only for wiring parity. The live stream is JPEG and carries no alpha, so you can't derive a mask from it; build masks downstream from the image if you need them.

    The single widget, auto_queue, defaults to On: a new stroke re-queues the workflow automatically, coalesced so rapid strokes never pile up a backlog of runs. Set it Off and strokes still stream - the node just holds the newest frame until you queue manually. The seed in the example loop is fixed on purpose, so only your drawing and your prompt change the output; and the node reports an unchanged frame as unchanged, so the graph doesn't burn GPU re-rendering nothing.

    Install & the one setup mistake

    Pack install is the usual (Manager → Install via Git URL, or clone + pip install -r requirements.txt with ComfyUI's own Python, restart) plus the Photoshop plugin - this node is dead without it. The workflow the author ships (live_drawing_lcm.json) is tuned for a few-step model: lcm sampler, 4 steps, CFG 2. Feed it a plain SD1.5/SDXL checkpoint and you get the classic trap - output that looks 99% like your drawing and a prompt that does nothing. Swap in something like DreamShaper-8-LCM, or add an LCM LoRA, or just use a normal sampler at ~20 steps (5× slower). Expect about a second stroke-to-render on a strong GPU - live iteration, not 30fps video. Pre-1.0, actively developed.

    CategoryPhotoshop Bridge/Live Rendering (requires Photoshop)

    Inputs (1)

    NameTypeDefaultDescription
    auto_queueCOMBOOnWhether a new stroke in Photoshop automatically re-queues the workflow. 'On' re-queues (coalesced, so rapid strokes don't pile up runs). 'Off' still streams every stroke -- it just waits for you to queue manually to pick up the newest one.

    Outputs (2)

    NameTypeDescription
    IMAGEIMAGEThe newest frame captured from the Photoshop canvas.
    MASKMASKAlways all zero -- the live stream has no alpha channel to derive a mask from. Present for wiring parity with the other nodes in this pack.