Bundle all core extensions (#27)

This commit is contained in:
Chenlei Hu
2024-06-18 12:48:52 -04:00
committed by GitHub
parent e4b9cbbe17
commit eadcc5e72e
26 changed files with 79 additions and 51 deletions

View File

@@ -1,6 +1,6 @@
import { app } from "../../scripts/app.js";
import { ComfyDialog, $el } from "../../scripts/ui.js";
import { ComfyApp } from "../../scripts/app.js";
import { app } from "../../scripts/app";
import { ComfyDialog, $el } from "../../scripts/ui";
import { ComfyApp } from "../../scripts/app";
export class ClipspaceDialog extends ComfyDialog {
static items = [];

View File

@@ -1,5 +1,5 @@
import {app} from "../../scripts/app.js";
import {$el} from "../../scripts/ui.js";
import {app} from "../../scripts/app";
import {$el} from "../../scripts/ui";
// Manage color palettes

View File

@@ -1,4 +1,4 @@
import {app} from "../../scripts/app.js";
import {app} from "../../scripts/app";
// Adds filtering to combo context menus

View File

@@ -1,4 +1,4 @@
import { app } from "../../scripts/app.js";
import { app } from "../../scripts/app";
// Allows for simple dynamic prompt replacement
// Inputs in the format {a|b} will have a random value of a or b chosen when the prompt is queued.

View File

@@ -1,4 +1,4 @@
import { app } from "../../scripts/app.js";
import { app } from "../../scripts/app";
// Allows you to edit the attention weight by holding ctrl (or cmd) and using the up/down arrow keys

View File

@@ -1,7 +1,7 @@
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";
import { mergeIfValid } from "./widgetInputs.js";
import { ManageGroupDialog } from "./groupNodeManage.js";
import { app } from "../../scripts/app";
import { api } from "../../scripts/api";
import { mergeIfValid } from "./widgetInputs";
import { ManageGroupDialog } from "./groupNodeManage";
const GROUP = Symbol();

View File

@@ -1,7 +1,7 @@
import { $el, ComfyDialog } from "../../scripts/ui.js";
import { DraggableList } from "../../scripts/ui/draggableList.js";
import { addStylesheet } from "../../scripts/utils.js";
import { GroupNodeConfig, GroupNodeHandler } from "./groupNode.js";
import { $el, ComfyDialog } from "../../scripts/ui";
import { DraggableList } from "../../scripts/ui/draggableList";
import { addStylesheet } from "../../scripts/utils";
import { GroupNodeConfig, GroupNodeHandler } from "./groupNode";
addStylesheet(import.meta.url);

View File

@@ -1,4 +1,4 @@
import {app} from "../../scripts/app.js";
import {app} from "../../scripts/app";
function setNodeMode(node, mode) {
node.mode = mode;

View File

@@ -0,0 +1,23 @@
import "./clipspace";
import "./colorPalette";
import "./contextMenuFilter";
import "./dynamicPrompts";
import "./editAttention";
import "./groupNode";
import "./groupNodeManage";
import "./groupOptions";
import "./invertMenuScrolling";
import "./keybinds";
import "./linkRenderMode";
import "./maskeditor";
import "./nodeTemplates";
import "./noteNode";
import "./rerouteNode";
import "./saveImageExtraOutput";
import "./simpleTouchSupport";
import "./slotDefaults";
import "./snapToGrid";
import "./undoRedo";
import "./uploadImage";
import "./webcamCapture";
import "./widgetInputs";

View File

@@ -1,4 +1,4 @@
import { app } from "../../scripts/app.js";
import { app } from "../../scripts/app";
// Inverts the scrolling of context menus

View File

@@ -1,4 +1,4 @@
import {app} from "../../scripts/app.js";
import {app} from "../../scripts/app";
app.registerExtension({
name: "Comfy.Keybinds",

View File

@@ -1,4 +1,4 @@
import { app } from "../../scripts/app.js";
import { app } from "../../scripts/app";
const id = "Comfy.LinkRenderMode";
const ext = {

View File

@@ -1,8 +1,8 @@
import { app } from "../../scripts/app.js";
import { ComfyDialog, $el } from "../../scripts/ui.js";
import { ComfyApp } from "../../scripts/app.js";
import { api } from "../../scripts/api.js"
import { ClipspaceDialog } from "./clipspace.js";
import { app } from "../../scripts/app";
import { ComfyDialog, $el } from "../../scripts/ui";
import { ComfyApp } from "../../scripts/app";
import { api } from "../../scripts/api";
import { ClipspaceDialog } from "./clipspace";
// Helper function to convert a data URL to a Blob object
function dataURLToBlob(dataURL) {

View File

@@ -1,7 +1,7 @@
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";
import { ComfyDialog, $el } from "../../scripts/ui.js";
import { GroupNodeConfig, GroupNodeHandler } from "./groupNode.js";
import { app } from "../../scripts/app";
import { api } from "../../scripts/api";
import { ComfyDialog, $el } from "../../scripts/ui";
import { GroupNodeConfig, GroupNodeHandler } from "./groupNode";
// Adds the ability to save and add multiple nodes as a template
// To save:

View File

@@ -1,5 +1,5 @@
import {app} from "../../scripts/app.js";
import {ComfyWidgets} from "../../scripts/widgets.js";
import {app} from "../../scripts/app";
import {ComfyWidgets} from "../../scripts/widgets";
// Node that add notes to your project
app.registerExtension({

View File

@@ -1,5 +1,5 @@
import { app } from "../../scripts/app.js";
import { mergeIfValid, getWidgetConfig, setWidgetConfig } from "./widgetInputs.js";
import { app } from "../../scripts/app";
import { mergeIfValid, getWidgetConfig, setWidgetConfig } from "./widgetInputs";
// Node that allows you to redirect connections for cleaner graphs

View File

@@ -1,5 +1,5 @@
import { app } from "../../scripts/app.js";
import { applyTextReplacements } from "../../scripts/utils.js";
import { app } from "../../scripts/app";
import { applyTextReplacements } from "../../scripts/utils";
// Use widget values and dates in output filenames
app.registerExtension({

View File

@@ -1,4 +1,4 @@
import { app } from "../../scripts/app.js";
import { app } from "../../scripts/app";
let touchZooming;
let touchCount = 0;

View File

@@ -1,5 +1,5 @@
import { app } from "../../scripts/app.js";
import { ComfyWidgets } from "../../scripts/widgets.js";
import { app } from "../../scripts/app";
import { ComfyWidgets } from "../../scripts/widgets";
// Adds defaults for quickly adding nodes with middle click on the input/output
app.registerExtension({

View File

@@ -1,4 +1,4 @@
import { app } from "../../scripts/app.js";
import { app } from "../../scripts/app";
// Shift + drag/resize to snap to grid

View File

@@ -1,5 +1,5 @@
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js"
import { app } from "../../scripts/app";
import { api } from "../../scripts/api";
const MAX_HISTORY = 50;

View File

@@ -1,4 +1,4 @@
import { app } from "../../scripts/app.js";
import { app } from "../../scripts/app";
// Adds an upload button to the nodes

View File

@@ -1,5 +1,5 @@
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";
import { app } from "../../scripts/app";
import { api } from "../../scripts/api";
const WEBCAM_READY = Symbol();

View File

@@ -1,6 +1,6 @@
import { ComfyWidgets, addValueControlWidgets } from "../../scripts/widgets.js";
import { app } from "../../scripts/app.js";
import { applyTextReplacements } from "../../scripts/utils.js";
import { ComfyWidgets, addValueControlWidgets } from "../../scripts/widgets";
import { app } from "../../scripts/app";
import { applyTextReplacements } from "../../scripts/utils";
const CONVERTED_TYPE = "converted-widget";
const VALID_TYPES = ["STRING", "combo", "number", "BOOLEAN"];

View File

@@ -1503,14 +1503,19 @@ export class ComfyApp {
const extensions = await api.getExtensions();
this.logging.addEntry("Comfy.App", "debug", { Extensions: extensions });
const extensionPromises = extensions.map(async ext => {
const extensionPromises = extensions
.filter(extension => !extension.includes("extensions/core"))
.map(async ext => {
try {
await import(api.apiURL(ext));
await import(/* @vite-ignore */api.apiURL(ext));
} catch (error) {
console.error("Error loading extension", ext, error);
}
});
// Need to load core extensions first as some custom extensions
// may depend on them.
await import("../extensions/core/index.js");
await Promise.all(extensionPromises);
}

View File

@@ -12,7 +12,8 @@ function comfyAPIPlugin(): Plugin {
return {
name: 'comfy-api-plugin',
transform(code: string, id: string) {
if (id.endsWith('.ts')) {
// TODO: Remove second condition after all js files are converted to ts
if (id.endsWith('.ts') || (id.endsWith('.js') && id.includes("extensions/core"))) {
const result = transformExports(code, id);
if (result.exports.length > 0) {
@@ -87,7 +88,6 @@ export default defineConfig({
viteStaticCopy({
targets: [
{src: "src/lib/*", dest: "lib/"},
{src: "src/extensions/*", dest: "extensions/"},
],
}),
],