Files
CavinHuang-comfyui-nodes-docs/docs/CenterImage.md
2024-05-26 20:35:16 +08:00

3.0 KiB

Documentation

CenterImage节点旨在将图像处理并居中放置在给定的画布内,重点关注指定的区域。它通过计算所需的坐标和尺寸来实现这一点,同时考虑所提供的边距。该节点的功能不仅限于简单的放置;它还生成一个与居中区域相对应的掩码,增强了其在各种图像处理任务中的适用性。

Input types

Required

  • canvas
    • 画布参数是必需的,因为它代表了将执行居中操作的基础图像。它是节点执行的基础,直接影响输出的网格和掩码。
    • Comfy dtype: IMAGE
    • Python dtype: PIL.Image.Image
  • left
    • left参数指定了居中操作的左边距。它对于确定图像在画布中的确切位置至关重要,并有助于最终居中的外观。
    • Comfy dtype: INT
    • Python dtype: int
  • top
    • top参数定义了居中过程中的上边距。它在图像的垂直放置中起着重要作用,并影响整体的居中布局。
    • Comfy dtype: INT
    • Python dtype: int
  • right
    • right参数设置了画布内图像的右边距。它是水平定位的重要因素,并有助于精确地构建居中图像的框架。
    • Comfy dtype: INT
    • Python dtype: int
  • bottom
    • bottom参数指示了图像居中所需的下边距。它对于垂直对齐至关重要,并确保图像正确地包含在画布边界内。
    • Comfy dtype: INT
    • Python dtype: int

Output types

  • grid
    • 网格输出提供了画布内居中图像的坐标和尺寸。这些信息对于进一步的图像处理或操作任务至关重要。
    • Comfy dtype: _GRID
    • Python dtype: Tuple[int, int, int, int]
  • mask
    • 掩码输出是一个二进制图像,它描绘了居中图像的区域。它在图像处理工作流程中的掩蔽、过滤或分割等应用中非常重要。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor

Usage tips

  • Infra type: CPU

Source code

class CenterImage:

    @classmethod
    def INPUT_TYPES(s):
        return {'required': {'canvas': ('IMAGE',), 'left': ('INT', {'default': 24, 'min': 0, 'max': 5000, 'step': 1, 'display': 'number'}), 'top': ('INT', {'default': 24, 'min': 0, 'max': 5000, 'step': 1, 'display': 'number'}), 'right': ('INT', {'default': 24, 'min': 0, 'max': 5000, 'step': 1, 'display': 'number'}), 'bottom': ('INT', {'default': 24, 'min': 0, 'max': 5000, 'step': 1, 'display': 'number'})}}
    RETURN_TYPES = ('_GRID', 'MASK')
    RETURN_NAMES = ('grid', 'mask')
    FUNCTION = 'run'
    CATEGORY = '♾️Mixlab/Layer'
    INPUT_IS_LIST = False

    def run(self, canvas, left, top, right, bottom):
        canvas = tensor2pil(canvas)
        grid = centerImage((left, top, right, bottom), canvas)
        mask = createMask(canvas, left, top, canvas.width - left - right, canvas.height - top - bottom)
        return (grid, pil2tensor(mask))