Files
1038lab-ComfyUI-RMBG/web/js/appearance.js
T
2025-07-01 23:10:06 -07:00

69 lines
2.0 KiB
JavaScript

import { app } from "/scripts/app.js";
const COLOR_THEMES = {
segment: { nodeColor: "#222e40", nodeBgColor: "#364254", width: 340 },
utility: { nodeColor: "#2e3e57", nodeBgColor: "#4b5b73", width: 320 },
};
const NODE_COLORS = {
// Segmentation nodes
"RMBG": "segment",
"Segment": "segment",
"SegmentV2": "segment",
"FaceSegment": "segment",
"ClothesSegment": "segment",
"BodySegment": "segment",
"FacialSegment": "segment",
"FashionSegmentAccessories": "segment",
"FashionSegmentClothing": "segment",
"BiRefNetRMBG": "segment",
// Utility nodes
"AILab_LoadImage": "utility",
"AILab_Preview": "utility",
"AILab_ImagePreview": "utility",
"AILab_MaskPreview": "utility",
"AILab_ImageMaskConvert": "utility",
"AILab_MaskEnhancer": "utility",
"AILab_MaskCombiner": "utility",
"AILab_MaskOverlay": "utility",
"AILab_ImageCombiner": "utility",
"AILab_MaskExtractor": "utility",
"AILab_ImageStitch": "utility",
"AILab_ImageCrop": "utility",
"AILab_ICLoRAConcat": "utility",
"AILab_CropObject": "utility",
"AILab_ImageCompare": "utility",
"AILab_ColorInput": "utility",
"AILab_ImageMaskResize": "utility",
"AILab_LamaRemover": "utility",
};
function setNodeColors(node, theme) {
if (!theme) { return; }
if (theme.nodeColor) {
node.color = theme.nodeColor;
}
if (theme.nodeBgColor) {
node.bgcolor = theme.nodeBgColor;
}
if (theme.width) {
node.size = node.size || [140, 80];
node.size[0] = theme.width;
}
}
const ext = {
name: "RMBG.appearance",
nodeCreated(node) {
const nclass = node.comfyClass;
if (NODE_COLORS.hasOwnProperty(nclass)) {
let colorKey = NODE_COLORS[nclass];
const theme = COLOR_THEMES[colorKey];
setNodeColors(node, theme);
}
}
};
app.registerExtension(ext);