ComfyUI_ColorMod 插件保姆级教程
1. 插件简介
插件地址: https://github.com/city96/ComfyUI_ColorMod
ComfyUI_ColorMod 是一个专门用来调整图片颜色的插件包,就像手机里的滤镜功能一样,但功能更强大。这个插件可以让你:
- 调整图片亮度和对比度 - 就像调节电视机的亮度按钮一样
- 制作HDR图片 - 让图片看起来更有层次感,就像专业摄影师拍的照片
- 保存高质量图片 - 保存16位的超清晰图片,比普通8位图片更细腻
- 转换图片色彩空间 - 就像把彩色照片转成黑白照片,但有更多选择
这个插件特别适合想要让AI生成的图片看起来更专业、更有质感的朋友。
2. 如何安装
方法一:通过ComfyUI管理器安装(推荐)
- 打开ComfyUI
- 点击右侧的"Manager"按钮
- 搜索"ColorMod"
- 点击安装即可
方法二:手动安装
- 打开终端或命令提示符
- 进入你的ComfyUI安装目录
- 运行以下命令:
cd ComfyUI/custom_nodes
git clone https://github.com/city96/ComfyUI_ColorMod.git
安装依赖包(重要!)
安装完插件后,还需要安装一些额外的工具包,否则很多功能用不了:
Windows用户:
.\python_embeded\python.exe -s -m pip install -r .\ComfyUI\custom_nodes\ComfyUI_ColorMod\requirements.txt
Mac/Linux用户:
pip install -r ComfyUI/custom_nodes/ComfyUI_ColorMod/requirements.txt
3. 节点详细解析
3.1 ColorMod (compress) - 图片压缩处理节点
这个节点就像一个"图片修复器",当你的图片颜色超出正常范围时,它能帮你修复。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的图片 | 输入的图像数据 | 连接任何图片输出 |
| mode | mode | clip/normalize/compress | clip | 选择修复方式 | 图像值处理模式 | clip最常用,能修复过亮过暗 |
mode参数详细说明:
- clip(裁剪):就像用剪刀把超出边界的部分剪掉,最安全的选择
- normalize(标准化):把图片的亮度重新分布,让最暗的地方变成黑色,最亮的地方变成白色
- compress(压缩):把超出范围的颜色"挤压"回正常范围内
3.2 ColorMod (move) - 整体亮度调节节点
这个节点就像电视机的亮度按钮,可以让整张图片变亮或变暗。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的图片 | 输入的图像数据 | 连接任何图片输出 |
| move | move | -1.0到1.0 | 0.0 | 亮度调节滑块 | 像素值偏移量 | 正数变亮,负数变暗,0.2让图片稍微亮一点 |
| clip | clip | True/False | True | 是否限制颜色范围 | 是否裁剪超出范围的值 | True防止颜色溢出,False允许HDR效果 |
3.3 ColorMod (move pivot) - 支点亮度调节节点
这个节点就像跷跷板,你可以设定一个"支点",然后调整图片的明暗对比。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的图片 | 输入的图像数据 | 连接任何图片输出 |
| pivot | pivot | 0.001到0.999 | 0.5 | 支点位置 | 亮度分割点 | 0.5是中间灰,0.3偏向暗部,0.7偏向亮部 |
| move | move | -2.0到2.0 | 0.0 | 调整强度 | 支点移动量 | 正数让对比更强,负数让对比更柔和 |
| clip | clip | True/False | True | 是否限制颜色范围 | 是否裁剪超出范围的值 | True防止颜色溢出,False允许HDR效果 |
3.4 ColorMod (edges) - 边缘对比调节节点
这个节点就像专业的"对比度调节器",可以分别控制暗部和亮部的强度。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的图片 | 输入的图像数据 | 连接任何图片输出 |
| low | low | 0.0到2.0 | 1.0 | 暗部强度 | 低亮度区域缩放系数 | 大于1让暗部更暗,小于1让暗部变亮 |
| pivot | pivot | 0.0到1.0 | 0.5 | 明暗分界点 | 亮度分割阈值 | 0.5是中间值,调整哪些算暗部哪些算亮部 |
| high | high | 0.0到2.0 | 1.0 | 亮部强度 | 高亮度区域缩放系数 | 大于1让亮部更亮,小于1让亮部变暗 |
| clip | clip | True/False | True | 是否限制颜色范围 | 是否裁剪超出范围的值 | True防止颜色溢出,False允许HDR效果 |
3.5 Save Image (16 bit) - 高质量图片保存节点
这个节点就像一个"超清相机",能保存比普通图片更清晰的16位图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例例 |
|---|---|---|---|---|---|---|
| images | images | IMAGE类型 | - | 要保存的图片 | 输入的图像数据 | 连接任何图片输出 |
| filename_prefix | filename_prefix | 文本 | "ComfyUI" | 文件名前缀 | 保存文件的名称前缀 | 输入"MyArt"会保存为"MyArt_00001_.png" |
3.6 Preview Image (16 bit) - 高质量图片预览节点
这个节点就像一个"高清显示器",让你预览16位的超清图片效果。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE类型 | - | 要预览的图片 | 输入的图像数据 | 连接任何图片输出 |
3.7 Load Image (16 bit) - 高质量图片加载节点
这个节点就像一个"超清图片阅读器",能读取16位的高质量PNG图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 文件选择 | - | 选择要加载的PNG文件 | 16位PNG图像文件路径 | 从下拉菜单选择input文件夹中的PNG文件 |
3.8 Exposure Fusion - 曝光融合节点
这个节点就像"魔法合成器",能把多张不同亮度的图片合成一张更有层次的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image_a | image_a | IMAGE类型 | - | 第一张图片(必需) | 主要输入图像 | 连接一张正常亮度的图片 |
| image_b | image_b | IMAGE类型 | 可选 | 第二张图片(可选) | 可选输入图像 | 连接一张稍亮的图片 |
| image_c | image_c | IMAGE类型 | 可选 | 第三张图片(可选) | 可选输入图像 | 连接一张稍暗的图片 |
| image_d | image_d | IMAGE类型 | 可选 | 第四张图片(可选) | 可选输入图像 | 连接一张很亮或很暗的图片 |
3.9 Create HDR image - HDR图片创建节点
这个节点就像"专业摄影师的HDR相机",需要三张不同曝光的图片来创建HDR效果。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image_a | image_a | IMAGE类型 | - | 第一张图片 | 第一个曝光级别的图像 | 连接一张正常亮度的图片 |
| image_b | image_b | IMAGE类型 | - | 第二张图片 | 第二个曝光级别的图像 | 连接一张不同亮度的图片 |
| image_c | image_c | IMAGE类型 | - | 第三张图片 | 第三个曝光级别的图像 | 连接一张另一种亮度的图片 |
| exposure_a | exposure_a | 0.001到1024.0 | 1.0 | 第一张图片的曝光值 | 第一个图像的曝光时间 | 1.0表示正常曝光 |
| exposure_b | exposure_b | 0.001到1024.0 | 2.5 | 第二张图片的曝光值 | 第二个图像的曝光时间 | 2.5表示稍微过曝 |
| exposure_c | exposure_c | 0.001到1024.0 | 8.0 | 第三张图片的曝光值 | 第三个图像的曝光时间 | 8.0表示严重过曝 |
3.10 Save Image (HDR) - HDR图片保存节点
这个节点就像"专业HDR存储器",能保存HDR格式的图片文件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE类型 | - | 要保存的HDR图片 | HDR图像数据 | 连接HDR节点的输出 |
| filename_prefix | filename_prefix | 文本 | "HDR/ComfyUI" | 文件名前缀 | 保存文件的名称前缀 | 输入"MyHDR"会保存为"MyHDR_00001_.hdr" |
3.11 Load Image (HDR) - HDR图片加载节点
这个节点就像"HDR图片阅读器",能读取HDR格式的图片文件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 文件选择 | - | 选择要加载的HDR文件 | HDR图像文件路径 | 从下拉菜单选择input文件夹中的.hdr文件 |
3.12 Tonemap (simple) - 简单色调映射节点
这个节点就像"HDR转普通图片的转换器",把HDR图片转成能正常显示的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的HDR图片 | 输入的HDR图像数据 | 连接HDR图片输出 |
| gamma | gamma | 0.0到8.0 | 1.0 | 伽马校正值 | 伽马校正系数 | 大于1让图片更亮,小于1让图片更暗 |
| mult | mult | 0.0到8.0 | 1.0 | 亮度倍数 | 亮度乘数因子 | 2.0让图片亮度翻倍,0.5让图片变暗一半 |
3.13 Tonemap (Drago) - Drago色调映射节点
这个节点使用Drago算法,就像"专业摄影师的HDR处理工具"。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的HDR图片 | 输入的HDR图像数据 | 连接HDR图片输出 |
| gamma | gamma | 0.0到8.0 | 1.0 | 伽马校正值 | 伽马校正系数 | 调整整体亮度曲线 |
| saturation | saturation | 0.0到8.0 | 1.0 | 饱和度 | 颜色饱和度系数 | 大于1颜色更鲜艳,小于1颜色更淡 |
| bias | bias | 0.0到1.0 | 1.0 | 偏置值 | Drago算法偏置参数 | 调整明暗对比的偏向性 |
| mult | mult | 0.0到8.0 | 1.0 | 亮度倍数 | 亮度乘数因子 | 最终亮度调整 |
3.14 Tonemap (Durand) - Durand色调映射节点
这个节点使用Durand算法,就像"高级图片美化器"。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的HDR图片 | 输入的HDR图像数据 | 连接HDR图片输出 |
| gamma | gamma | 0.0到8.0 | 1.0 | 伽马校正值 | 伽马校正系数 | 调整整体亮度曲线 |
| contrast | contrast | 0.0到8.0 | 1.0 | 对比度 | 对比度增强系数 | 大于1对比更强,小于1对比更柔和 |
| saturation | saturation | 0.0到8.0 | 1.0 | 饱和度 | 颜色饱和度系数 | 控制颜色鲜艳程度 |
| sigma_space | sigma_space | 0.0到8.0 | 1.0 | 空间标准差 | 双边滤波空间参数 | 控制空间平滑程度 |
| sigma_color | sigma_color | 0.0到8.0 | 1.0 | 颜色标准差 | 双边滤波颜色参数 | 控制颜色平滑程度 |
| mult | mult | 0.0到8.0 | 1.0 | 亮度倍数 | 亮度乘数因子 | 最终亮度调整 |
3.15 Tonemap (Mantiuk) - Mantiuk色调映射节点
这个节点使用Mantiuk算法,就像"艺术级HDR处理器"。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的HDR图片 | 输入的HDR图像数据 | 连接HDR图片输出 |
| gamma | gamma | 0.0到8.0 | 1.0 | 伽马校正值 | 伽马校正系数 | 调整整体亮度曲线 |
| scale | scale | 0.0到8.0 | 1.0 | 缩放因子 | Mantiuk算法缩放参数 | 控制色调映射强度 |
| saturation | saturation | 0.0到8.0 | 1.0 | 饱和度 | 颜色饱和度系数 | 控制颜色鲜艳程度 |
| mult | mult | 0.0到8.0 | 1.0 | 亮度倍数 | 亮度乘数因子 | 最终亮度调整 |
3.16 Tonemap (Reinhard) - Reinhard色调映射节点
这个节点使用Reinhard算法,就像"经典HDR处理器"。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要处理的HDR图片 | 输入的HDR图像数据 | 连接HDR图片输出 |
| gamma | gamma | 0.0到8.0 | 1.0 | 伽马校正值 | 伽马校正系数 | 调整整体亮度曲线 |
| intensity | intensity | -8.0到8.0 | 0.0 | 强度调节 | 光照强度参数 | 正数增强亮部,负数增强暗部 |
| light_adapt | light_adapt | 0.0到1.6 | 1.0 | 光适应性 | 光照适应参数 | 控制对光照变化的适应程度 |
| color_adapt | color_adapt | 0.0到1.6 | 1.0 | 色彩适应性 | 色彩适应参数 | 控制对颜色变化的适应程度 |
| mult | mult | 0.0到8.0 | 1.0 | 亮度倍数 | 亮度乘数因子 | 最终亮度调整 |
3.17 Convert color space - 色彩空间转换节点
这个节点就像"颜色翻译器",能把图片从一种颜色模式转换到另一种。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | - | 要转换的图片 | 输入的图像数据 | 连接任何图片输出 |
| src | src | RGB/BGR/HLS/HSV/YCrCb/YUV | RGB | 源色彩空间 | 输入图像的色彩空间 | RGB是最常见的彩色模式 |
| dst | dst | RGB/BGR/HLS/HSV/YCrCb/YUV | RGB | 目标色彩空间 | 输出图像的色彩空间 | HSV适合调整颜色,YUV适合视频处理 |
4. 使用技巧和建议
4.1 基础调色技巧
- 先用ColorMod (move)调整整体亮度,就像调节显示器亮度一样
- 再用ColorMod (edges)精细调整对比度,让图片更有层次感
- 最后用ColorMod (compress)修复颜色溢出,确保图片正常显示
4.2 HDR工作流程
- 准备多张不同亮度的图片 - 可以用同一张图片通过ColorMod调出不同亮度版本
- 使用Create HDR image或Exposure Fusion - 合成HDR图片
- 用Tonemap节点转换 - 把HDR转成能正常显示的图片
- 选择合适的Tonemap算法:
- Reinhard:经典选择,效果自然
- Drago:适合风景照片
- Durand:适合人像照片
- Mantiuk:适合艺术效果
4.3 高质量图片处理
- 使用16位节点保存重要图片 - 质量更高,后期处理空间更大
- HDR图片必须经过Tonemap才能正常显示 - 否则会出现奇怪的颜色
- clip参数建议保持True - 除非你确实需要HDR效果
4.4 色彩空间转换技巧
- RGB转HSV后调色更直观 - H控制色相,S控制饱和度,V控制明度
- 处理完记得转回RGB - 否则后续节点可能出错
- YUV适合做黑白效果 - Y通道就是亮度信息
5. 常见问题解答
Q1: 为什么安装后看不到某些节点?
A: 可能是依赖包没装全。请确保安装了requirements.txt中的所有包,特别是opencv-python和pypng。
Q2: HDR图片看起来很奇怪怎么办?
A: HDR图片必须通过Tonemap节点转换才能正常显示。直接预览HDR图片会出现异常颜色。
Q3: 16位图片和普通图片有什么区别?
A: 16位图片包含更多颜色信息(65536种灰度 vs 256种),在后期处理时不容易出现色彩断层。
Q4: ColorMod节点的可视化图表是什么意思?
A: 图表显示颜色变换曲线,横轴是输入亮度,纵轴是输出亮度。直线表示不变,曲线表示变换效果。
Q5: 哪个Tonemap算法最好?
A: 没有绝对最好的,建议都试试:
- 自然效果:Reinhard
- 风景照片:Drago
- 人像照片:Durand
- 艺术效果:Mantiuk
Q6: 为什么有些Tonemap节点用不了?
A: 某些算法需要特定版本的OpenCV。如果节点不可用,说明你的OpenCV版本不支持该算法。
6. 进阶应用示例
6.1 制作电影级HDR效果
- 用同一张图片,通过ColorMod (move)创建3个版本:亮(+0.3)、正常(0.0)、暗(-0.3)
- 用Create HDR image合成,曝光值设为1.0、2.5、8.0
- 用Tonemap (Reinhard)转换,mult设为2.0-3.0
6.2 创建胶片风格滤镜
- 用ColorMod (edges)调整对比度:low=0.8, high=1.2
- 转换到HSV色彩空间
- 调整饱和度和色相
- 转回RGB并保存为16位
6.3 修复过曝照片
- 用ColorMod (move)降低整体亮度:move=-0.2
- 用ColorMod (edges)恢复暗部细节:low=1.3, pivot=0.3
- 用ColorMod (compress)修复溢出:mode=clip
7. 总结
ComfyUI_ColorMod插件是一个功能强大的图像处理工具包,包含17个专业节点,涵盖了从基础调色到高级HDR处理的全部功能。通过合理组合这些节点,你可以:
- 制作专业级的HDR图片
- 精确控制图片的明暗对比
- 保存和处理高质量16位图片
- 进行各种色彩空间转换
- 创造独特的视觉效果
记住,好的效果需要多次尝试和调整。建议从简单的亮度调节开始,逐步掌握更高级的HDR和色彩空间功能。每个参数都有其独特的作用,多实验才能找到最适合你的设置。