2🐕Lens class
Dropdown control over camera angle, pose, and framing
- prompt
"Full body shot from below with a wide-angle lens, looking at the viewer" is exactly the kind of composition instruction that's easy to describe in your head and annoying to spell out correctly in tag form every single time. EG_TSCDS_JT ("Lens class") is the composition half of the ergouzi prompt-word pickers - angle, pose, framing and lens, all as dropdowns instead of typed tags.
How it works
Same mechanism as the pack's other "Prompt word master" nodes: seven categories bundled into one node, each with its own weight slider and its own "None" default. Perspective covers camera angle (cowboy shot, from behind, dutch angle, pov, from above…), Positioning covers where the subject is looking and how much of them is in frame (looking at viewer, full body, upper body, looking back…), Action covers the huge 271-tag pose vocabulary (holding, sitting, standing, spread legs, arm up…), Composition Method covers framing tricks (out of frame, letterboxed, cropped, reference sheet…), and then three lens-flavored categories - Character Lens, Lens, and Camera Lens - that layer on shot distance (close-up, waist shot, chest shot) and actual optical language (wide angle, macro lens, fisheye, 85mm telephoto, tilt-shift). Everything you pick gets combined into one weighted string.
The inputs and outputs that matter
You're realistically only setting two or three of the seven dropdowns per image - Positioning plus Action covers most compositions, and you add a Lens pick when you specifically want a depth-of-field or wide-angle look. Weight sliders (0.1–2.0, default 1) exist per category; the community-tested sweet spot for tag emphasis is 0.5–1.5 - beyond that you're mostly adding artifacts, not more of the effect. random (default no) plus seed let the node roll a random pick across all seven categories instead of using your manual selections, useful for batch-varying poses without hand-picking each one. Output is a single prompt STRING to feed into a text-concat node or straight into your positive CLIP Text Encode.
How to install it
ComfyUI Manager, search Comfyui-ergouzi-Nodes - or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/11dogzi/Comfyui-ergouzi-Nodes.git
Restart. Worth flagging up front: the author's README states this English repo is no longer updated - active development moved to a Chinese-named sibling (Comfyui-ergouzi-DGNJD) that the author describes as more feature-complete. You're installing a frozen snapshot.
Common issues & troubleshooting
Weighted tags are a CLIP thing, not a universal one. (low angle shot:1.3) only reads as emphasis on CLIP-encoded checkpoints (SD 1.5, SDXL, Illustrious, Pony, NoobAI). Point this node's output at an LLM-encoded model - Z-Image, Flux 2 Klein, Anima, Krea 2 - and the parentheses-and-colon syntax becomes literal text the model tries to render as words, not a strength multiplier. If your composition prompts are behaving oddly on a newer model, that's almost certainly why.
Action has 271 choices - don't scroll blind. With that many pose tags, it's easy to grab something adjacent to what you meant. Cross-reference against the Danbooru wiki if a pose comes out wrong; the tag names are exact, and near-miss tags (say, "on back" vs "lying") can produce meaningfully different results.
It's frozen, so frontend changes are a real risk. Because this repo isn't maintained, a future ComfyUI UI update that breaks custom dropdown widgets - like the 2025 Nodes 2.0 rewrite did to actively-maintained packs - has no guaranteed fix here. If the category menus stop rendering after a ComfyUI update, that's the likely cause, not something wrong with your setup.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| Perspective | COMBO | None | 30 options: None, cowboy shot, from behind, from side, dutch angle, multiple views, +24 |
| Perspectiveweight | FLOAT | 1.00.1–2 | — |
| Positioning | COMBO | None | 39 options: None, looking at viewer, full body, upper body, solo focus, looking back, +33 |
| Positioningweight | FLOAT | 1.00.1–2 | — |
| Action | COMBO | None | 271 options: None, holding, sitting, standing, lying, spread legs, +265 |
| Actionweight | FLOAT | 1.00.1–2 | — |
| Composition Method | COMBO | None | 41 options: None, feet out of frame, border, letterboxed, out of frame, outside border, +35 |
| Composition Methodweight | FLOAT | 1.00.1–2 | — |
| Character Lens | COMBO | None | 8 options: None, full body, Detail Shot(ECU), Face Shot (VCU), Big Close-Up(BCU), Close-Up(CU), +2 |
| Character Lensweight | FLOAT | 1.00.1–2 | — |
| Lens | COMBO | None | 25 options: None, wide angle, depth of field blur, depth of field, macro lens, fisheye lens, +19 |
| Lensweight | FLOAT | 1.00.1–2 | — |
| Camera Lens | COMBO | None | 9 options: None, DSLR, 360 panorama, telephoto lens, super wide angle, tilt-shift, +3 |
| Camera Lensweight | FLOAT | 1.00.1–2 | — |
| random | COMBO | no | 2 options: yes, no |
| seed | INT | 0-1125899906842624–1125899906842624 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |