Add RM Mask Denoise Remap node

Remaps mask black/white to custom denoise levels for per-region
inpaint strength control. Output = black_denoise + mask * (white_denoise - black_denoise).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Moser9815
2026-03-15 23:46:10 -04:00
co-authored by Claude Opus 4.6
parent f0ac574e2b
commit 975bd4958c
2 changed files with 60 additions and 0 deletions
+4
View File
@@ -31,6 +31,8 @@ from .nodes.math_expression import NODE_CLASS_MAPPINGS as MATH_EXPR_MAPPINGS
from .nodes.math_expression import NODE_DISPLAY_NAME_MAPPINGS as MATH_EXPR_DISPLAY
from .nodes.make_image_batch import NODE_CLASS_MAPPINGS as IMAGE_BATCH_MAPPINGS
from .nodes.make_image_batch import NODE_DISPLAY_NAME_MAPPINGS as IMAGE_BATCH_DISPLAY
from .nodes.mask_denoise_remap import NODE_CLASS_MAPPINGS as MASK_DENOISE_REMAP_MAPPINGS
from .nodes.mask_denoise_remap import NODE_DISPLAY_NAME_MAPPINGS as MASK_DENOISE_REMAP_DISPLAY
# Combine all mappings
NODE_CLASS_MAPPINGS = {
@@ -48,6 +50,7 @@ NODE_CLASS_MAPPINGS = {
**MULTI_DETECT_MAPPINGS,
**MATH_EXPR_MAPPINGS,
**IMAGE_BATCH_MAPPINGS,
**MASK_DENOISE_REMAP_MAPPINGS,
}
NODE_DISPLAY_NAME_MAPPINGS = {
@@ -65,6 +68,7 @@ NODE_DISPLAY_NAME_MAPPINGS = {
**MULTI_DETECT_DISPLAY,
**MATH_EXPR_DISPLAY,
**IMAGE_BATCH_DISPLAY,
**MASK_DENOISE_REMAP_DISPLAY,
}
WEB_DIRECTORY = "./js"
+56
View File
@@ -0,0 +1,56 @@
"""
RM Mask Denoise Remap - Remaps mask values to control per-region denoise strength.
White areas get white_denoise, black areas get black_denoise, grays interpolate linearly.
"""
import torch
class RMMaskDenoiseRemap:
"""
Remaps a mask so that black and white regions map to custom denoise levels.
Feed the output into Set Latent Noise Mask for per-region denoise control.
Output = black_denoise + mask * (white_denoise - black_denoise)
"""
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"mask": ("MASK",),
"white_denoise": ("FLOAT", {
"default": 1.0,
"min": 0.0,
"max": 1.0,
"step": 0.01,
"display": "slider",
}),
"black_denoise": ("FLOAT", {
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01,
"display": "slider",
}),
}
}
CATEGORY = "RMAutomation/Mask"
RETURN_TYPES = ("MASK",)
RETURN_NAMES = ("mask",)
FUNCTION = "remap"
def remap(self, mask, white_denoise, black_denoise):
remapped = black_denoise + mask * (white_denoise - black_denoise)
remapped = torch.clamp(remapped, 0.0, 1.0)
return (remapped,)
NODE_CLASS_MAPPINGS = {
"RMMaskDenoiseRemap": RMMaskDenoiseRemap,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"RMMaskDenoiseRemap": "RM Mask Denoise Remap",
}