Blender Scene Import
Camera, pose, and passes in one packet
- scene_packet_json
- camera_json
- pose_json
- camera_prompt
- summary_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_jsonandpose_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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| bridge_payload_json | STRING | — | |
| character_state_jsonopt | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| scene_packet_json | STRING | — |
| camera_json | STRING | — |
| pose_json | STRING | — |
| camera_prompt | STRING | — |
| summary_json | STRING | — |