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

2.2 KiB

Documentation

  • Class name: Inpaint
  • Category: Bmad/CV/C.Photography
  • Output node: False

Inpaint节点旨在通过利用特定的修复技术来重建图像中缺失或受损的部分。它使用蒙版来识别需要修复的区域,并应用选定的算法来无缝填充这些区域,从而提高整体图像质量。

Input types

Required

  • img
    • img参数代表需要进行修复的图像。它至关重要,因为它提供了进行修复操作的视觉数据。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor
  • mask
    • mask参数指定了图像中需要修复的区域。它在引导修复过程集中于目标区域方面起着关键作用。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor
  • radius
    • radius参数决定了修复时每个点周围的邻域大小,影响修复效果的平滑度和范围。
    • Comfy dtype: INT
    • Python dtype: int
  • flag
    • flag参数允许选择要使用的修复算法,提供了灵活性,可以选择最适合图像特定需求的方法。
    • Comfy dtype: COMBO[STRING]
    • Python dtype: str

Output types

  • image
    • 输出是经过修复的图像,其中指定的区域已使用选定的修复技术进行了重建。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor

Usage tips

  • Infra type: GPU
  • Common nodes: unknown

Source code

class Inpaint:
    inpaint_method_map = {
        "TELEA": cv.INPAINT_TELEA,
        "NS": cv.INPAINT_NS,
    }
    inpaint_methods = list(inpaint_method_map.keys())

    @classmethod
    def INPUT_TYPES(s):
        return {
            "required": {
                "img": ("IMAGE",),
                "mask": ("IMAGE",),
                "radius": ("INT", {"default": 3, "min": 0, "step": 1}),
                "flag": (s.inpaint_methods, {"default": s.inpaint_methods[0]}),
            },
        }

    RETURN_TYPES = ("IMAGE",)
    FUNCTION = "paint"
    CATEGORY = "Bmad/CV/C.Photography"

    def paint(self, img, mask, radius, flag):
        img = tensor2opencv(img)
        mask = tensor2opencv(mask, 1)
        dst = cv.inpaint(img, mask, radius, self.inpaint_method_map[flag])
        result = opencv2tensor(dst)
        return (result,)