2.2 KiB
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,)