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

2.2 KiB

Documentation

该节点通过算术运算实现两幅图像的合成,通过选择的混合模式(blend_mode)来创建视觉效果,实现对image1和image2的融合。

Input types

Required

  • image1
    • 要混合的第一幅图像,对于算术运算的发生至关重要,并影响最终输出结果。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor
  • image2
    • 参与混合过程的第二幅图像,与image1相互作用,决定了生成的混合图像的特征。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor
  • blend_mode
    • 算术运算的模式,决定了如何组合image1和image2,显著影响最终的视觉结果。
    • Comfy dtype: COMBO['add', 'subtract', 'difference']
    • Python dtype: str

Output types

  • blended_image
    • 算术混合过程后的生成图像,包含了所选混合模式的视觉效应。
    • Comfy dtype: IMAGE
    • Python dtype: torch.Tensor

Usage tips

  • Infra type: CPU

Source code

class ArithmeticBlend:

    def __init__(self):
        pass

    @classmethod
    def INPUT_TYPES(s):
        return {'required': {'image1': ('IMAGE',), 'image2': ('IMAGE',), 'blend_mode': (['add', 'subtract', 'difference'],)}}
    RETURN_TYPES = ('IMAGE',)
    FUNCTION = 'arithmetic_blend_images'
    CATEGORY = 'postprocessing/Blends'

    def arithmetic_blend_images(self, image1: torch.Tensor, image2: torch.Tensor, blend_mode: str):
        if blend_mode == 'add':
            blended_image = self.add(image1, image2)
        elif blend_mode == 'subtract':
            blended_image = self.subtract(image1, image2)
        elif blend_mode == 'difference':
            blended_image = self.difference(image1, image2)
        else:
            raise ValueError(f'Unsupported arithmetic blend mode: {blend_mode}')
        blended_image = torch.clamp(blended_image, 0, 1)
        return (blended_image,)

    def add(self, img1, img2):
        return img1 + img2

    def subtract(self, img1, img2):
        return img1 - img2

    def difference(self, img1, img2):
        return torch.abs(img1 - img2)