Nodes/was-node-suite-comfyui/Image Dragan Photography Filter
ComfyUI Node Runs on cloud

Image Dragan Photography Filter

The hyper-contrast portrait look in one node

By WASasquatch·Created 3 years ago·Updated about 13 hours ago· 1,840
Image Dragan Photography Filter
  • image
  • IMAGE
saturation1.00
contrast1.00
brightness1.00
sharpness1.00
highpass_radius6.00
highpass_samples1
highpass_strength1.00
colorizetrue

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, then pip 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.

CategoryWAS Suite/Image/Filter

Inputs (9)

NameTypeDefaultDescription
imageIMAGEThe 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.
saturationFLOAT1.000–16Colour 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.
contrastFLOAT1.000–16Separation between light and dark. 1.0 leaves it alone, 1.5 is a firm push, 3.0 is extreme and starts clipping both ends.
brightnessFLOAT1.000–16Overall exposure, as a multiplier. 1.0 leaves it alone, 0.8 darkens, 1.2 lightens.
sharpnessFLOAT1.000–6Edge crispness before the high-pass layer is built. 1.0 leaves it alone, 2.0 sharpens, values below 1.0 soften.
highpass_radiusFLOAT6.000–255Size 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_samplesINT10–6How 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_strengthFLOAT1.000–3How 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.
colorizeBOOLEANtrueOn = 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)

NameTypeDescription
IMAGEIMAGEThe 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.