Maya Material Plan
Describe the shader roundtrip before you run it
- maya_material_plan_json
- manifest_line
- summary_json
Plan the shader, don't touch it yet
The MKRMayaMaterialPlan node is the "describe" half of getting generated textures back onto a Maya shader. It produces a structured JSON plan that says which asset to use, which shader to attach it to, which object (optionally), and how Maya should apply it. The actual file writing happens later in MKRMayaMaterialOutput. Think of it as writing the delivery note before you ship.
It's part of MKRShift_Nodes, the DCC-bridge pack by Cris K B. Every host integration in the pack follows this plan-then-execute shape, which is the main thing to wrap your head around: the plan node never touches media, and the runtime node never decides where things go.
The inputs
Four required, one optional:
asset_path- the texture/image file the material plan refers to. The add-on will use this path when it applies the texture to the shader.target_shader_name(defaultMKRShiftShader) - which shader node to assign to.target_object_name- the object whose material you're replacing. Leave blank for "assign wherever this shader is used".apply_mode- the meat of it:file_texture(wire a file texture into the shader),aiStandardSurface(build/assign an Arnold standard surface), orviewport_preview(viewport-only, no real shader graph changes).- Optional
transport_plan_json- embed a transport plan from the pack's network lane so the same JSON describes both delivery and application.
For a beginner, asset_path and apply_mode are the two to actually reason about. file_texture is the safe default that works in any renderer; aiStandardSurface is when you specifically want Arnold.
The outputs
maya_material_plan_json- the plan (mkrshift_maya_material_plan_v1), ready forMKRMayaMaterialOutput.manifest_line- a compact CSV-ish line (shader, object, mode, path) for manifests.summary_json- whether a path is set, whether a transport plan rode along, and warnings.
Install and the pattern
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.
The trap with plan nodes is expecting them to do something. If you run MKRMayaMaterialPlan and nothing happens to your Maya scene, that's correct - you've only written a note. The payoff is that the note is reusable and inspectable: same plan node, new generated textures, and every run is consistent because the destination and mode never drift. If you're piping textures from ComfyUI into Maya lookdev repeatedly, that repeatability is the whole point.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| asset_path | STRING | — | |
| target_shader_name | STRING | MKRShiftShader | — |
| target_object_name | STRING | — | |
| apply_mode | COMBO | file_texture | 3 options: file_texture, aiStandardSurface, viewport_preview |
| transport_plan_jsonopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| maya_material_plan_json | STRING | — |
| manifest_line | STRING | — |
| summary_json | STRING | — |