ποΈLC Camera
Name the camera in your prompt without the jargon
- prompt
Here's a free lesson that cost other people a lot of trial and error: naming a physical camera in your prompt does more for realism than any stack of "realistic, detailed, 8k" filler. LLM-encoded models like Krea2 and Anima read "35mm film camera" as actual information, not as a quality wish. The catch is that writing good camera language is a whole vocabulary - focal length, shot size, angle, depth of field - and most people don't have it memorized mid-workflow. LCCamera is the pack's prompt-builder node that hands it to you as dropdowns.
It builds a camera phrase from three choices, plus any notes you want. angle picks the camera's height and tilt relative to the subject - 12 options from the obvious (eye level, from below, 3/4 angle, profile angle) to the amusingly specific (overhead selfie angle, mirror selfie angle, phone camera angle). distance picks how much of the subject is in frame, from Extreme close-up through Medium shot to Full body. And depth_of_field is the stand-in for aperture - Very shallow to Everything sharp, with the tooltip honest that it's "a simple stand-in for aperture" rather than real f-stop math. The output is a single prompt string.
The detail that makes it worth using over typing your own: the distance presets include lens character, not just framing. The tooltip says it outright - "How much of the subject is in frame (close-up β full body). Includes lens character." So choosing Medium shot doesn't just say "medium shot," it brings along the kind of lens language that a portrait medium shot implies. That's the difference between "camera shot: medium" and a phrase the encoder actually has texture to grab onto.
This node doesn't exist in a vacuum - it's one block in the pack's Prompt Builder stack, which is a modular chain: Subject + Scene + Camera + Lighting + Style + Palette all feed into the LC Prompt Assembler, which combines them into a single prompt for CLIP. LCCamera is the "camera" module of that stack, so the natural wiring is: this node's prompt output into the Assembler, alongside the scene and lighting blocks, rather than straight into a CLIP encoder. The prompt text input at the top is your free-text camera notes ("shot through a car window," "slight motion blur") that get combined with the preset output.
Where people get caught: expecting raw numbers. There's no mm focal length and no f-stop anywhere in this node - that's a deliberate design choice, per the description ("Distance presets include lens character; no raw mm/f-stop"), because most diffusion encoders respond better to shot language than to lens specs, and the preset wording is tuned for that. If you genuinely want "85mm f/1.4," type it into the notes field yourself - the node will happily append it.
The other thing worth knowing: this is a text builder, so it costs nothing and re-runs instantly. You can iterate on camera language by flipping dropdowns and watching the output change, which is the right way to learn what your model responds to - and it plays directly into the "name a physical camera" lesson from prompt-engineering practice.
Install is the standard LC123 clone:
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes
Restart, no pip deps. If your portraits keep coming out with that flat, nowhere-camera look, this is the lowest-effort fix in the pack.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Extra camera notes. Framing presets include natural lens language. | |
| angle | COMBO | eye level | Camera height and tilt relative to the subject. |
| distance | COMBO | Medium shot | How much of the subject is in frame (close-up β full body). Includes lens character. |
| depth_of_field | COMBO | Shallow | Background blur vs sharp throughout (simple stand-in for aperture). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | β |