Files
CavinHuang-comfyui-nodes-docs/docs/RegionalIPAdapterColorMask __Inspire.md
2024-07-04 08:39:03 +08:00

4.6 KiB

Documentation

这个节点旨在根据颜色遮罩来应用局部图像处理适配。它能够将特定的图像嵌入和调整集成到图像的指定区域中(通过颜色识别),从而实现局部图像修改或增强。

Input types

Required

  • color_mask
    • 指定将应用颜色遮罩的图像,作为局部适配的基础。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor
  • mask_color
    • 定义用于识别图像中感兴趣区域的颜色,以进行适配。
    • Comfy dtype: STRING
    • Python dtype: str
  • image
    • 目标图像,即适配效果的应用对象,为应用的效果提供上下文。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor
  • weight
    • 决定应用于指定区域的嵌入的强度或影响力。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • noise
    • 指定与嵌入一起应用的噪声级别,用于适配效果。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • weight_type
    • 指定应用权重到嵌入的方法,提供原始、线性或通道惩罚等选项,以增加适配的灵活性。
    • Comfy dtype: COMBO[STRING]
    • Python dtype: List[str]
  • start_at
    • 标记适配过程中效果应用的起始点,允许分阶段或渐进式实施。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • end_at
    • 定义效果应用的终点,能够精确控制适配的范围。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • unfold_batch
    • 一个布尔标志,设置时允许批量处理图像,提高适配效率。
    • Comfy dtype: BOOLEAN
    • Python dtype: bool

Optional

  • faceid_v2
    • 可选的布尔标志,用于启用或禁用人脸识别版本2,以实现更精细的适配。
    • Comfy dtype: BOOLEAN
    • Python dtype: bool
  • weight_v2
    • 版本2适配的可选权重参数,提供对适配强度的额外控制。
    • Comfy dtype: FLOAT
    • Python dtype: float
  • combine_embeds
    • 指定组合嵌入的方法,选项包括连接、加法、减法、平均和归一化平均,为效果应用提供多样性。
    • Comfy dtype: COMBO[STRING]
    • Python dtype: str
  • neg_image
    • 可选的负面图像,用于指定区域内不希望出现的效果或调整,为主图像提供平衡。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor

Output types

  • regional_ipadapter
    • 适配后的图像处理设置,封装了基于指定颜色遮罩和嵌入的局部适配。
    • Comfy dtype: REGIONAL_IPADAPTER
    • Python dtype: IPAdapterConditioning
  • mask
    • 基于指定颜色生成的遮罩,识别适配的感兴趣区域。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class RegionalIPAdapterColorMask:
    @classmethod
    def INPUT_TYPES(s):
        return {
            "required": {
                "color_mask": ("IMAGE",),
                "mask_color": ("STRING", {"multiline": False, "default": "#FFFFFF"}),
                
                "image": ("IMAGE",),
                "weight": ("FLOAT", {"default": 0.7, "min": -1, "max": 3, "step": 0.05}),
                "noise": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0, "step": 0.01}),
                "weight_type": (["original", "linear", "channel penalty"], ),
                "start_at": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.001}),
                "end_at": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.001}),
                "unfold_batch": ("BOOLEAN", {"default": False}),
            },
            "optional": {
                "faceid_v2": ("BOOLEAN", {"default": False }),
                "weight_v2": ("FLOAT", {"default": 1.0, "min": -1, "max": 3, "step": 0.05}),
                "combine_embeds": (["concat", "add", "subtract", "average", "norm average"],),
                "neg_image": ("IMAGE",),
            }
        }

    RETURN_TYPES = ("REGIONAL_IPADAPTER", "MASK")
    FUNCTION = "doit"

    CATEGORY = "InspirePack/Regional"

    def doit(self, color_mask, mask_color, image, weight, noise, weight_type, start_at=0.0, end_at=1.0, unfold_batch=False, faceid_v2=False, weight_v2=False, combine_embeds="concat", neg_image=None):
        mask = color_to_mask(color_mask, mask_color)
        cond = IPAdapterConditioning(mask, weight, weight_type, noise=noise, image=image, neg_image=neg_image, start_at=start_at, end_at=end_at, unfold_batch=unfold_batch, weight_v2=weight_v2, combine_embeds=combine_embeds)
        return (cond, mask)