Photoshop Export Output
Pixels written where the plan says
- images
- written_paths_json
- primary_path
- summary_json
MKRPhotoshopExportOutput executes a Photoshop export plan by writing your generated images to the path that plan describes. It's the runtime half of MKRPhotoshopExportPlan, and like every runtime node in this pack's host-addon family, it does exactly one physical thing: save files. Parse the plan, grab its asset path, write each frame, report back.
The mental model again, because it's the pack's whole architecture: the plan node decides what should happen (target layer name, placement mode, destination path); the output node does the file write; and the Photoshop UXP plugin (in addons/photoshop/) watches that path and does the actual placement - new layer, smart object, or replacing a layer's pixels. ComfyUI never touches Photoshop. It writes a file where the plugin can see it.
The inputs
- images - your IMAGE tensor. A batch becomes
stem_0000.png,stem_0001.png... so multi-frame results stay organized. - photoshop_export_plan_json - the plan from MKRPhotoshopExportPlan. The
asset_pathinside it is where the files land. Empty{}and the node still writes (with a warning) rather than dying, which is either forgiving or confusing depending on how you look at it. - filename_override (optional) - beats the plan's path when you're iterating and don't want to rebuild the plan.
The outputs
- written_paths_json - every path written, plus the plan it used.
- primary_path - the first file. The one to log or hand to downstream string-based nodes.
- summary_json - host, schema, target name (it digs the target layer name out of the plan), file count, warnings.
Installing
Pack install, same as everything here:
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
restart, or Manager → "MKRShift". No requirements.txt, no downloads.
Gotchas
The recurring theme of this whole bridge: the node's job ends at the filesystem. If you run the graph and Photoshop doesn't update, the plugin (or the path sharing) is the problem, not this node - check summary_json's paths and go look at the plugin. Second, suffix reality: the node writes what the path says, but warns and falls back to PNG if the suffix isn't something PIL can write. Don't plan on it producing PSDs or EXRs directly. And the plan's placement_mode (new_layer / smart_object / replace_layer) is metadata for the plugin - this node doesn't act on it, so if placement is wrong, that's a plan-side or plugin-side conversation, not a re-run of this node.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| photoshop_export_plan_json | STRING | {} | — |
| filename_overrideopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| written_paths_json | STRING | — |
| primary_path | STRING | — |
| summary_json | STRING | — |