Add a Workflows page that manages ComfyUI workflow JSON files as a first-class library alongside loras/checkpoints/embeddings: - opt-in via the new 'Workflow Management' settings toggle (default off) - dedicated workflow folder roots with sidecar/preview support, separate from ComfyUI's own workflow storage; 'Send to ComfyUI' loads a workflow straight into the graph - workflow scanner parses the graph document (UI/API format sniffing, node classes, model/civitai refs) and persists the analysis in the SQLite model cache - settings UI: workflow folder paths editor in the Library tab and the standalone Model Paths page Fixes from sandbox E2E verification: - include the workflow scanner in startup initialization so the page no longer hangs on 'initializing' when enabled without folders - add the missing workflows entry to the frontend page-state map (page init crashed and the sidebar fell back to the loras tree without it) - project workflow analysis fields through the scanner cache entry and persist them in the model cache (new columns with auto-migration) - keep symlinked paths intact in the directory picker (abspath instead of resolve), so stored library paths match what the user sees on disk Also rebuilds the vue-widgets bundle to sync it with web/comfyui/utils.js.
40 lines
1.6 KiB
JavaScript
40 lines
1.6 KiB
JavaScript
export { LoraContextMenu } from './LoraContextMenu.js';
|
|
export { RecipeContextMenu } from './RecipeContextMenu.js';
|
|
export { CheckpointContextMenu } from './CheckpointContextMenu.js';
|
|
export { EmbeddingContextMenu } from './EmbeddingContextMenu.js';
|
|
export { OtherContextMenu } from './OtherContextMenu.js';
|
|
export { WorkflowContextMenu } from './WorkflowContextMenu.js';
|
|
export { GlobalContextMenu } from './GlobalContextMenu.js';
|
|
export { ModelContextMenuMixin } from './ModelContextMenuMixin.js';
|
|
|
|
import { LoraContextMenu } from './LoraContextMenu.js';
|
|
import { RecipeContextMenu } from './RecipeContextMenu.js';
|
|
import { CheckpointContextMenu } from './CheckpointContextMenu.js';
|
|
import { EmbeddingContextMenu } from './EmbeddingContextMenu.js';
|
|
import { OtherContextMenu } from './OtherContextMenu.js';
|
|
import { WorkflowContextMenu } from './WorkflowContextMenu.js';
|
|
import { GlobalContextMenu } from './GlobalContextMenu.js';
|
|
|
|
// Factory method to create page-specific context menu instances
|
|
export function createPageContextMenu(pageType) {
|
|
switch (pageType) {
|
|
case 'loras':
|
|
return new LoraContextMenu();
|
|
case 'recipes':
|
|
return new RecipeContextMenu();
|
|
case 'checkpoints':
|
|
return new CheckpointContextMenu();
|
|
case 'embeddings':
|
|
return new EmbeddingContextMenu();
|
|
case 'other':
|
|
return new OtherContextMenu();
|
|
case 'workflows':
|
|
return new WorkflowContextMenu();
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function createGlobalContextMenu() {
|
|
return new GlobalContextMenu();
|
|
} |