Nodes/MKRShift_Nodes/Blender Scene Import
ComfyUI Node

Blender Scene Import

Camera, pose, and passes in one packet

By criskb·Created 7 months ago·Updated 5 months ago· 0
Blender Scene Import
    • scene_packet_json
    • camera_json
    • pose_json
    • camera_prompt
    • summary_json
    bridge_payload_json
    character_state_json

    If you use Blender to set up a shot and ComfyUI to render it, MKRBlenderSceneImport is where the two halves meet. It takes one bridge_payload_json - the packet produced by the pack's Blender add-on, which bundles your camera, armature pose, and render passes - and breaks it into the pieces you actually want: a normalized scene packet, separate camera and pose JSON, and a camera prompt written in words a diffusion model understands. It's the entry node for the whole Blender → ComfyUI roundtrip.

    It's part of MKRShift_Nodes by criskb, installed via ComfyUI Manager (search "MKRShift_Nodes") or git clone https://github.com/criskb/MKRShift_Nodes into custom_nodes/, then restart. No model downloads.

    How it works

    Under the hood it runs the packet through normalize_scene_packet, which makes the payload's shape predictable regardless of what the add-on sent, then derives a camera_prompt from the camera's lens, position, and rotation. If you pass an optional character_state_json (from MKRCharacterState), the character's name gets threaded into the prompt so the subject is named instead of anonymous.

    Outputs, and where they go

    • scene_packet_json - the normalized, canonical packet; wire this into the other bridge/return-plan nodes so they share one source of truth.
    • camera_json and pose_json - the camera and armature data split out for the nodes that want just one of them (MKRBlenderCameraShot, for instance).
    • camera_prompt - ready to feed a CLIP encoder.
    • summary_json - scene name, lens, resolution ratio, bone count, pass count, and any warnings.

    Input side, there's just bridge_payload_json (required) and character_state_json (optional). That's it. This node is deliberately boring on purpose - the complexity lives in the add-on that builds the payload.

    Real talk about the bridge

    The one thing that trips people up: this node does nothing until it receives a real payload from the Blender side. The payload doesn't materialize out of thin air - you need the pack's blender_extension/mkrshift_blender_bridge/ add-on installed in Blender to export the scene packet. Without it you'll be hand-pasting JSON into a text field and wondering why it's not magic. It isn't magic; it's a well-defined contract. There's also essentially no community chatter about this node yet, so the README and the add-on's own docs are your best friends. Worth it if you're doing camera-matched work - the alternative is typing "low angle 85mm" into a prompt box and hoping.

    CategoryMKRShift Nodes/Addons/Blender

    Inputs (2)

    NameTypeDefaultDescription
    bridge_payload_jsonSTRING
    character_state_jsonoptSTRING

    Outputs (5)

    NameTypeDescription
    scene_packet_jsonSTRING
    camera_jsonSTRING
    pose_jsonSTRING
    camera_promptSTRING
    summary_jsonSTRING