Nodes/MKRShift_Nodes/Photoshop Image Output Plan
ComfyUI Node

Photoshop Image Output Plan

Plan the layer before the pixels exist

By criskb·Created 7 months ago·Updated 5 months ago· 0
Photoshop Image Output Plan
    • image_output_plan_json
    • manifest_line
    • summary_json
    asset_path
    image_rolelayer_art
    target_nameMKRShift Result
    apply_modenew_layer
    blend_modenormal
    target_document_name
    transport_plan_json

    MKRPhotoshopImageOutputPlan builds the plan that routes live image output into Photoshop: where the file lands, what role it plays, what layer it should become, and how to place it. It's a pure JSON builder - nothing is written or imported - and its output drives MKRPhotoshopImageOutput, which does the writing, and then the Photoshop UXP plugin, which does the placement.

    This is the node you'd reach for when you're iterating a look and want each generation to land in Photoshop as a real layer, not dumped into a downloads folder. Because the plan is inspectable text, you can change the whole handoff by editing four fields, and the pack's manifest_line output means a delivery or review node can know exactly which file became which layer.

    The inputs that matter

    • asset_path - the destination path for the generated file. Shared filesystem, reachable by ComfyUI and Photoshop. The one field that genuinely has to be right.
    • apply_mode - how the plugin should place the asset:
      • new_layer - default. Drop it in as a fresh layer. Right for iterating looks without clobbering anything.
      • replace_layer_pixels - swap the pixels of an existing layer, keeping its name, transform, and stacking. The compositing-in-place choice.
      • smart_object - place as a linked smart object so re-renders update without re-importing.
    • target_name - the layer name (MKRShift Result default). Same name across runs → the plugin updates rather than stacks.
    • image_role - a free-text role label (layer_art default) the plugin can use to sort or route assets. Metadata, but metadata that keeps live sessions organized.

    Optional: blend_mode (default normal) passes a blend hint to the plugin, target_document_name aims at a specific open document if you run several, and transport_plan_json attaches a transport plan.

    The outputs

    • image_output_plan_json - the plan, schema mkrshift_photoshop_image_output_plan_v1. The wire to MKRPhotoshopImageOutput.
    • manifest_line - a compact target,apply_mode,path line for manifests.
    • summary_json - target, mode, role, path presence, warnings.

    Installing

    Pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/criskb/MKRShift_Nodes
    

    restart, or Manager → "MKRShift". No dependencies, no models.

    Gotchas

    Pure-builder caveat, repeated because it keeps biting: no warnings means well-formed, not workable. A plan with an unreachable asset_path is perfectly clean. And in a live look-dev loop, new_layer with a fixed target_name is your friend - it's how the plugin updates one layer instead of building a stack of "MKRShift Result 1, 2, 3..." that you'll have to delete. Keep target_name stable while iterating, change it when you actually want a new layer. The plugin is the last mile; this node only gets a file to a disk.

    CategoryMKRShift Nodes/Addons/Photoshop

    Inputs (7)

    NameTypeDefaultDescription
    asset_pathSTRING
    image_roleSTRINGlayer_art
    target_nameSTRINGMKRShift Result
    apply_modeCOMBOnew_layer3 options: new_layer, replace_layer_pixels, smart_object
    blend_modeoptSTRINGnormal
    target_document_nameoptSTRING
    transport_plan_jsonoptSTRING

    Outputs (3)

    NameTypeDescription
    image_output_plan_jsonSTRING
    manifest_lineSTRING
    summary_jsonSTRING