mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-04-20 03:13:30 +00:00
Merge branch 'jsdoc-types' of https://github.com/pythongosssss/ComfyUI
This commit is contained in:
commit
8cb54fa2fa
@ -4,27 +4,49 @@ import { api } from "./api.js";
|
|||||||
import { defaultGraph } from "./defaultGraph.js";
|
import { defaultGraph } from "./defaultGraph.js";
|
||||||
import { getPngMetadata, importA1111 } from "./pnginfo.js";
|
import { getPngMetadata, importA1111 } from "./pnginfo.js";
|
||||||
|
|
||||||
class ComfyApp {
|
/**
|
||||||
|
* @typedef {import("types/comfy").ComfyExtension} ComfyExtension
|
||||||
|
*/
|
||||||
|
|
||||||
|
export class ComfyApp {
|
||||||
/**
|
/**
|
||||||
* List of {number, batchCount} entries to queue
|
* List of entries to queue
|
||||||
|
* @type {{number: number, batchCount: number}[]}
|
||||||
*/
|
*/
|
||||||
#queueItems = [];
|
#queueItems = [];
|
||||||
/**
|
/**
|
||||||
* If the queue is currently being processed
|
* If the queue is currently being processed
|
||||||
|
* @type {boolean}
|
||||||
*/
|
*/
|
||||||
#processingQueue = false;
|
#processingQueue = false;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.ui = new ComfyUI(this);
|
this.ui = new ComfyUI(this);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of extensions that are registered with the app
|
||||||
|
* @type {ComfyExtension[]}
|
||||||
|
*/
|
||||||
this.extensions = [];
|
this.extensions = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores the execution output data for each node
|
||||||
|
* @type {Record<string, any>}
|
||||||
|
*/
|
||||||
this.nodeOutputs = {};
|
this.nodeOutputs = {};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the shift key on the keyboard is pressed
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
this.shiftDown = false;
|
this.shiftDown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoke an extension callback
|
* Invoke an extension callback
|
||||||
* @param {string} method The extension callback to execute
|
* @param {keyof ComfyExtension} method The extension callback to execute
|
||||||
* @param {...any} args Any arguments to pass to the callback
|
* @param {any[]} args Any arguments to pass to the callback
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
#invokeExtensions(method, ...args) {
|
#invokeExtensions(method, ...args) {
|
||||||
@ -1120,6 +1142,10 @@ class ComfyApp {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a Comfy web extension with the app
|
||||||
|
* @param {ComfyExtension} extension
|
||||||
|
*/
|
||||||
registerExtension(extension) {
|
registerExtension(extension) {
|
||||||
if (!extension.name) {
|
if (!extension.name) {
|
||||||
throw new Error("Extensions must have a 'name' property.");
|
throw new Error("Extensions must have a 'name' property.");
|
||||||
|
78
web/types/comfy.d.ts
vendored
Normal file
78
web/types/comfy.d.ts
vendored
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import { LGraphNode, IWidget } from "./litegraph";
|
||||||
|
import { ComfyApp } from "/scripts/app";
|
||||||
|
|
||||||
|
export interface ComfyExtension {
|
||||||
|
/**
|
||||||
|
* The name of the extension
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
/**
|
||||||
|
* Allows any initialisation, e.g. loading resources. Called after the canvas is created but before nodes are added
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
*/
|
||||||
|
init(app: ComfyApp): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Allows any additonal setup, called after the application is fully set up and running
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
*/
|
||||||
|
setup(app: ComfyApp): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Called before nodes are registered with the graph
|
||||||
|
* @param defs The collection of node definitions, add custom ones or edit existing ones
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
*/
|
||||||
|
addCustomNodeDefs(defs: Record<string, ComfyObjectInfo>, app: ComfyApp): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Allows the extension to add custom widgets
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
* @returns An array of {[widget name]: widget data}
|
||||||
|
*/
|
||||||
|
getCustomWidgets(
|
||||||
|
app: ComfyApp
|
||||||
|
): Promise<
|
||||||
|
Array<
|
||||||
|
Record<string, (node, inputName, inputData, app) => { widget?: IWidget; minWidth?: number; minHeight?: number }>
|
||||||
|
>
|
||||||
|
>;
|
||||||
|
/**
|
||||||
|
* Allows the extension to add additional handling to the node before it is registered with LGraph
|
||||||
|
* @param nodeType The node class (not an instance)
|
||||||
|
* @param nodeData The original node object info config object
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
*/
|
||||||
|
beforeRegisterNodeDef(nodeType: typeof LGraphNode, nodeData: ComfyObjectInfo, app: ComfyApp): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Allows the extension to register additional nodes with LGraph after standard nodes are added
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
*/
|
||||||
|
registerCustomNodes(app: ComfyApp): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Allows the extension to modify a node that has been reloaded onto the graph.
|
||||||
|
* If you break something in the backend and want to patch workflows in the frontend
|
||||||
|
* This is the place to do this
|
||||||
|
* @param node The node that has been loaded
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
*/
|
||||||
|
loadedGraphNode(node: LGraphNode, app: ComfyApp);
|
||||||
|
/**
|
||||||
|
* Allows the extension to run code after the constructor of the node
|
||||||
|
* @param node The node that has been created
|
||||||
|
* @param app The ComfyUI app instance
|
||||||
|
*/
|
||||||
|
nodeCreated(node: LGraphNode, app: ComfyApp);
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ComfyObjectInfo = {
|
||||||
|
name: string;
|
||||||
|
display_name?: string;
|
||||||
|
description?: string;
|
||||||
|
category: string;
|
||||||
|
input?: {
|
||||||
|
required?: Record<string, ComfyObjectInfoConfig>;
|
||||||
|
optional?: Record<string, ComfyObjectInfoConfig>;
|
||||||
|
};
|
||||||
|
output?: string[];
|
||||||
|
output_name: string[];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ComfyObjectInfoConfig = [string | any[]] | [string | any[], any];
|
1506
web/types/litegraph.d.ts
vendored
Normal file
1506
web/types/litegraph.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user