- Replace Supabase REST calls with HF org listing + per-model README fetch - Parse artifact_file from YAML front matter as the model filename (requirement) - Use record_id (HF repo path) instead of UUID model_id throughout - Rename model_ids -> record_ids in COMBO widget metadata - Drop PseudoVettedVaeLoader (no vae tag in HF org yet) - Fetch READMEs concurrently (ThreadPoolExecutor, max 8 workers) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
import { app } from "../../../scripts/app.js";
|
|
|
|
const VETTED_LOADER_CONFIGS = [
|
|
{ nodeName: "PseudoVettedCheckpointLoader", comboWidget: "model", idWidget: "record_id" },
|
|
{ nodeName: "PseudoVettedControlNetLoader", comboWidget: "model", idWidget: "record_id" },
|
|
{ nodeName: "PseudoVettedLoraLoader", comboWidget: "model", idWidget: "record_id" },
|
|
{ nodeName: "PseudoVettedClipLoader", comboWidget: "model", idWidget: "record_id" },
|
|
];
|
|
|
|
for (const { nodeName, comboWidget, idWidget } of VETTED_LOADER_CONFIGS) {
|
|
app.registerExtension({
|
|
name: `pseudocomfy.${nodeName}`,
|
|
async beforeRegisterNodeDef(nodeType, nodeData) {
|
|
if (nodeData.name !== nodeName) return;
|
|
|
|
const recordIds = nodeData.input?.required?.[comboWidget]?.[1]?.record_ids ?? {};
|
|
|
|
const onNodeCreated = nodeType.prototype.onNodeCreated;
|
|
nodeType.prototype.onNodeCreated = function () {
|
|
onNodeCreated?.apply(this, arguments);
|
|
|
|
const comboW = this.widgets?.find(w => w.name === comboWidget);
|
|
const idW = this.widgets?.find(w => w.name === idWidget);
|
|
if (!comboW || !idW) return;
|
|
|
|
const origCallback = comboW.callback;
|
|
comboW.callback = function (value) {
|
|
origCallback?.apply(this, arguments);
|
|
idW.value = recordIds[value] ?? "";
|
|
};
|
|
};
|
|
},
|
|
});
|
|
}
|