Nodes/MKRShift_Nodes/Blender Camera Shot
ComfyUI Node

Blender Camera Shot

Your Blender camera, translated into words a diffusion model gets

By criskb·Created 7 months ago·Updated 5 months ago· 0
Blender Camera Shot
    • camera_prompt
    • shot_recipe_json
    • summary_json
    camera_json
    subject_name
    intent_hint

    The core frustration of camera-matched AI work is that Blender stores a camera as numbers - focal length, location, rotation - and diffusion models only understand sentences. MKRBlenderCameraShot is the translation layer: feed it camera_json, and it writes a prompt like "three quarter composition, low angle viewpoint, 85mm lens" plus a structured shot recipe. No API, no key, no magic - it's deterministic text generation from your camera data, which is exactly what you want when you're trying to reproduce a real framing across generations.

    It's part of MKRShift_Nodes by criskb. Install via ComfyUI Manager (search "MKRShift_Nodes") or git clone https://github.com/criskb/MKRShift_Nodes into custom_nodes/, restart. It appears under MKRShift Nodes → Addons → Blender.

    How it works

    The node takes the camera payload and buckets your lens into a category (lens_bucket - wide / normal / tele), reads the resolution ratio, and uses the camera's position and rotation to describe the viewpoint. Crucially, it doesn't need the full scene packet - just the camera sub-object, so you can wire it straight off a camera_json output from MKRBlenderSceneImport or paste a camera payload on its own.

    The three inputs

    • camera_json - required, the camera data from the Blender bridge.
    • subject_name - optional; names the character or subject so the prompt isn't "a subject".
    • intent_hint - optional free text for the director's intent ("dramatic reveal", "product beauty shot") that gets folded into the prompt.

    Outputs: camera_prompt (the sentence to feed your CLIP encoder), shot_recipe_json (a structured v1 recipe with camera name, lens, resolution, location, and the prompt), and summary_json (camera name, aspect ratio, lens, warnings).

    Where people get burned

    The prompt quality depends entirely on the quality of the camera payload. A default Blender camera sitting at the origin with no rotation produces a prompt that's honest but uninteresting - "0mm lens, level viewpoint" - because the data genuinely says that. So set up your camera in Blender like you mean it. Also, this node describes the camera; it does not move it or hand you a ControlNet conditioning for it. If you want the geometry to force the framing, that's a separate workflow. As a text-generation utility it's solid, and it beats typing "dynamic camera angle" and praying.

    CategoryMKRShift Nodes/Addons/Blender

    Inputs (3)

    NameTypeDefaultDescription
    camera_jsonSTRING
    subject_nameSTRING
    intent_hintSTRING

    Outputs (3)

    NameTypeDescription
    camera_promptSTRING
    shot_recipe_jsonSTRING
    summary_jsonSTRING