Nodes/comfyui-jbnodes/Darkroom Enlarger (Split Grade)
ComfyUI Node

Darkroom Enlarger (Split Grade)

The enlarger trick that prints impossible negatives

By AlbertJBurton·Created 6 months ago·Updated 3 months ago· 1
Darkroom Enlarger (Split Grade)
  • film_negative
  • image
  • preview_1
  • preview_2
contrast_filter_12
exposure_secs_110
contrast_filter_22
exposure_secs_210

Split-grade printing is the darkroom move that separates people who print from people who merely expose. The idea: instead of one exposure at one contrast grade, you make two exposures on the same sheet of variable-contrast paper - one at a low grade (soft, for the highlights) and one at a high grade (hard, for the shadows). Because the paper's contrast response is wavelength-specific, the two exposures coexist on one sheet and you get shadow and highlight detail that no single grade could hold. PrintLabSplitGrade is that technique as a node.

It's the most sophisticated of the three enlarger nodes in comfyui-jbnodes, and the one to reach for when a negative is "unprintable" - too much range for Grade 2, too contrasty for the low grades, too flat for the high ones. Real darkroom people will feel at home; if you've never done it, think of it as two dialed-in exposures fighting over the same sheet, and you get to win.

How it works

The required input is film_negative (from DeveloperLab). Then two pairs of controls, because you're making two exposures:

  • contrast_filter_1 + exposure_secs_1 - the first exposure. Conventionally the low grade (soft) exposure, tuned to hold highlight detail.
  • contrast_filter_2 + exposure_secs_2 - the second exposure. Conventionally the high grade (hard) exposure, tuned to build shadow richness.

The filter grades run the full multigrade range (00 through 5, in half steps), and exposure seconds run 0–60 each. Both exposures hit the same paper, so you're balancing two variables against each other - a classic split would be something like Grade 0 at 12 seconds for the highlights plus Grade 4 at 6 seconds for the shadows. The low-grade pass protects the bright end; the high-grade pass puts ink in the blacks.

Outputs

Three images:

  • image - the final combined print.
  • preview_1 and preview_2 - the two component exposures separately. These are the debugging gift: you can see exactly what each grade contributed, which makes the split-grade math dramatically easier to learn.

When to use it

Use it when a multigrade single-grade print can't hold both ends - washed-out highlights and blocked-up shadows on the same print is the classic signal. It's also just plain fun once you have the rhythm, and the two previews make the process legible instead of black-box.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/AlbertJBurton/comfyui-jbnodes.git
cd comfyui-jbnodes
pip install -r requirements.txt

Restart ComfyUI, or ComfyUI Manager → "comfyui-jbnodes."

Gotchas

  • Feed it film_negative, not contact_print - same rule as every PrintLab node, and the failure mode (an inverted print) is equally embarrassing.
  • Total exposure matters. The two exposures don't replace each other; they add up on the sheet. If your print is consistently too dark, reduce both exposure times proportionally before you start changing grades.
  • More knobs than the other enlargers means more ways to overthink. Start from the classic split (soft-low + hard-high) and adjust one exposure at a time.
CategoryJBNodes/Darkroom

Inputs (5)

NameTypeDefaultDescription
film_negativeIMAGE
contrast_filter_1COMBO212 options: 00, 0, ½, 1, 1½, 2, +6
exposure_secs_1FLOAT100–60
contrast_filter_2COMBO212 options: 00, 0, ½, 1, 1½, 2, +6
exposure_secs_2FLOAT100–60

Outputs (3)

NameTypeDescription
imageIMAGE
preview_1IMAGE
preview_2IMAGE