Photoshop Image Output
Write your result to the path the Photoshop layer plan expects
- images
- written_paths_json
- primary_path
- summary_json
MKRPhotoshopImageOutput is the runtime half of the Photoshop image handoff lane - the counterpart to MKRPhotoshopImageOutputPlan. It takes your generated images and writes them to the asset path described by an image-output plan, so the Photoshop UXP plugin can pick them up as a new layer, a replacement layer, or a smart object.
If you've read about MKRPhotoshopExportOutput, this will feel familiar - it's the same base mechanism (parse plan, write frames, report paths). The difference is which plan family it consumes and what that says about your workflow. The "export" lane is for getting a finished result back into a document. This "image output" lane is for live look-dev - writing plates and layer art continuously while you iterate, with the plan carrying image-role metadata the plugin uses to route each asset. Both are valid; pick the lane that matches your loop. Fast iteration → image output. One-shot delivery → export.
The inputs
- images - your IMAGE tensor. Batches become numbered sequences (
name_0000.png...), which is what you want when iterating on a frame range. - image_output_plan_json - the plan from MKRPhotoshopImageOutputPlan. Its
asset_pathis the destination; itsapply_mode,image_role,blend_mode, andtarget_nametravel along as metadata for the plugin. - filename_override (optional) - bypasses the plan's path when you're on a quick pass.
The outputs
- written_paths_json - all written paths plus the plan.
- primary_path - the first file written. Handy for logs and for chaining into manifest nodes.
- summary_json - host, apply_mode, image_role, count, primary path, warnings. Your first stop when a file doesn't show up in Photoshop.
Installing
The usual single-pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
restart, or ComfyUI Manager → "MKRShift". No requirements, no models.
Gotchas
Same bridge reality as the rest of the lane: this node writes files, the Photoshop plugin does placement, and the two are connected only by a shared path. If you re-run the graph and Photoshop doesn't react, don't debug this node - check the path it actually wrote (primary_path) and the plugin. Second, the plan's apply_mode and blend_mode are metadata, not behavior here: this node ignores them and just writes. If the layer comes back with the wrong blend mode, that's the plugin honoring the plan - adjust the plan, not the output node. And expect PNG unless the plan's path says otherwise; the writer warns and falls back to PNG on exotic suffixes.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| image_output_plan_json | STRING | {} | — |
| filename_overrideopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| written_paths_json | STRING | — |
| primary_path | STRING | — |
| summary_json | STRING | — |