feat: add opacity feature

This commit is contained in:
Albert Trott
2024-07-29 09:29:36 +02:00
parent 2e2be18f44
commit 21a3656c27
+9 -3
View File
@@ -12,6 +12,11 @@ class ImageBlender:
"required": {
"base_image": ("IMAGE",),
"blend_image": ("IMAGE",),
"opacity": ("FLOAT", {
"default": 1,
"min": 0.0,
"max": 1.0
}),
"blend_mode": (
[mode.value for mode in BlendModes],
{"default": BlendModes.NORMAL.value}
@@ -26,12 +31,10 @@ class ImageBlender:
FUNCTION = "blend"
CATEGORY = "ImageBlender"
def blend(self, base_image: torch.Tensor, blend_image: torch.Tensor, blend_mode: str, mask: torch.Tensor = None) -> tuple:
def blend(self, base_image: torch.Tensor, blend_image: torch.Tensor, opacity: float, blend_mode: str, mask: torch.Tensor = None) -> tuple:
blend_function = self.blend_functions.get(BlendModes(blend_mode), lambda x, y: x)
result = blend_function(base_image, blend_image)
print(mask.shape)
if mask is not None:
# Ensure mask has the same number of channels as the images
if mask.dim() == 3:
@@ -42,6 +45,9 @@ class ImageBlender:
else:
result = result * mask + base_image * (1 - mask)
# Apply opacity
result = base_image * opacity + result * (1 - opacity)
# Normalize the result
result = torch.clamp(result, 0, 1)
return (result,)