Nodes/MKRShift_Nodes/Maya Scene Import
ComfyUI Node

Maya Scene Import

The packet that gets your scene metadata into ComfyUI

By criskb·Created 7 months ago·Updated 5 months ago· 0
Maya Scene Import
    • maya_packet_json
    • camera_json
    • material_manifest_json
    • summary_json
    maya_payload_json

    The front door of the Maya roundtrip

    If you're using ComfyUI as part of a Maya lookdev pipeline, the first thing you need is a way to get scene information - camera, material list, workspace - from the DCC into the graph. That's MKRMayaSceneImport. It's one of the "host addon" nodes in MKRShift_Nodes: the pack ships matching add-on scripts for each DCC (the Maya one lives in addons/maya/), and these import nodes turn what the add-on produces into clean, structured JSON inside ComfyUI.

    So the important thing to know up front: this node does not load a Maya scene. There's no geometry, no viewport, no connection to a live Maya session. It parses a JSON payload - which your Maya add-on, or your own script, hands it - and normalizes it into a packet ComfyUI can reason about.

    How it works

    You feed it one input: maya_payload_json, a multiline string. The node parses it (tolerantly - bad JSON gets a warning, not a crash), pulls out the fields it cares about, and rebuilds them into a mkrshift_maya_bridge_v1 packet containing:

    • scene_name - the .ma / scene name (defaults to untitled.ma).
    • workspace - the Maya project workspace path.
    • camera - camera data, if the payload included any.
    • materials - the list of material/shader entries.

    Out come four outputs: maya_packet_json (the normalized packet - feed this to downstream plan nodes), camera_json, material_manifest_json, and summary_json (scene name + material count + warnings). The summary output is the one to wire to a text note if you just want to see "ok, 14 materials came through".

    Why the packet-first design

    This is the pack's whole philosophy in miniature, and it's worth internalizing: the import nodes normalize, the plan nodes describe, and the runtime nodes execute. Nothing talks to Maya directly from the ComfyUI side - everything is a JSON contract the add-on and the graph both understand. That's slower to set up than a socket hack, but it means the graph stays inspectable and the same payload shape works whether you're on a live roundtrip or just passing files around. It's plumbing, and it's the good kind.

    Install and gotchas

    cd ComfyUI/custom_nodes
    git clone https://github.com/criskb/MKRShift_Nodes
    

    Restart, or install "MKRShift Nodes" via ComfyUI Manager. No pip dependencies, no models, no ffmpeg needed for this one. The add-on scaffold ships in the repo under addons/maya/ if you want the reference implementation of what the payload should look like.

    Where people trip: feeding this node the wrong payload shape. It's lenient about malformed JSON but it only looks for scene_name, workspace, camera, and materials - if your payload uses different keys, you get defaults and an empty material list, and it's easy to miss. Check summary_json's material_count before you assume the scene came through intact.

    CategoryMKRShift Nodes/Addons/Maya

    Inputs (1)

    NameTypeDefaultDescription
    maya_payload_jsonSTRING

    Outputs (4)

    NameTypeDescription
    maya_packet_jsonSTRING
    camera_jsonSTRING
    material_manifest_jsonSTRING
    summary_jsonSTRING