前言:
IC-Light是张吕敏教授的又一力作,在ComfyUI中被大家熟知的Controlnet就是这位大佬的作品。IC-Light项目已在Github上开源,主要的作用就是解决图片在灯光、光线、光源的问题。如果你想增强在生成图片过程中对光源光效的控制,可以参考本文内容的操作,文末附工作流
准备工作:节点安装与模型安装:
【IC-Light】:ComfyUI管理器--安装节点--搜索LC-Light安装
【IC-Light模型】:huggingface官网--搜索IC-Light下载配套模型(模型安装在:ComfyUI安装目录/models/unet文件夹里面)
iclight_sd15fbc.safetensors | 有背景融合的工作流会用到该模型 |
iclight_sd15fc.safetensors | 常规默认模型 |
iclight_sd15fcon.safetensors | 比常规默认多了噪声训练,测试使用不用下载 |
【KJNodes for ComfyUI】插件:ComfyUI管理器--安装节点--搜索KJNodes安装,该插件可以让你的工作流自定义光线形状、位置、大小
【ComfyUI-Image-Matting】插件:ComfyUI管理器--安装节点--搜索Matting安装,该插件会把上传的人物主体直接抠出来
【ComfyUI-IC-Light-Native】插件:ComfyUI管理器--安装节点--搜索IC-Light-Native安装
【ComfyUI-IC-Light-Native模型】:huggingface官网--搜索IC-Light-Native下载配套模型,模型安装在:ComfyUI安装目录/models/unet文件夹里面,注意与上文提到的IC-Light模型不同,这是两个模型
iclight_sd15_fbc_unet_ldm.safetensors | 有背景融合的工作流会用到该模型 |
iclight_sd15fc_unet_ldm.safetensors | 常规默认模型 |
三种工作流介绍:
1.通过上传光源图控制光源的工作流
下面是我工作流的完整截图:
为了方便理解,我给大家把流程进行了简化:如下图,该工作流分成了三个部分,我们要想把人物素材图像加入光影效果,首先要有两张图片(一张人物素材图片,一张光源图片),图片解码后,一张传输进入IC-Light,一张进入K采样器,最后再经过大模型和IC-Light模型之后,输出融合光影效果的人物图像。上面工作流之所以多了很多节点,最主要的原因是为了让两张图象保持一致的长度和宽度。这样在模型处理两张图象的时候不至于报错。
【应用ICLight条件】节点介绍:
节点左侧输入的正面条件、负面条件、VAE连接标准文生图的clip节点和主模型节点即可,前景Latent这里连接的是编码后的素材图片,背景Latent(可选)是有背景图融合的需求会选,注意如果这里进行连接后,LC-Light模型要切换成fbc结尾的模型
节点右侧输出的三个直接连接到K采样器即可
乘数:用来控制素材图片与光源图片的占比比例,过高可能会导致锐化严重,画面变形,通常这个数值保持在0.3左右比较合理
【重映射图像范围】节点介绍:通过控制此节点可以输出自己理想的光照效果。
最小值:控制光源图像暗部的参数,值越低,光效越少,如果不够暗可以将参数调整为负数
最大值:控制光源图像亮部的参数,值越高,亮度越高
钳制开启:超出范围的亮部/暗部被截断为纯白/纯黑,确保输出符合标准色彩空间
钳制关闭:允许HDR效果(如发光溢出),但可能引发后续节点的计算错误(如负值参与混合后出现噪点)
2.通过形状遮罩节点手工控制光源的工作流
下面是我工作流的完整截图,工作流的区域功能,整体思路与通过上传光源图控制光源工作流一致,主要介绍新增节点的参数
手动控制光源遮罩的流程:
【形状遮罩节点】参数介绍:
【遮罩模糊生长】参数介绍
名称 | 参数作用 | 技巧 |
---|---|---|
扩展(Expand) | 整体扩大或缩小遮罩区域,可以正值也可以负值 | 生成抽象光晕或创意遮罩选择>100;处理毛发、毛绒等复杂边缘微调范围建议10-50 |
扩展增量(Expand Increment) | 控制扩展/收缩的“步长精度”,值越小,扩展过程越平滑,但会增加计算时长,值越大,,会进行快速扩展,但边缘可能会出现阶梯状 | 默认保持1,仅需要在极细腻边缘时降低 |
倒角(Bevel) | 遮罩边缘生成斜面,模拟立体感或柔化锐利边缘。值越大,斜面宽度增加,边缘更加圆滑,值=0则无倒角,边缘锐利 | 搭配建议:与模糊半径(Blur Radius)配合,制造自然光晕 |
反转输入(Invert Input) | 反转遮罩的黑白区域(原选区与非选区互换) | 当原始遮罩选区方向错误时快速修正,无需重新绘制 |
模糊半径(Blur Radius) | 柔化遮罩边缘,值越大过渡越自然,但可能丢失细节 | 低模糊(1~5):保留锐利边缘,用于硬表面遮罩 高模糊(>20):模拟发光效果或背景虚化 |
线性透明(Linear Transparency) | 控制透明度过渡方式 开启:透明度按线性渐变(硬边到透明) 关闭:透明度按曲线渐变(自然柔和) | 开启:适合机械硬边光效(如镭射光) 关闭:适合自然光晕(如阳光透过树叶) |
腐蚀系数(Erosion) | 类似于“腐蚀”形态学操作,向内细化遮罩边缘,去除噪点或毛刺 值越大:腐蚀强度越高,可能丢失细小区域 | 与扩展(Expand)反向调节,补偿腐蚀后的选区缩小 典型组合:Expand=10, Erosion=5 → 扩展后轻微腐蚀平滑边缘 |
fill_holes(填充孔洞) | 作用:自动填充遮罩内部的空洞(如人物遮罩中衣服的镂空部分) 开启:强制封闭小孔洞,生成连续选区 关闭:保留原始遮罩的孔洞结构 | 注意:对大面积镂空无效(如栅栏),仅处理微小孔洞 |
3.通过提示词控制光源的工作流
下面是我工作流的完整截图,工作流的区域功能分成三块,首先是控制光效的IC-Light,第二块默认文生图工作流,在正向提示词中填写了沙滩、大海、阳光,第三块是将上传图片抠图的模块,抠出人物图像后,生成背景,并进行光效融合,本次背景光源图片由文生图工作流的提示词生成
工作流链接-提取码V56d