Maya Material Output
Write the textures, hand the roundtrip to the add-on
- images
- written_paths_json
- primary_path
- summary_json
The execute half of the material roundtrip
MKRMayaMaterialOutput is where generated textures stop being tensors and become files your Maya add-on can grab. You feed it the images you generated plus the plan from MKRMayaMaterialPlan, it writes each image to the asset_path the plan specified, and it reports exactly which files were written. No live Maya session involved - file handoff, and the add-on does the actual shader wiring on its end.
It's part of MKRShift_Nodes, the DCC-bridge pack by Cris K B, and it's built on the same _BaseSingleAssetPlanRuntime base that serves every host's material/output nodes. So its behavior is identical across Maya, Nuke, Photoshop, After Effects, Premiere, and the rest - learn it once.
How it works
Two required inputs: images (a standard IMAGE batch - one map or a stack of maps) and maya_material_plan_json (the plan string from MKRMayaMaterialPlan). The node parses the plan, pulls the asset path (it also tolerates a nested asset object with a path, in case a transport plan wrapped it), writes every image in the batch to disk, and returns the results.
One optional input: filename_override, which swaps out the filename while keeping the planned directory.
The outputs
Three strings, same shape as the other runtime nodes:
written_paths_json- every path written plus the plan used. The audit trail, and the thing to feed a manifest node.primary_path- the first written path as a convenience string.summary_json- host, schema, target shader name, count, primary path, warnings.
Note the summary_json picks up the target name from the plan (target_shader_name in the Maya case), so you can confirm the right shader was targeted at a glance.
Install and the honest gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart, or install "MKRShift Nodes" via ComfyUI Manager. No pip deps, no models, no ffmpeg.
Two things to keep straight. First, writing files is all this node does - if you're expecting the Maya shader to visibly update when you run this, remember the pack's architecture: ComfyUI writes, the add-on applies. The node's job ends at "files are on disk with a matching plan." Second, batch order matters: if your batch has 5 maps and the plan expects base_color/normal/roughness/etc. in a specific order, the files are written in batch order - name them deliberately via filename_override or plan the naming so the add-on can tell them apart. That's the usual place a roundtrip silently goes wrong.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| maya_material_plan_json | STRING | {} | — |
| filename_overrideopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| written_paths_json | STRING | — |
| primary_path | STRING | — |
| summary_json | STRING | — |