Flash Pop
The on-camera flash look, from harsh snapshot to barely-lit
- image
- mask
- image
- mask
- flash_pop_info
The photorealism playbook has a favorite phrase for beating the "beauty-default" look: on-board flash falloff. Harsh, direct, in-your-face flash with a fast light falloff toward the edges of the frame - the look of a point-and-shoot at a party - is the fastest way to drop a model out of its polished default mode. x1FlashPop is that look, as a node, and it's one of the more distinctive things in the MKRShift pack because almost nobody else ships it.
It's part of MKRShift Nodes by Cris K B, under MKRShift Nodes/VFX/Photo.
How it works
The effect simulates a small on-camera flash: bright center, fast falloff, lifted shadows where the flash didn't reach, and a slight warmth because real flash photos skew warm. The geometry comes from center_x / center_y (default 0.5/0.5) - where the flash is centered - and edge_falloff (default 0.46), which controls how quickly the light dies toward the frame edges. A high falloff gives that harsh "flash-lit just the center" snapshot; a low one just slightly lights the whole frame.
The tone work is shadow_lift (default 0.34), which raises the dark end - flash photos have deep, lifted shadows, not crushed ones - and highlight_rolloff (default 0.22), which softens the bright end so the flash-hot skin doesn't clip to white. warmth (default 0.08) adds the color cast, and clarity (default 0.18) is a local-contrast bump that brings back that slightly crunchy, over-defined look of direct flash light. amount (default 0.56) is the master strength, and mix the final blend.
The inputs that matter
Inside the settings_json:
amount- how strong the flash effect is (default 0.56).edge_falloff- the harshness; the higher, the more "snapshot," the more it looks like a real pop of light.center_x/center_y- flash position, if you don't want it dead center.shadow_lift/highlight_rolloff- the tone shape that makes flash read as light rather than vignette.warmth/clarity- color cast and texture.
Optional mask input plus mask_feather / invert_mask, and outputs image, mask, and a flash_pop_info string.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart ComfyUI, or use ComfyUI Manager (search MKRShift_Nodes). No requirements.txt, no models, no keys.
The take
Where this shines is character and candid work: push edge_falloff up around 0.6–0.7, keep amount moderate, and the portrait gets that "shot at a real party with a real camera" believability that models refuse to produce on their own. The trap is mistaking it for a vignette - a vignette just darkens edges; flash lights the center and re-shapes the tones, and if you don't touch shadow_lift it just looks like you darkened the corners. Start with the defaults, they're genuinely well-tuned, and resist pushing amount to 1.0 unless "flash was the only light" is the goal.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| settings_json | STRING | {"amount":0.56,"edge_falloff":0.46,"center_x":0.5,"center_y":0.5,"shadow_lift":0.34,"highlight_rolloff":0.22,"warmth":0.08,"clarity":0.18,"mix":1.0,"mask_feather":12.0,"invert_mask":false} | — |
| maskopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| flash_pop_info | STRING | — |