CMYK TAC Check
Your ink is about to exceed the press's limit — this node catches it
- image
- overlay
Print a heavily saturated image and you can get sheets that come out of the press blotchy, slow to dry, and showing through the back of the page. The culprit is Total Area Coverage - the sum of C+M+Y+K ink at any pixel - blowing past what the paper and press can absorb. Photoshop and InDesign warn you about this. ComfyUI didn't, until this node.
CMYK TAC Check is part of ComfyUI-Darkroom's four-node print workflow (Soft-Proof, Gamut Warning, this, and CMYK Export TIFF). It's the boring, essential one: convert the image to the chosen CMYK profile, sum the ink, and flag every pixel where that sum exceeds the limit. It won't make your image prettier. It will stop you shipping a file that prints badly.
How it works
The node converts your sRGB image to CMYK through the target ICC profile with your chosen rendering intent, then computes C+M+Y+K per pixel and compares it to a TAC limit. The limits are the industry standards - 330% coated (FOGRA39 / GRACoL), 300% uncoated, 300% web coated, 240% newsprint - or a custom number you set. Anything over the line gets flagged on the overlay output. It also logs to the console: peak TAC percentage and the fraction of pixels that exceeded the limit. That's your "ship it" / "fix it" signal.
The inputs that matter
- target_profile - the CMYK print stock. This is the crux: the profiles are auto-discovered from the pack's
data/icc_profiles/folder and your OS color-profile store. On Windows you already have FOGRA39, SWOP, GRACoL and friends bundled by the OS; on Linux/macOS you'll likely need to drop .icc files intoComfyUI-Darkroom/data/icc_profiles/. - intent - rendering intent. Perceptual for photos (default), relative colorimetric for logos, saturation for charts, absolute for pre-press proofing.
- tac_preset - pick the stock class, or "custom" and type your own in custom_tac (150–400).
- image - the obvious one.
Output is a single overlay image: black where the ink is within limits, flagged where it isn't. Wire it to PreviewImage.
Install and gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom
pip install -r ComfyUI-Darkroom/requirements.txt
Or skip the terminal and search "Darkroom" in ComfyUI Manager. Restart, and it's under AKURATE/Darkroom/Print.
The one real gotcha is the default target_profile literally reading "(no CMYK profiles found)" - the node passes your image through untouched in that state, which is the single most confusing thing about the print workflow. It's not broken; it just can't find a profile. Drop one into data/icc_profiles/ (free ones from ECI if you want FOGRA51 or the newer v3 standards) and restart, and the dropdown fills in. Keep in mind this is a check, not a fixer - when it flags a lot of pixels, the fix is usually to desaturate or use the Soft-Proof node to see what the press will actually do with them.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| target_profile | COMBO | (no CMYK profiles found) | CMYK print stock |
| intent | COMBO | perceptual | 4 options: perceptual, relative colorimetric, saturation, absolute colorimetric |
| tac_preset | COMBO | coated (FOGRA39 / GRACoL) | TAC limit by stock type. 'custom' uses the numeric field below. |
| custom_tacopt | INT | 330150–400 | Only used when tac_preset is 'custom' |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| overlay | IMAGE | — |