mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-01-11 02:15:17 +00:00
90aebb6c86
* menu * wip * wip * wip * wip * wip * workflow saving/loading * Support inserting workflows Move buttosn to top of lists * fix session storage implement renaming * temp * refactor, better workflow instance management * wip * progress on progress * added send to workflow various fixes * Support multiple image loaders * Support dynamic size breakpoints based on content * various fixes add close unsaved warning * Add filtering tree * prevent renaming unsaved * fix zindex on hover * fix top offset * use filename as workflow name * resize on setting change * hide element until it is drawn * remove glow * Fix export name * Fix test, revert accidental changes to groupNode * Fix colors on all themes * show hover items on smaller screen (mobile) * remove debugging code * dialog fix * Dont reorder open workflows Allow elements around canvas * Toggle body display on setting change * Fix menu disappearing on chrome * Increase delay when typing, remove margin on Safari, fix dialog location * Fix overflow issue on iOS * Add reset view button Prevent view changes causing history entries * Bottom menu wip * Various fixes * Fix merge * Fix breaking old menu position * Fix merge adding restore view to loadGraphData
77 lines
2.6 KiB
TypeScript
77 lines
2.6 KiB
TypeScript
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<
|
|
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];
|