23 KiB
ComfyUI Layer Style
ComfyUI插件,通过一组节点实现仿照Adobe Photoshop的图层样式。
节点按照功能分为4组:LayerStyle, LayerMask, LayerUtility和LayerFilter。
- LayerStyle节点组提供仿照Adobe Photoshop的图层样式。
- LayerColor节点组提供调整颜色功能。
- LayerMask节点组提供Mask辅助工具。
- LayerUtility节点组提供图层合成工具和工作流相关的辅助节点。
- LayerFilter节点组提供图像效果滤镜。
更新说明
-
图像之间的混合模式增加新类型,新增color_burn颜色加深, color_dodge颜色减淡, linear_burn线性加深, linear_dodge线性减淡, overlay叠加, soft_light柔光, hard_light强光, vivid_light亮光, pin_light点光, linear_light线性光, hard_mix实色混合。新增的混合模式适用于所有支持混合模式的节点。
-
添加ColorMap 滤镜节点,用于制作伪彩色热力图效果。
-
添加WaterColor 和 SkinBeauty 节点。这是两个图像滤镜,生成水彩画和磨皮效果。
-
添加ImageShift 节点,使图片产生位移,可输出位移接缝遮罩,方便制作连续贴图。
-
添加ImageMaskScaleAs 节点,可根据参考图片调整图像或遮罩大小。
-
添加ImageScaleRestore 节点,用于配合CropByMask进行局部放大修复工作。
-
添加CropByMask 和 RestoreCropBox节点。此二者配合可将图片局部裁切重绘然后还原。
-
添加ColorAdapter 节点,可自动调整图片色调。
-
添加MaskStroke 节点,可产生mask描边。
-
添加LayerColor节点组,用于调整图像颜色。包括LUT Apply,Gamma, Brightness & Contrast, RGB, YUV, LAB和HSV。
-
添加MaskMotionBlur节点。
-
添加SoftLight节点。
-
添加ChannelShake节点,这是一个滤镜,能产生类似抖音logo的通道错位效果。
-
添加MaskGradient节点,可使mask产生渐变。
-
添加GetColorTone节点,可以获取图片的主色或平均色。添加MaskGrow和MaskEdgeShrink节点。
-
添加MaskBoxDetect节点,可以通过mask自动探测位置并输出到合成节点。添加XY to Percent节点,将绝对坐标转换为percent坐标。添加GaussianBlur节点。添加GetImageSize节点。
-
添加ExtendCanvas节点。
-
添加ImageBlendAdvance节点。这个节点允许合成尺寸不同的背景图和图层,提供了更加自由的合成体验。 添加PrintInfo节点作为工作流调试辅助工具。
-
添加ColorImage和GradientImage节点,用于生成纯色和渐变色图像。
-
添加GradientOverlay,ColorOverlay节点。增加无效mask输入判断,当输入无效mask时将其忽略。
-
添加InnerGlow, InnerShadow, MotionBlur节点。
-
所有已完成的节点重新命名,节点分为4组:LayerStyle, LayerMask, LayerUtility, LayerFilter。 因为重新命名,包含旧版节点的工作流需手动替换新版节点。
-
OuterGlow节点修改,增加亮度、灯光颜色、辉光颜色选项。
-
添加MaskInvert节点。
-
添加Stroke节点。
-
添加MaskPreview节点。
-
添加ImageOpacity节点。
-
layer_mask修改为非必选, 默认使用layer_image的alpha通道,允许通过输入mask改变之,但是尺寸必须一致。
-
添加ImageBlend节点。
-
添加OuterGlow节点。
-
首个节点DropShadow提交。
LayerStyle
DropShadow
- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩,阴影按此生成。
- invert_mask: 是否反转遮罩。
- blend_mode3: 阴影的混合模式。
- opacity: 阴影的不透明度。
- distance_x: 阴影的水平方向偏移量。
- distance_y: 阴影的垂直方向偏移量。
- grow: 阴影扩张幅度。
- blur:阴影模糊程度。
- shadow_color4: 阴影颜色。
- 节点注解
OuterGlow
- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩,外发光按此生成。
- invert_mask: 是否反转遮罩。
- blend_mode3: 发光的混合模式。
- opacity: 发光的不透明度。
- brightness: 发光亮度。
- glow_range: 发光范围。
- blur:发光模糊程度。
- light_color4: 发光中心颜色。
- glow_colo4: 辉光外围颜色。
- 节点注解
InnerShadow
- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩,阴影按此生成。
- invert_mask: 是否反转遮罩。
- blend_mode3: 阴影的混合模式。
- opacity: 阴影的不透明度。
- distance_x: 阴影的水平方向偏移量。
- distance_y: 阴影的垂直方向偏移量。
- grow: 阴影扩张幅度。
- blur:阴影模糊程度。
- shadow_color4: 阴影颜色。
- 节点注解
InnerGlow
- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩,发光按此生成。
- invert_mask: 是否反转遮罩。
- blend_mode3: 发光的混合模式。
- opacity: 发光的不透明度。
- brightness: 发光亮度。
- glow_range: 发光范围。
- blur:发光模糊程度。
- light_color4: 发光中心颜色。
- glow_colo4: 辉光外围颜色。
- 节点注解
Stroke
- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩,描边按此生成。
- invert_mask: 是否反转遮罩。
- blend_mode3: 描边的混合模式。
- opacity: 不透明度。
- stroke_grow: 描边扩张/收缩幅度,正值是扩张,负值是收缩。
- stroke_width: 描边宽度。
- blur: 描边模糊。
- stroke_color4: 描边颜色。
- 节点注解
GradientOverlay
- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩。
- invert_mask: 是否反转遮罩。
- blend_mode3: 描边的混合模式。
- opacity: 不透明度。
- start_color: 渐变开始端的颜色。
- start_alpha: 渐变开始端的透明度。
- end_color: 渐变结束端的颜色。
- end_alpha: 渐变结束端的透明度。
- angle: 渐变旋转角度。
- 节点注解
ColorOverlay
- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩。
- invert_mask: 是否反转遮罩。
- blend_mode3: 描边的混合模式。
- opacity: 不透明度。
- color: 覆盖的颜色。
- 节点注解
LayerColor
LUT Apply
将LUT应用到图像。仅支持.cube格式的LUT文件。
- LUT*: 这里列出了LUT文件夹中可用的.cube文件列表,选中的LUT文件将被应用到图像。
*LUT文件夹在resource_dir.ini中定义,这个文件位于插件根目录下。用文本编辑软件打开,找到“LUT_dir=”开头的这一行,编辑“=”之后为自定义文件夹路径名。这个文件夹里面所有的.cube文件将在ComfyUI初始化时被收集并显示在节点的列表中。如果ini中设定的文件夹无效,将启用插件自带的LUT文件夹。
ColorAdapter
- opacity: 图像调整色调之后的不透明度。
Gamma
改变图像的Gamma值。
- gamma: 图像的Gamma值。
Brightness & Contrast
改变图像的亮度、对比度和饱和度。
- brightness: 图像的亮度。
- contrast: 图像的对比度。
- saturation: 图像的色彩饱和度。
RGB
对图像的RGB各通道进行调整。
- R: 图像的R通道。
- G: 图像的G通道。
- B: 图像的B通道。
YUV
对图像的YUV各通道进行调整。
- Y: 图像的Y通道。
- U: 图像的U通道。
- V: 图像的V通道。
LAB
对图像的LAB各通道进行调整。
- L: 图像的L通道。
- A: 图像的A通道。
- B: 图像的B通道。
HSV
对图像的HSV各通道进行调整。
- H: 图像的H通道。
- S: 图像的S通道。
- V: 图像的V通道。
LayerMask
MaskBoxDetect
- detect: 探测方法,min_bounding_rect是最小外接矩形, max_inscribed_rect是最大内接矩形。
- x_adjust: 修正探测之后的水平偏移。
- y_adjust: 修正探测之后的垂直偏移。
- scale_adjust: 修正探测之后的缩放偏移。
输出:
- box_preview: 探测结果预览图。红色表示探测到的结果,绿色表示加上修正后的输出结果。
- x_percent: 水平位置以百分比输出。
- y_percent: 垂直位置以百分比输出。
- width: 宽度输出。
- height: 高度输出。
- x: 左上角位置x坐标输出。
- y: 左上角位置y坐标输出。
MaskGrow
- invert_mask: 是否反转遮罩。
- grow: 扩张幅度。正值是向外扩张,负值是向内收缩。
- blur: 模糊。
MaskEdgeShrink
- invert_mask: 是否反转遮罩。
- shrink_level: 收缩平滑级别。
- soft: 平滑幅度。
- edge_shrink: 边缘收缩幅度。
- edge_reserve: 保留边缘细节幅度, 100为完全保留,0为完全不保留。
MaskMotionBlur
- invert_mask: 是否反转遮罩。
- blur: 模糊大小。
- angle: 模糊角度。
MaskGradient
- invert_mask: 是否反转遮罩。
- gradient_side: 从哪个边产生渐变。有四个方向:顶侧top、底侧bottom、左侧left、右侧right。
- gradient_scale: 渐变距离。默认值100表示渐变产生一侧完全透明,另一侧完全不透明。数值越小,从透明到不透明的距离越短。
- gradient_offset: 渐变位置偏移。
- opacity: 渐变的不透明度。
MaskStroke
- invert_mask: 是否反转遮罩。
- stroke_grow: 描边扩张/收缩幅度,正值是扩张,负值是收缩。
- stroke_width: 描边宽度。
- blur: 描边模糊。
MaskPreview
MaskInvert
LayerUtility
ImageBlendAdvance
用于合成图层,允许在背景图片上合成与之不同尺寸的图层图片,并且设置位置和变换。提供多种混合模式供选择,可设置透明度。
节点提供了图层变换方法和抗锯齿选项。有助于提高合成画质。
- background_image: 背景图像。
- layer_image5: 用于合成的层图像。
- layer_mask2,5: 层图像的遮罩。
- invert_mask: 是否反转遮罩。
- blend_mode3: 图层混合模式。
- opacity: 不透明度。
- x_percent: 图层在背景图上的水平位置,用百分比表示,最左侧是0,最右侧是100,可以是小于0或者超过100,那表示图层有部分内容在画面之外。
- y_percent: 图层在背景图上的垂直位置,用百分比表示,最上侧是0,最下侧是100。例如设置为50表示垂直居中,20是偏上,80则是偏下。
- mirror: 镜像翻转。提供2种翻转模式, 水平翻转和垂直翻转。
- scale: 图层放大倍数,1.0 表示原大。
- aspect_ratio: 图层长宽比。1.0 是原始比例,大于此值表示拉长,小于此值表示压扁。
- rotate: 图层旋转度数。
- transform_method: 用于图层放大和旋转的采样方法,包括lanczos、bicubic、hamming、bilinear、box和nearest。不同的采样方法会影响合成的画质和画面处理时间。
- anti_aliasing: 抗锯齿,范围从0-16,数值越大,锯齿越不明显。过高的数值将显著降低节点的处理速度。
- 节点注解
CropByMask
将图片按照mask范围裁切,可设置四周边框保留大小。这个节点与RestoreCropBox和ImageScaleRestore配合使用,可以对图片的局部进行裁切,放大修改后贴回原处。

- image5: 输入的图像。
- mask_for_crop5: image的遮罩,将自动按照遮罩范围进行裁切。
- invert_mask: 是否反转遮罩。
- detect: 探测方法,min_bounding_rect是最小外接矩形, max_inscribed_rect是最大内接矩形。
- top_reserve: 裁切顶端保留大小。
- bottom_reserve: 裁切底部保留大小。
- left_reserve: 裁切左侧保留大小。
- right_reserve: 裁切右侧保留大小。
- 节点注解
输出:
- croped_image: 裁切后的图片。
- croped_mask: 裁切后的遮罩。
- crop_box: 裁切box数据,在RestoreCropBox节点恢复时使用。
- box_preview: 裁切位置预览图,红色是探测到的范围,绿色是加上保留边框后裁切的范围。
RestoreCropBox
将被CropByMask裁切后的图片恢复到原图。
- background_image: 裁切前的原图。
- croped_image5: 裁切后的图片。如果中间经过放大处理,恢复前需将尺寸还原。
- croped_mask2,5: 裁切后的遮罩。
- crop_box: 裁切时的box数据。
- invert_mask: 是否反转遮罩。
- 节点注解
ImageScaleRestore
图像缩放。此节点成对使用时,在第二个节点可自动还原图像到原始大小。

- image5: 输入的图像。
- mask2,5: 图像的遮罩。
- original_size: 可选输入,用于恢复图片到原始大小。
- scale: 缩放比例。当有original_size输入,或者scale_by_longest_side设置为True时,此项设置将被忽略。
- scale_by_longest_side: 允许按长边尺寸缩放。
- longest_side: scale_by_longest_side被设置为True时,此项将作为是图像长边的长度。当有original_size输入时,此项设置将被忽略。
- 节点注解
输出:
- image: 缩放后的图像。
- mask: 如果有mask输入,将输出缩放后的mask。
- original_size: 图像的原始大小数据,用于后续节点进行恢复。
ImageMaskScaleAs
- scale_as*: 参考大小。可以是图像image,也可以是遮罩mask。
- image: 待缩放的图像。此选项为可选输入,如果没有输入将输出纯黑图片。
- mask: 待缩放的遮罩。此选项为可选输入,如果没有输入将输出纯黑遮罩。
- fit: 缩放画幅宽高比模式。当原图与缩放尺寸画幅宽高比例不一致时,有3种模式可以选择, letterbox模式保留完整的画幅,空白处用黑色补足;crop模式保留完整的短边,长边超出部分将被切除;fill模式不保持画幅比例,宽高各自填满画面。
- method: 缩放的采样方法,包括lanczos、bicubic、hamming、bilinear、box和nearest。
*仅限输入image和mask, 如果强制接入其他类型输入,将导致节点错误。
输出:
- image: 如果有image输入,将输出缩放后的图像。
- mask: 如果有mask输入,将输出缩放后的遮罩。
- original_size: 图像的原始大小数据,用于后续节点进行恢复。
ImageShift
使图片产生位移。此节点支持位移接缝遮罩的输出,方便制作连续贴图。

- image5: 输入的图像。
- mask2,5: 图像的遮罩。
- shift_x: 位移的横向距离。
- shift_y: 位移的纵向距离。
- cyclic: 位移出界的部分是否循环。
- background_color: 背景颜色。如果cyclic设置为False,将使用这里的设置作为背景颜色。
- border_mask_width: 接缝遮罩宽度。
- border_mask_blur: 接缝遮罩模糊。
- 节点注解
ImageBlend
一个用于合成图层的简单节点,提供多种混合模式供选择,可设置透明度。

- background_image1: 背景图像。
- layer_image1: 用于合成的层图像。
- layer_mask1,2: 层图像的遮罩。
- invert_mask: 是否反转遮罩。
- blend_mode3: 图层混合模式。
- opacity: 不透明度。
- 节点注解
ImageOpacity
节点选项说明:
- image5: 图像输入,支持RGB和RGBA输入。
- mask2,5: 遮罩输入。
- invert_mask: 是否反转遮罩。
- opacity: 不透明度。
- 节点注解
ColorPicker
在色板上选取颜色并输出。
改自mtb nodes的web extensions。

节点选项说明:
- mode: 输出格式,可选十六进制(HEX)或十进制(DEC)。
输出:
- string
GetColorTone
- mode: 模式,有两种可选择,主颜色main_color和平均色average。
输出:
- string
ExtendCanvas
- invert_mask: 是否反转遮罩。
- top: 顶部扩展值。
- bottom: 底部扩展值。
- left: 左侧扩展值。
- right: 右侧扩展值。
- color; 画布颜色
XY to Percent
- x: 坐标x值。
- y: 坐标y值。
ColorImage
- width: 图像宽度。
- height: 图像高度。
- color4: 颜色。
GradientImage
- width: 图像宽度。
- height: 图像高度。
- angle: 渐变角度。
- start_color4: 开始端颜色。
- end_color4: 结束端颜色。
ImageChannelSplit
- mode: 通道模式。包含RGBA, YCbCr, LAB和HSV。
ImageChannelMerge
- mode: 通道模式。包含RGBA, YCbCr, LAB和HSV。
GetImageSize
PrintInfo
用于给工作流调试提供辅助。当运行时,任何接上这个节点的对象的属性将被打印到控制台。
这个节点允许任意类型的输入。
LayerFilter
SkinBeauty
- smooth: 皮肤平滑度。
- threshold: 磨皮范围。数值越小范围越大。
- opacity: 磨皮的不透明度。
WaterColor
- line_density: 线条密度。
- opacity: 水彩效果的不透明度。
SoftLight
- soft: 柔光大小。
- threshold: 柔光范围。柔光从画面最明亮的部分呈现。数值越低范围越大,越高范围越小。
- opacity: 柔光的不透明度。
ChannelShake
- distance: 通道分离的距离。
- angle: 通道分离的角度。
- mode: 通道错位排列顺序。
ColorMap
- color_map: 效果类型。共22种,各种类型的效果如上图所示。
- opacity: 伪彩色效果的不透明度。
MotionBlur
节点选项说明:
- angle: 模糊角度。
- blur: 模糊大小。
GaussianBlur
节点选项说明:
- blur: 模糊大小。
节点注解
1 image、mask和background_image(如果有输入)这三项必须是相同的尺寸。
2 mask不是必须的输入项,默认使用image的alpha通道,如果image输入不包含alpha通道将自动创建整个图像的alpha通道。如果输入mask,原本的alpha通道将被mask覆盖。
3 混合模式包括normal、multply、screen、add、subtract、difference、darker、lighter、color_burn、color_dodge、linear_burn、linear_dodge、overlay、soft_light、hard_light、vivid_light、pin_light、linear_light、hard_mix。
4 颜色使用16进制RGB字符串格式描述,例如 '#FA3D86'。
5 image和mask这两项必须是相同的尺寸。
3 混合模式预览

使用示例
在workflow目录下有json格式的工作流示例文件。
以下工作计划中
LayerMask:
- TextMask
LayerFilter:
- Emboss
- Contour
- Findedge
安装方法
- 在CompyUI插件目录(例如“CompyUI\custom_nodes\”)中打开cmd窗口,键入
git clone https://github.com/chflame163/ComfyUI_LayerStyle.git安装。或者下载解压zip文件,将得到的文件夹复制到 ComfyUI\custom_nodes\ - 安装依赖包,在资源管理器ComfyUI\custom_nodes\ComfyUI_WordCloud 插件目录位置打开cmd窗口,输入以下命令:
..\..\..\python_embeded\python.exe -m pip install -r requirements.txt - 重新打开ComfyUI。

















































































