Image Dragan Photography Filter
The hyper-contrast portrait look in one node
- image
- IMAGE
Andrzej Dragan is a real photographer (and physicist) known for an extreme portrait style: skin pushed to almost sculptural detail, brutal local contrast, moody dramatic lighting, every pore and wrinkle exaggerated rather than smoothed away. It's a distinctive, recognizable look - recognizable enough that people reference "Andrzej Dragan style" directly inside Stable Diffusion prompts to chase it. This node is WAS's attempt to give you that effect as a post-process filter instead of hoping a prompt or a specific LoRA gets you there.
Why you'd reach for it
Two routes to a stylized look like this normally: prompt for it and hope the model interprets "Dragan style" the way you mean, or hunt down a LoRA trained on his work. This node is a third option - a deterministic filter you apply after generation, so you get a consistent, repeatable version of the effect regardless of what checkpoint or prompt produced the base image. That consistency is the appeal: a LoRA's interpretation shifts with your base model, a filter doesn't.
How it works
Per the README's own framing, it's applying "a Andrzej Dragan photography style" - in practice that means pushing local contrast and clarity hard (the technique often called the "Dragan effect" in photo-editing circles predates AI entirely, built from stacked high-pass/clarity layers in Photoshop), which is exactly the kind of thing a filter node can approximate algorithmically without needing a model at all.
The inputs and outputs that matter
An image in, a filtered image out. This is a stylistic filter with presumably one or more intensity-style controls, but since I can't confirm exact widget names for this node, I won't invent them - drop it on the canvas and the real controls are right there. What I can tell you with confidence is the shape of the job: image in, dramatically-contrasted image out.
How to install it
Ships with the full WAS Node Suite:
- ComfyUI Manager - search "WAS Node Suite", install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/WASasquatch/was-node-suite-comfyui, thenpip install -r requirements.txt(portable:python_embeded\python.exe -s -m pip install -r requirements.txt), restart.
A pure image filter - no model download for this node specifically.
Common issues & troubleshooting
It looks harsh, not dramatic. This is the trap with any strong local-contrast filter: it's meant to be striking, but pushed too far it stops reading as "moody portrait" and starts reading as "over-sharpened." It also exaggerates whatever's already in the image - noise, compression artifacts, awkward AI-generation seams all get amplified right alongside real skin detail. Works best on a clean, high-detail source; feed it a soft or noisy generation and you'll mostly amplify the flaws.
Wrong tool for subtle grading. If you actually want gentle brightness/contrast/saturation nudges rather than a whole stylistic signature, that's Image Filter Adjustments in the same pack - a much gentler, more general tool. This node is for committing to the look, not fine-tuning it.
The standing pack caveat applies too: WAS Node Suite has been unmaintained since December 2023, and the recurring failure is the whole suite throwing "Import Failed" after a ComfyUI update from a stale pinned dependency. Reinstall requirements.txt against the correct Python environment if that hits you - this filter itself has no special dependency of its own.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The image to treat. A batch is handled one image at a time. An alpha channel is set aside and put back on the result unchanged. | |
| saturation | FLOAT | 1.000–16 | Colour strength of the result. 0.0 drains it to grey, 1.0 leaves it as the recolour made it, 2.0 doubles it. Needs colorize on, since with it off the result is monochrome and has no colour to strengthen. |
| contrast | FLOAT | 1.000–16 | Separation between light and dark. 1.0 leaves it alone, 1.5 is a firm push, 3.0 is extreme and starts clipping both ends. |
| brightness | FLOAT | 1.000–16 | Overall exposure, as a multiplier. 1.0 leaves it alone, 0.8 darkens, 1.2 lightens. |
| sharpness | FLOAT | 1.000–6 | Edge crispness before the high-pass layer is built. 1.0 leaves it alone, 2.0 sharpens, values below 1.0 soften. |
| highpass_radius | FLOAT | 6.000–255 | Size of the detail the texture layer picks up, in pixels. 2 catches only fine grain, 6 catches skin texture, 30 catches broad shapes and starts to look like an HDR halo. |
| highpass_samples | INT | 10–6 | How many extra passes of the texture layer are laid over the picture. Each one compounds the effect. 0 is treated as 1, so there is always at least one extra pass. |
| highpass_strength | FLOAT | 1.000–3 | How much of the textured version is mixed back in. 0.0 keeps the plain enhanced image, 1.0 uses the textured one outright, and above 1.0 overshoots it. |
| colorize | BOOLEAN | true | On = the source's colours laid back over the finished monochrome result; off = the result stays monochrome and the textured layer is desaturated with it. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | The treated images, one for each that went in and the same size as the source, with the source's colours laid back over the monochrome result. |