Load ICC Profile
The boring-but-critical node for anyone sending AI images to a printer
- ICC_PROFILE
- ICC_INFO
ICC profiles are the least glamorous thing in image processing, and the most quietly important if your AI art ever leaves the screen. Load ICC Profile is a tiny node that reads a color profile from your models/icc_profiles folder and hands it to this pack's save nodes, which then embed it into the file. No pixels change here - it's a pickup-and-deliver node, like the node that feeds a save node a filename.
Why bother? A generated image exists in whatever RGB color space your monitor implies. A print shop or a professional art pipeline assumes something else - sRGB, Adobe RGB, a printer's specific profile. If the profile is embedded, software downstream can convert instead of guessing, and "the colors I saw on screen" has a fighting chance of surviving contact with reality. For a photographer or a print-focused workflow this is the difference between a delivered file and a problem. For everyone else: you can safely skip it and never notice.
Inputs and outputs
The single input, profile, is a dropdown of every valid .icc or .icm file in the folder - the node validates each file with Pillow's ImageCms before offering it, so corrupt files just don't appear rather than blowing up at run time.
Two outputs:
- ICC_PROFILE - the raw profile data. This is what you wire into the
ICC Profileinput of Save Image Advanced (theSaveImageAdvancedCustomnode) or any of the format-specific savers that accept one. - ICC_INFO (STRING) - a plain-text summary: model, manufacturer, description, copyright. Wire it to a text display if you want to confirm you picked the right profile, or just ignore it.
That's the whole node. It doesn't batch, doesn't transform, doesn't have a GPU footprint. It's the boring utility in the pack, and it's the one a print pipeline actually depends on.
Getting a profile in
Drop .icc / .icm files into ComfyUI/models/icc_profiles/. The pack creates that folder automatically on first load if it doesn't exist, and registers it as a model folder path, so anything you drop in shows up in the dropdown after a refresh. Where do you get profiles? OS color-settings folders are full of them (e.g. /Library/ColorSync/Profiles on macOS, C:\Windows\System32\spool\drivers\color on Windows), and your print lab will usually publish their own. You don't need a pile of them - the profile for your actual output device is the one that matters.
Warning that matters
BMP and TGA cannot hold ICC profiles. The save nodes know this: feed a profile while saving to either format and the node logs a warning and silently discards it rather than crashing. TIFF, PNG, JPG, and WebP are where embedding actually lands. So if your whole point is color fidelity, pick TIFF or PNG, not the legacy formats.
Install
It's part of ComfyUI-Image-Process: cd ComfyUI/custom_nodes && git clone https://github.com/wakaura-asaho/comfyui-image-process, then pip install -r comfyui-image-process/requirements.txt and restart - or find the pack in ComfyUI Manager. Needs modern ComfyUI (V3-era nodes, frontend ≥ 1.37 / base ≥ 0.12). No models, no extra downloads beyond the pack's numpy/Pillow/scipy/opencv/scikit-image dependencies.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| profile | COMBO | 0 options: |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| ICC_PROFILE | ICC_PROFILE | — |
| ICC_INFO | STRING | — |