Files
NyaFuP-ComfyUI_Preview_Sele…/js/nf_preview_selector.js
T
NyaFuP c4c607704b modified: README.md
modified:   __init__.py
	modified:   js/nf_preview_selector.js
	modified:   js/preview_dialog.js
	modified:   nf_preview_selector.py
2025-07-15 23:00:48 +09:00

85 lines
2.7 KiB
JavaScript

/**
* NF Preview Selector - Main Extension
* A floating dialog-based image review and selection system for ComfyUI
*/
import { app } from "../../scripts/app.js";
import { api } from "../../scripts/api.js";
import { nfPreviewDialog } from './preview_dialog.js';
// NF Preview Selector loading
app.registerExtension({
name: "nf.preview_selector",
async setup() {
// Setting up extension
// Register message handler using ComfyUI's system
if (api.addEventListener) {
// Register for our custom event type
api.addEventListener("nf_preview_request", (event) => {
// Received review request
nfPreviewDialog.show(event.detail);
});
// Event listener registered
}
// Event system is working correctly
// Add settings
app.ui.settings.addSetting({
id: "NFPreviewSelector.UI.WindowPosition",
name: "Remember window position and size",
type: "boolean",
defaultValue: true,
tooltip: "Remember the position and size of the preview dialog window between sessions"
});
app.ui.settings.addSetting({
id: "NFPreviewSelector.UI.MaxWidth.v2",
name: "Dialog maximum width (px)",
type: "number",
defaultValue: 800,
tooltip: "Maximum width of the preview dialog in pixels (400-1800)"
});
// Auto-select first image setting removed - this is available in node UI
// Setup complete
},
async nodeCreated(node) {
if (node.comfyClass === "NFPreviewSelector") {
// Node created
// Set node title
node.title = "NF Preview Selector";
// Add any node-specific setup here
node.onResize = function() {
// Handle node resize if needed
};
}
},
async beforeRegisterNodeDef(nodeType, nodeData, app) {
if (nodeData.name === "NFPreviewSelector") {
// Registering node definition
// Add any node definition modifications here
const onNodeCreated = nodeType.prototype.onNodeCreated;
nodeType.prototype.onNodeCreated = function() {
if (onNodeCreated) {
onNodeCreated.apply(this, arguments);
}
// Node-specific initialization
this.setProperty("review_position", { x: 100, y: 100 });
};
}
}
});
// Extension loaded successfully