Spaces:
Running
Running
import { app } from '../../../scripts/app.js' | |
function addResizeHook(node, padding, useOldMin=false) { | |
let origOnCreated = node.onNodeCreated | |
node.onNodeCreated = function() { | |
let r = origOnCreated?.apply(this, arguments) | |
let size = this.computeSize(); | |
size[0] += padding || 0; | |
if (useOldMin) { | |
//equal to LiteGraph.NODE_WIDTH*1.5*1.5 | |
size[0] = Math.max(size[0], 315) | |
} | |
this.setSize(size); | |
return r | |
} | |
} | |
app.registerExtension({ | |
name: "AdvancedControlNet.autosize", | |
async beforeRegisterNodeDef(nodeType, nodeData, app) { | |
//since python_module is based off folder path, | |
//it could be changed by users and should only be used as fallback | |
if (nodeData?.name?.startsWith("ACN_") | |
|| nodeData.python_module == 'custom_nodes.ComfyUI-Advanced-ControlNet') { | |
if (nodeData?.input?.hidden?.autosize) { | |
addResizeHook(nodeType.prototype, nodeData.input.hidden.autosize[1]?.padding) | |
} else if (!nodeData?.input?.optional?.autosize) { | |
addResizeHook(nodeType.prototype, 0, true) | |
} | |
} | |
}, | |
async getCustomWidgets() { | |
return { | |
ACNAUTOSIZE(node, inputName, inputData) { | |
let w = { | |
name : inputName, | |
type : "ACN.AUTOSIZE", | |
value : "", | |
options : {"serialize": false}, | |
computeSize : function(width) { | |
return [0, -4]; | |
} | |
} | |
if (!node.widgets) { | |
node.widgets = [] | |
} | |
node.widgets.push(w) | |
addResizeHook(node, inputData[1].padding); | |
return w; | |
} | |
} | |
} | |
}); | |