Darkroom Enlarger (Split Grade)
The enlarger trick that prints impossible negatives
- film_negative
- image
- preview_1
- preview_2
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_1andpreview_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, notcontact_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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| film_negative | IMAGE | — | |
| contrast_filter_1 | COMBO | 2 | 12 options: 00, 0, ½, 1, 1½, 2, +6 |
| exposure_secs_1 | FLOAT | 100–60 | — |
| contrast_filter_2 | COMBO | 2 | 12 options: 00, 0, ½, 1, 1½, 2, +6 |
| exposure_secs_2 | FLOAT | 100–60 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| preview_1 | IMAGE | — |
| preview_2 | IMAGE | — |