Skip to content

Commit cb032c7

Browse files
committed
feat: track missing models for LoRA loader workflow signatures
1 parent 8822bb0 commit cb032c7

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

tests/test_downloads_tab_workflow_route.mjs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2845,23 +2845,28 @@ test('Missing Models signature tracks LoRA Manager list membership changes', ()
28452845

28462846
test('workflow hash refresh ignores node movement and tracks model dependency changes', () => {
28472847
const getWorkflowSignature = eval(`(${extractMethod(workflowStateMethodsSource, 'getWorkflowSignature')})`);
2848+
const getMissingWorkflowSignature = eval(`(${extractMethod(workflowStateMethodsSource, 'getMissingWorkflowSignature')})`);
28482849
const getWorkflowSignatureData = eval(`(${extractMethod(workflowStateMethodsSource, 'getWorkflowSignatureData')})`);
28492850
const getWorkflowHashMetadataSignature = eval(`(${extractMethod(modelResolverSource, 'getWorkflowHashMetadataSignature')})`);
28502851
const scheduleWorkflowHashMetadataRefresh = eval(`(${extractMethod(modelResolverSource, 'scheduleWorkflowHashMetadataRefresh')})`);
28512852
const dialog = {
28522853
capabilities: { node_rules: {} },
28532854
getWorkflowSignature,
2855+
getMissingWorkflowSignature,
28542856
getWorkflowSignatureData,
28552857
};
2856-
const makeWorkflow = (modelName, position = [0, 0]) => ({
2858+
const makeWorkflow = (modelName, position = [0, 0], strength = 0.75) => ({
28572859
nodes: [{
28582860
id: 12,
2859-
type: 'CheckpointLoaderSimple',
2861+
type: 'LoraLoader',
28602862
pos: position,
28612863
size: [320, 120],
2862-
inputs: [{ name: 'ckpt_name', widget: { name: 'ckpt_name' } }],
2864+
inputs: [
2865+
{ name: 'lora_name', widget: { name: 'lora_name' } },
2866+
{ name: 'strength_model', widget: { name: 'strength_model' } },
2867+
],
28632868
outputs: [{ name: 'MODEL', type: 'MODEL', links: [] }],
2864-
widgets_values: [modelName],
2869+
widgets_values: [modelName, strength],
28652870
}],
28662871
links: [],
28672872
definitions: {
@@ -2909,6 +2914,13 @@ test('workflow hash refresh ignores node movement and tracks model dependency ch
29092914
assert.equal(resolver.armCalls, 0);
29102915
assert.equal(resolver.workflowHashMetadataRefreshPending, false);
29112916

2917+
scheduleWorkflowHashMetadataRefresh.call(
2918+
resolver,
2919+
makeWorkflow('model-a.safetensors', [800, 450], 1.25)
2920+
);
2921+
assert.equal(resolver.armCalls, 0);
2922+
assert.equal(resolver.workflowHashMetadataRefreshPending, false);
2923+
29122924
scheduleWorkflowHashMetadataRefresh.call(
29132925
resolver,
29142926
makeWorkflow('model-b.safetensors', [800, 450])

web/resolver/model_resolver.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,8 @@ export class ModelResolver {
12621262
getWorkflowHashMetadataSignature(workflow) {
12631263
if (!workflow || typeof workflow !== 'object') return '';
12641264

1265-
const dependencySignature = this.dialog?.getWorkflowSignature?.(workflow);
1265+
const dependencySignature = this.dialog?.getMissingWorkflowSignature?.(workflow)
1266+
|| this.dialog?.getWorkflowSignature?.(workflow);
12661267
if (dependencySignature) return dependencySignature;
12671268

12681269
const normalizeNode = (node = {}) => ({

0 commit comments

Comments
 (0)