Nodes/MKRShift_Nodes/Maya Image Output Plan
ComfyUI Node

Maya Image Output Plan

Decide where and how before anything gets written

By criskb·Created 7 months ago·Updated 5 months ago· 0
Maya Image Output Plan
    • image_output_plan_json
    • manifest_line
    • summary_json
    asset_path
    image_rolebase_color
    target_nameMKRShiftShader
    apply_modefile_texture
    target_object_name
    transport_plan_json

    Describe first, write later

    Here's a ComfyUI pattern that's worth getting comfortable with: a plan node that builds a JSON description, and a runtime node that acts on it. MKRMayaImageOutputPlan is the describe side of the pack's Maya image roundtrip. It doesn't write a single pixel - it produces a structured plan that says where the image should land, what role it plays, and how Maya should apply it. Its sibling MKRMayaImageOutput (with the actual IMAGE input) does the writing.

    It's part of MKRShift_Nodes, the big DCC-bridge pack by Cris K B. All the pack's host integrations work this way: plan node → JSON → runtime node → files on disk → add-on picks them up.

    The inputs

    Four required, two optional:

    • asset_path - where the image should be written (or where the asset already lives, for update-style flows). This is the field that matters most; everything downstream hangs off it.
    • image_role (default base_color) - what the image is for, so the add-on knows whether it's a texture map, a render, or something else.
    • target_name (default MKRShiftShader) - the shader/appearance name the image should attach to in Maya.
    • apply_mode - how Maya should apply it: file_texture (classic file-texture connection), aiImage (an Arnold image node), or viewport_preview (just a viewport preview, no shader wiring).
    • Optional target_object_name - narrow it to a specific object instead of the whole scene.
    • Optional transport_plan_json - if you're using the pack's transport lane (HTTP endpoint, watch folder, etc.), paste a transport plan here and it gets embedded, so the same JSON describes both delivery and application.

    The outputs

    Three strings, all JSON-ish:

    • image_output_plan_json - the actual plan (mkrshift_maya_image_output_plan_v1). Wire this into MKRMayaImageOutput.
    • manifest_line - a compact comma-separated line (host, role, mode, target, path) for manifests and copy decks.
    • summary_json - human-readable confirmation: has a path? which mode? transport plan attached?

    Install and the mental model

    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 - this node literally never touches media.

    The thing to internalize: you build the plan before you generate, so the same plan node feeds every run and only the generated images change. That's what makes the roundtrip repeatable - you're not re-deciding the file location every time you tweak a prompt. If you find yourself confused about why a plan node exists, remember the graph stays inspectable and auditable: you can read exactly what will be written and where, before a single byte hits disk.

    CategoryMKRShift Nodes/Addons/Maya

    Inputs (6)

    NameTypeDefaultDescription
    asset_pathSTRING
    image_roleSTRINGbase_color
    target_nameSTRINGMKRShiftShader
    apply_modeCOMBOfile_texture3 options: file_texture, aiImage, viewport_preview
    target_object_nameoptSTRING
    transport_plan_jsonoptSTRING

    Outputs (3)

    NameTypeDescription
    image_output_plan_jsonSTRING
    manifest_lineSTRING
    summary_jsonSTRING