- Adopt ComfyUI's ComfyExtension/comfy_entrypoint API in __init__.py when available, falling back to legacy NODE_CLASS_MAPPINGS/DISPLAY_NAME_MAPPINGS on older runtimes so the node loads across ComfyUI versions. - Hook into beforeRegisterNodeDef, loadedGraphNode, and afterConfigureGraph in web/resolver.js so marker nodes are patched during registration, graph load, and initial render. - Teach model_resolver.js to recognise the marker node by every known class property shape, patch its type on creation, enforce a minimum size with setSize() when present, and dirty the canvas so changes are reflected.
45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
/**
|
|
* ComfyUI Model Resolver Extension - Frontend
|
|
*
|
|
* Provides a menu button and dialog interface for relinking missing models in workflows.
|
|
*/
|
|
|
|
import { app } from "../../../scripts/app.js";
|
|
import {
|
|
MODEL_RESOLVER_OPEN_COMMAND_ID,
|
|
MODEL_RESOLVER_OPEN_DEFAULT_KEYBINDING,
|
|
ModelResolver as ModelResolverClass,
|
|
} from "./resolver/model_resolver.js";
|
|
import { registerGlobalHelpers } from "./resolver/globals.js";
|
|
|
|
registerGlobalHelpers();
|
|
|
|
const modelResolver = new ModelResolverClass();
|
|
|
|
app.registerExtension({
|
|
name: "Model Resolver",
|
|
commands: [
|
|
{
|
|
id: MODEL_RESOLVER_OPEN_COMMAND_ID,
|
|
label: "Open Model Resolver",
|
|
function: () => modelResolver.activateResolverButton(),
|
|
},
|
|
],
|
|
keybindings: [
|
|
MODEL_RESOLVER_OPEN_DEFAULT_KEYBINDING,
|
|
],
|
|
setup: modelResolver.setup,
|
|
beforeRegisterNodeDef(nodeType, nodeData) {
|
|
modelResolver.configureWorkflowDependencyMarkerNodeType(nodeType, nodeData);
|
|
},
|
|
nodeCreated(node) {
|
|
modelResolver.configureWorkflowDependencyMarkerNode(node);
|
|
},
|
|
loadedGraphNode(node) {
|
|
modelResolver.configureWorkflowDependencyMarkerNode(node);
|
|
},
|
|
afterConfigureGraph() {
|
|
modelResolver.configureWorkflowDependencyMarkerNodes();
|
|
},
|
|
});
|