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

2.7 KiB

Documentation

WAS_Image_Stitch 节点旨在根据指定的缝合方向无缝地组合两张图像。它应用羽化效果以在图像之间创建平滑过渡,这对于创建全景图像或纹理特别有用。该节点能够处理不同的缝合模式,例如'top'、'left'、'bottom'和'right',允许灵活的图像组合。

Input types

Required

  • image_a
    • 要缝合的第一张图像。它作为缝合操作的基础层,并决定了最终缝合图像的初始部分。
    • Comfy dtype: IMAGE
    • Python dtype: PIL.Image.Image
  • image_b
    • 要缝合的第二张图像。它将根据指定的缝合模式与第一张图像对齐,并混合以创建无缝的组合。
    • Comfy dtype: IMAGE
    • Python dtype: PIL.Image.Image

Optional

  • stitch
    • 两张图像应缝合在一起的方向。可以是'top'、'left'、'bottom'或'right',定义了缝合的方向以及图像组合的方式。
    • Comfy dtype: COMBO[top, left, bottom, right]
    • Python dtype: str
  • feathering
    • 在缝合边界应用的羽化量。更高的值会在图像之间产生更柔和、更渐进的过渡,但也会减小输出图像的大小。
    • Comfy dtype: INT
    • Python dtype: int

Output types

  • stitched_image
    • 缝合过程后的结果图像。它根据指定的缝合模式和羽化将两个输入图像组合成单个、无缝的图像。
    • Comfy dtype: IMAGE
    • Python dtype: PIL.Image.Image

Usage tips

  • Infra type: CPU

Source code

class WAS_Image_Stitch:

    def __init__(self):
        pass

    @classmethod
    def INPUT_TYPES(cls):
        return {'required': {'image_a': ('IMAGE',), 'image_b': ('IMAGE',), 'stitch': (['top', 'left', 'bottom', 'right'],), 'feathering': ('INT', {'default': 50, 'min': 0, 'max': 2048, 'step': 1})}}
    RETURN_TYPES = ('IMAGE',)
    FUNCTION = 'image_stitching'
    CATEGORY = 'WAS Suite/Image/Transform'

    def image_stitching(self, image_a, image_b, stitch='right', feathering=50):
        valid_stitches = ['top', 'left', 'bottom', 'right']
        if stitch not in valid_stitches:
            cstr(f"The stitch mode `{stitch}` is not valid. Valid sitch modes are {', '.join(valid_stitches)}").error.print()
        if feathering > 2048:
            cstr(f'The stitch feathering of `{feathering}` is too high. Please choose a value between `0` and `2048`').error.print()
        WTools = WAS_Tools_Class()
        stitched_image = WTools.stitch_image(tensor2pil(image_a), tensor2pil(image_b), stitch, feathering)
        return (pil2tensor(stitched_image),)