Nodes/ComfyUI Nox Prompter/Nox Prompt Camera Master
ComfyUI Node

Nox Prompt Camera Master

One dropdown stack for shot, lens, and motion language

By jamesk9526·Created about a year ago·Updated 28 days ago· 1
Nox Prompt Camera Master
    • camera_prompt
    • framing_summary
    • rigging_notes
    • preset_status
    ◄shot_sizeMedium Shot►
    ◄lens_angleThree-Quarter►
    ◄camera_basicDolly In►
    ◄lens_focalMedium►
    ◄lens_typeSingle Shot►
    ◄compositionBalanced►
    ◄time_of_dayNone►
    ◄motion_typeNone►
    ◄camera_advancedSteadicam Glide►
    ◄camera_rigCinematic►
    ◄special_effectNone►
    ◄color_toneNone►
    ◄visual_styleNone►
    ◄focus_subject►
    ◄focus_environment►
    ◄movement_beats►
    ◄camera_motions►
    ◄accent_keywords►
    ◄camera_language►
    ◄rig_supportstabilized gimbal team►
    ◄safety_considerationsconfirm clearance paths and harness checks►
    ◄additional_notes►
    ◄shot_size_custom►
    ◄lens_angle_custom►
    ◄camera_basic_custom►
    ◄lens_focal_custom►
    ◄lens_type_custom►
    ◄composition_custom►
    ◄time_of_day_custom►
    ◄motion_type_custom►
    ◄camera_advanced_custom►
    ◄camera_rig_custom►
    ◄special_effect_custom►
    ◄color_tone_custom►
    ◄visual_style_custom►
    ◄preset_actionnone►
    ◄preset_name►

    Naming a physical camera is one of the highest-leverage phrases you can put in a prompt on modern models - the encoder was trained on real captions, so "85mm, medium close-up, low angle" does more work than "beautiful, detailed" ever did. Nox Prompt Camera Master is the pack's way of writing that language for you. Instead of remembering the difference between a dutch angle and a low angle, you pick shot_size, lens_angle, and camera_basic from dropdowns and it composes a camera prompt block, a framing summary, and rigging notes.

    The README flags it as having an alias, NoxPromptCameraLanguage, for legacy graphs - if you have an old workflow with that node name, this is the same thing, so don't go hunting for a separate node. Its intended role in the pack is as the camera half of the "Camera Master + Lighting Master feed the Builder" pipeline.

    How it works

    Same machinery as the rest of the pack: curated dictionaries in constants.py for each dropdown, resolved into prompt fragments and summaries, assembled into the three outputs. shot_size, lens_angle, camera_basic, and camera_advanced cover framing; lens_focal and lens_type handle optics; motion_type, camera_motions, movement_beats, and camera_rig cover camera movement; time_of_day, color_tone, and visual_style tie into the look; and focus_subject / focus_environment keep the attention split under your control. There are safety-focused fields too - safety_considerations and rig_support - which the author clearly carries through every node in this pack.

    Every dropdown has a Custom Input option that unlocks a *_custom field, and there are free-text slots (accent_keywords, camera_language, additional_notes) for the stuff vocabulary can't say.

    Inputs and outputs that matter

    The three required fields are shot_size, lens_angle, and camera_basic - set those three and you already have a credible camera prompt. lens_focal is the one I'd add next; on sentence-based models it's cheap and effective. Outputs: camera_prompt (the text to encode), framing_summary (what the framing actually is, in plain English), rigging_notes (the technical notes you'd give a crew - keep these out of the encode and in your production doc), and preset_status. The camera_prompt is what you feed into Nox Prompt Builder's camera_prompt input or into Pipeline Combiner.

    Installing it

    Whole pack, one install. ComfyUI Manager: search "Nox Prompter", install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jamesk9526/NoxPrompter-ComfyUI-CustomNode
    

    Restart, find the NoxPrompter category. Pure Python, no extra dependencies.

    Gotchas

    The README's clone URL and folder name are stale (ComfyNoxPrompter); the repo is the one above. Presets land in presets/ inside the pack folder, so watch write permissions. And a real caveat about how this reads: camera language is at its most powerful on LLM-encoded models like Wan 2.2 and Flux-style encoders - on SDXL-lineage checkpoints the same phrases still help, but they compete with booru-tag vocabulary, so keep the camera clause compact and don't bury your subject tags under it.

    CategoryNoxPrompter/Camera

    Inputs (37)

    NameTypeDefaultDescription
    shot_sizeCOMBOMedium Shot22 options: None, Close-up, Medium Close-up, Medium Shot, Medium Long Shot, Long Shot, +16
    lens_angleCOMBOThree-Quarter21 options: None, Over-the-shoulder, High Angle, Low Angle, Tilted Angle, Aerial Shot, +15
    camera_basicCOMBODolly In25 options: None, Dolly In, Push-in, Pull-out, Pan Right, Pan Left, +19
    lens_focaloptCOMBOMedium19 options: None, Medium, Wide Angle, Long, Telephoto, Fisheye, +13
    lens_typeoptCOMBOSingle Shot20 options: None, Single Shot, Two Shot, Three Shot, Group Shot, Establishing Shot, +14
    compositionoptCOMBOBalanced21 options: None, Centered, Balanced, Right-weighted, Left-weighted, Symmetrical, +15
    time_of_dayoptCOMBONone25 options: None, Daytime, Nighttime, Dusk, Sunset, Dawn, +19
    motion_typeoptCOMBONone29 options: None, Running, Skateboarding, Soccer, Tennis, Ping Pong, +23
    camera_advancedoptCOMBOSteadicam Glide33 options: None, Handheld, Compound, Following, Orbit, Steadicam Glide, +27
    camera_rigoptCOMBOCinematic12 options: None, Cinematic, Noir, Documentary, Hyperreal, Dreamscape, +6
    special_effectoptCOMBONone21 options: None, Tilt-shift, Time-lapse, Light Trails, Chromatic Bloom, Particle Swarm, +15
    color_toneoptCOMBONone19 options: None, Warm Tone, Cool Tone, High Saturation, Low Saturation, Pastel Tone, +13
    visual_styleoptCOMBONone35 options: None, Felt Style, 3D Cartoon, Pixel Art, Puppet Animation, 3D Game, +29
    focus_subjectoptSTRING—
    focus_environmentoptSTRING—
    movement_beatsoptSTRING—
    camera_motionsoptSTRING—
    accent_keywordsoptSTRING—
    camera_languageoptSTRING—
    rig_supportoptSTRINGstabilized gimbal team—
    safety_considerationsoptSTRINGconfirm clearance paths and harness checks—
    additional_notesoptSTRING—
    shot_size_customoptSTRING—
    lens_angle_customoptSTRING—
    camera_basic_customoptSTRING—
    lens_focal_customoptSTRING—
    lens_type_customoptSTRING—
    composition_customoptSTRING—
    time_of_day_customoptSTRING—
    motion_type_customoptSTRING—
    camera_advanced_customoptSTRING—
    camera_rig_customoptSTRING—
    special_effect_customoptSTRING—
    color_tone_customoptSTRING—
    visual_style_customoptSTRING—
    preset_actionoptCOMBOnone4 options: none, save, load, list
    preset_nameoptSTRING—

    Outputs (4)

    NameTypeDescription
    camera_promptSTRING—
    framing_summarySTRING—
    rigging_notesSTRING—
    preset_statusSTRING—