APNext Photography
Cameras, film stocks and lenses that actually move an image
- prompt
- random
Of all the APNext prompt nodes, this is the one with the best hit rate, and it's not close. The reason is baked into how diffusion models learned photography: naming a real camera, a real lens, and a real film stock is the single highest-leverage thing you can put in a photo prompt. Those are concrete things the model saw captioned thousands of times. "Cinestill 800T," "arri alexa," "85mm" drop an image out of the plastic beauty-default look faster than any pile of "photorealistic, ultra detailed, 8k" ever will.
APNext Photography is a dropdown builder stuffed with exactly that vocabulary: 169 cameras, 83 film stocks, 69 lenses, plus lighting, color grading, landscape subjects and 67 named portrait photographers. It turns "what camera should I claim I used" into a menu.
How it works
Each dropdown is a word list. None skips it, Random picks one, Multiple Random grabs several, or you set a specific value. Your typed prompt is the base and the photographic terms append onto it, joined by the separator. The seed reproduces a draw.
The mechanism that makes it work isn't magic - it's specificity. A film stock is the most reliable color-grading control you have in a prompt: Kodak Portra for warm skin, Ilford HP5 for black-and-white grain, Cinestill 800T for that neon-night halation. A named photographer imports a whole lighting-and-composition signature. This node's only job is to make those easy to reach and easy to shuffle.
Inputs and outputs that matter
- prompt (multiline, required) - your subject and scene. The gear language decorates it.
- camera + lenses + film - the money trio. This is what earns the node its keep; set these and leave the fluff.
- lighting - genuinely useful, the second-strongest lever after gear.
- portrait_photographer - one name imports a whole style; powerful, use sparingly.
- seed - lock a look you like.
- attributes (boolean) - folds in extra descriptor tags on some entries.
Outputs: prompt (base plus the photography terms) and random (just the random picks).
Installing it
ComfyUI Manager, search comfyui_dagthomas, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/dagthomas/comfyui_dagthomas
cd comfyui_dagthomas
pip install -r requirements.txt
The heavy dependency list is for the pack's LLM and image-FX nodes. This node needs none of it and asks for no API key.
Common issues
Randomizing camera, film, and photographer at once is the classic mistake - you'll get a disposable point-and-shoot shot color-graded like slide film in the style of Ansel Adams, three signatures fighting each other. Pick one camera, one film, maybe one photographer, and stop. Emotional and quality modifiers ("stunning", "masterpiece") add nothing to a photo prompt, so don't lean on the vaguer categories to save a weak combination.
Model fit is the usual asterisk. This vocabulary is fantastic on SDXL, Illustrious and especially Flux, which respond hard to gear names. On the newest LLM-encoded checkpoints the comma-tag phrasing still helps for the concrete nouns, but the model wants a sentence - so use the node to pick the camera and film, then write "shot on a [camera] with [film] stock" into your prose prompt. For photorealism specifically, this is one of the more useful prompt nodes in the whole ecosystem.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| separator | STRING | , | — |
| stringopt | STRING | — | |
| seedopt | INT | 00–18446744073709550000 | — |
| attributesopt | BOOLEAN | false | — |
| cameraopt | COMBO | None | 169 options: None, Random, Multiple Random, aaton ltr, aaton xtr prod, arri alexa, +163 |
| keywordsopt | COMBO | None | 69 options: None, Random, Multiple Random, angles, animals, b&w, +63 |
| filmopt | COMBO | None | 83 options: None, Random, Multiple Random, adox pan 100 film, adox silvermax 100 film, agfa vista plus 200 film, +77 |
| lensesopt | COMBO | None | 69 options: None, Random, Multiple Random, 100mm, 18mm, 200mm, +63 |
| landscape_subjectopt | COMBO | None | 113 options: None, Random, Multiple Random, abandoned building, airport, aqueduct, +107 |
| color_gradingopt | COMBO | None | 38 options: None, Random, Multiple Random, bold color grading, bright color grading, color grading, +32 |
| lightingopt | COMBO | None | 123 options: None, Random, Multiple Random, 3 spots lighting, afternoon lighting, ambient lighting, +117 |
| portrait_photographeropt | COMBO | None | 67 options: None, Random, Multiple Random, alec soth, andreas gursky, andres serrano, +61 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| random | STRING | — |