Nodes/Wangz_camera_prompt_studio/๐Ÿ“ท Wangz Camera Prompt Studio
ComfyUI Node

๐Ÿ“ท Wangz Camera Prompt Studio

Your whole camera grammar in one node โ€” zero models, zero API keys, just prompt glue

By wjs0502m-designยทCreated 3 months agoยทUpdated 3 months agoยท 0
๐Ÿ“ท Wangz Camera Prompt Studio
    • prompt
    โ—„horizontal_anglefront-right quarterโ–บ
    โ—„vertical_angleslightly high-angleโ–บ
    โ—„shot_distanceclose-upโ–บ
    โ—„lens_type85mm portrait lensโ–บ
    โ—„depth_of_fieldshallow depth of field, bokeh backgroundโ–บ
    โ—„film_filternoneโ–บ
    โ—„mood_presetnoneโ–บ
    โ—„base_promptJapanese Gothic-style ribbon-decorated maid girlโ–บ
    โ—„tail_params--ar 16:9 --v 6.0โ–บ
    โ—„separatorcommaโ–บ
    โ—„include_angle_prefixtrueโ–บ
    โ—„external_angle_promptโ€”โ–บ

    Wangz Camera Prompt Studio does exactly what its name promises: it turns the fiddly business of typing "right side, extreme low-angle, wide shot, 28mm lens, shallow depth of field, film grain, golden hour" into seven dropdowns and one text box. The name is also a small lie you'll love - it calls no API, loads no model, and needs no key. It's a prompt assembly node: pure string glue. That's the best kind of ComfyUI tool, because it can't OOM your machine and can't corrupt a latent.

    Why you'd reach for it: camera and lens language is the single highest-leverage thing you can put in a modern prompt, and block-structured prompts beat a comma soup on the LLM-encoded models (Flux Klein, Z-Image, that whole family) that dominate local generation now. This node is basically a UI for that block structure - the angle, the camera spec, the subject, and the mood each stay a separate, reusable chunk instead of one uneditable wall of text. The author's README frames it as merging two nodes you'd otherwise chain - Qwen Multiangle Camera plus CR Prompt Text - into one clean box with no spaghetti wires.

    How it works

    Under the hood it's boring in the best way: a single function reads the dropdowns, builds five blocks, and joins them. The order is fixed - angle block, then camera spec (lens + depth of field + film filter), then your base_prompt, then the mood - separated by whatever separator you pick (comma, newline, or comma+newline), with tail_params stuck on the very end. Any dropdown set to none is dropped entirely, so you're not paying tokens for a filter you didn't want. The output is a single STRING named prompt, and you can wire it into a CLIP Text Encode, into an LLM-encoded model's prompt input, or just read it off the node and paste it somewhere else.

    The inputs that actually matter

    • horizontal_angle, vertical_angle, shot_distance - these three build the angle block ("front-right quarter slightly high-angle close-up"). The defaults are sane; you'll mostly be twiddling vertical_angle and shot_distance.
    • base_prompt - your actual subject ("Japanese Gothic-style ribbon-decorated maid girl" by default). This is where the real content lives.
    • tail_params - defaults to --ar 16:9 --v 6.0, which is Midjourney syntax. Great if you're pasting into Midjourney. See the gotcha below if you're not.
    • external_angle_prompt (optional) - if you connect Qwen Multiangle Camera's prompt output here, its angle text completely replaces the dropdown angle block. Handy when you want a 3D-angle node driving the shot while this node still handles lens, mood, and assembly.

    Install

    ComfyUI Manager โ†’ "Install via Git URL" โ†’ paste https://github.com/wjs0502m-design/Wangz_camera_prompt_studio, or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/wjs0502m-design/Wangz_camera_prompt_studio
    

    Then restart ComfyUI and search "Camera Prompt Studio" or "๐Ÿ“ท" (it's under category Wangz/camera). There's no requirements.txt and no model download - the whole thing is stdlib Python, so install takes about three seconds.

    Where people get burned

    • The <sks> prefix is on by default. include_angle_prefix prepends <sks> to every angle block. That token only means something if you're using a LoRA/embedding trained with <sks> as its trigger word. If you aren't, it's dead text burning tokens at the LLM attention cap - flip it off.
    • Those Midjourney flags will bite you in ComfyUI. Feed --ar 16:9 --v 6.0 into a ComfyUI prompt encoder and you're literally prompting the word "--ar". Empty tail_params for ComfyUI-internal use.
    • The prefix is silently skipped on the external path. In the source, include_angle_prefix only applies to the dropdown branch - connect external_angle_prompt and the <sks> you thought you'd set never gets added. It's not a bug, just easy to miss.
    • Don't blank the subject. With an empty base_prompt and everything at none, this node happily emits a near-empty string. Keep at least your subject in there.

    This is a natural-language composer, so it shines on LLM-encoded models and Midjourney-style destinations. If your whole stack is Pony or Illustrious danbooru tags, it'll still work - "name a physical piece of equipment" lands on CLIP models too - but it's a different dialect than you're used to. For everything else, this is the one clean node for shot grammar.

    CategoryWangz/camera

    Inputs (12)

    NameTypeDefaultDescription
    horizontal_angleCOMBOfront-right quarter8 options: front, front-right quarter, right side, rear-right quarter, rear, rear-left quarter, +2
    vertical_angleCOMBOslightly high-angle6 options: extreme low-angle, low-angle, eye-level, slightly high-angle, high-angle, bird's eye view
    shot_distanceCOMBOclose-up8 options: extreme close-up, close-up, medium close-up, medium shot, medium full shot, full shot, +2
    lens_typeCOMBO85mm portrait lens11 options: none, 85mm portrait lens, 50mm standard lens, 35mm cinematic lens, 28mm wide-angle lens, 135mm telephoto lens, +5
    depth_of_fieldCOMBOshallow depth of field, bokeh background7 options: none, shallow depth of field, bokeh background, extremely shallow depth of field, heavy bokeh, deep sharp focus, everything in focus, out of focus, dreamy blur, rack focus, subject sharp background soft, +1
    film_filterCOMBOnone10 options: none, mist diffusion filter, soft glow, 35mm film grain, analog texture, light leak effect, warm color bleed, cross-process film effect, shifted colors, infrared film effect, +4
    mood_presetCOMBOnone9 options: none, city pop retro, 1980s Japan aesthetic, neon reflections, warm summer night, ethereal dreamy, soft pastel haze, otherworldly glow, dark moody cinematic, high contrast, dramatic shadows, golden hour, warm sunlight, glowing rim light, neon noir, rain-soaked streets, cyberpunk atmosphere, +3
    base_promptSTRINGJapanese Gothic-style ribbon-decorated maid girlโ€”
    tail_paramsSTRING--ar 16:9 --v 6.0โ€”
    separatorCOMBOcomma3 options: comma, newline, comma+newline
    include_angle_prefixBOOLEANtrueโ€”
    external_angle_promptoptSTRINGโ€”

    Outputs (1)

    NameTypeDescription
    promptSTRINGโ€”