raubatz's picture
download
raw
1.57 kB
import torch
class ArithmeticBlend:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"image1": ("IMAGE",),
"image2": ("IMAGE",),
"blend_mode": (["add", "subtract", "difference", "divide"],),
},
}
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)
elif blend_mode == "divide":
blended_image = self.divide(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)
def divide(self, img1, img2):
img2_safe = torch.where(img1 == 0, torch.tensor(1e-10), img1)
return img1 / img2_safe
NODE_CLASS_MAPPINGS = {
"ArithmeticBlend": ArithmeticBlend,
}

Xet Storage Details

Size:
1.57 kB
·
Xet hash:
fbe82db92646edfa5237d24fa9ea63728ccba9b2e7f97981eb83defdc0b1153e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.