LC Photo Style π·
The smartphone-snapshot finish, with presets for real cameras
- image
- image
There's a specific reason AI portraits look fake, and it isn't the faces - it's the finish. Too clean, too color-graded, too much like every beauty default the model learned. Photorealism's playbook has known for years that the "amateur phone snapshot" look reads more real than studio polish. LC Photo Style is that playbook as a node: a deterministic phone/camera finish - white balance, exposure, contrast, tone, grain, vignette - applied after the sampler, driven by presets that mimic real cameras. And it's explicitly not a lens geometry tool: no distortion, no optical warping, just the color-and-tone finish.
How it works
Pick a style preset from 12 (Standard, Natural, Dramatic, Quiet, Muted, Amateur, Cool day, Warm evening, Bright open, iPhone, Nikon Z7 II, Canon R5). The preset fills the ~17 sliders below with values; move any slider and you're in custom territory. strength (0β1, default 0.85) blends the whole processed result back toward the original, so 0.85 gets you the look without losing the source. Everything is deterministic except the optional grain (seeded via the seed input).
The sliders mirror a phone/RAW editor's controls: wb_temperature (cool/warm) and wb_tint (green/magenta), exposure, contrast, shadows (lifts darks without white haze), highlights (compresses brights), hdr_local (local tone), vibrance with skin_protect (leaves skin hues alone), shadow_cool and highlight_warm (the split-tone move), texture, clarity, vignette, and grain. The beauty of it: every control's 0 = no change, so a preset is a starting point you can trim without fighting leftover values.
The knobs that actually matter
style- 90% of the time this is all you touch. "Amateur" for the candid snapshot vibe, "iPhone" for the modern phone default, "Canon R5" / "Nikon Z7 II" if you want the named-camera finish.strength- your subtlety dial. 0.85 is strong; 0.5 is "barely there."skin_protect- keep this up if there are faces. It stops the grade from making skin look like wax.
Install
Part of ComfyUI LC123 Nodes (MIT, 89 nodes). ComfyUI Manager β search "ComfyUI LC123 Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes
Restart. No extra dependencies, no models. On hosted platforms like RunningHub, request the pack and they install it for you.
The take
The "iPhone" and "Amateur" presets are the ones to reach for when a portrait comes out too pretty - they're the deterministic version of the smartphone-snapshot LoRAs that have quietly become the realism cheat code. It won't fix geometry, won't rewrite pixels, and isn't a substitute for a good model; it's the finish that makes an already-good image stop looking generated. One node where the pack's image FX and the photorealism thesis meet.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| style | COMBO | Standard | Starting preset. Customize below by moving the sliders. 0 on a control = no change from that stage. |
| strength | FLOAT | 0.850β1 | 0 = original image, 1 = full processed look. |
| seed | INT | 00β18446744073709550000 | Grain seed only. |
| wb_temperature | FLOAT | 0.08-1β1 | 0 = no WB change. Negative = cooler, positive = warmer. |
| wb_tint | FLOAT | 0.00-1β1 | 0 = no tint. Negative = green, positive = magenta. |
| exposure | FLOAT | 0.04-0.5β0.5 | 0 = no exposure change (EV). |
| contrast | FLOAT | 0.12-1β1 | 0 = no contrast change. Positive punches midtones, negative flattens. |
| shadows | FLOAT | 0.250β1 | 0 = no change. Lifts dark areas only (keeps color, no white haze). |
| highlights | FLOAT | 0.300β1 | 0 = no change. Softly compresses bright areas. |
| hdr_local | FLOAT | 0.200β1 | 0 = off. Mild local tone (open shadows / tame local contrast). |
| vibrance | FLOAT | 0.22-1β1 | 0 = no change. Positive boosts muted colors; negative pulls them down. |
| skin_protect | FLOAT | 0.650β1 | Limits vibrance on skin hues (only matters when vibrance β 0). |
| shadow_cool | FLOAT | 0.100β1 | 0 = off. Cool (blue) tint in mid-shadows β skips pure black. |
| highlight_warm | FLOAT | 0.120β1 | 0 = off. Warm tint in highlights. |
| texture | FLOAT | 0.18-1β1 | 0 = no change. Fine detail; negative softens. |
| clarity | FLOAT | 0.12-1β1 | 0 = no change. Mid-scale local contrast; negative softens. |
| vignette | FLOAT | 0.140β1 | 0 = off. Corner falloff. |
| grain | FLOAT | 0.100β1 | 0 = off. Neutral mono grain (stronger in shadows). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |