@@ -121,15 +121,15 @@ type OutputMap = Record<string, any>;
121121// These are intentionally minimal; users can still refine manually.
122122type OutputShapeFor < C extends string > =
123123 C extends "SaveImage" | "SaveImageAdvanced" ? { images ?: any [ ] } :
124- C extends "KSampler" ? { samples ?: any } :
125- any ;
124+ C extends "KSampler" ? { samples ?: any } :
125+ any ;
126126
127127type NodeOutputFor < T extends WorkflowJSON , K extends keyof T & string > =
128128 T [ K ] extends { class_type : infer C }
129- ? C extends string
130- ? OutputShapeFor < C >
131- : any
132- : any ;
129+ ? C extends string
130+ ? OutputShapeFor < C >
131+ : any
132+ : any ;
133133
134134export class Workflow < T extends WorkflowJSON = WorkflowJSON , O extends OutputMap = { } > {
135135 private json : T ;
@@ -425,9 +425,9 @@ export class Workflow<T extends WorkflowJSON = WorkflowJSON, O extends OutputMap
425425 // Prefer just the filename; many LoadImage nodes look up by filename (subfolder managed server-side)
426426 this . input ( it . nodeId as any , it . inputName as any , it . fileName as any ) ;
427427 }
428- // Clear pending once applied
429- this . _pendingFolderFiles = [ ] ;
430- this . _pendingImageInputs = [ ] ;
428+ // NOTE: We intentionally do NOT clear pending arrays here.
429+ // This allows retries to a different host to still have assets to upload.
430+ // The upload API uses override mode, so duplicate uploads are idempotent.
431431 }
432432 }
433433}
@@ -440,7 +440,7 @@ export interface Workflow<T extends WorkflowJSON = WorkflowJSON, O extends Outpu
440440 // 2. output('alias:NODE_ID') -> alias key with inferred node output
441441 output < Spec extends `${string } :${keyof T & string } `> ( spec : Spec ) : Workflow < T , O & (
442442 Spec extends `${infer Alias } :${infer Node } ` ? ( Node extends keyof T & string ? Record < Alias , NodeOutputFor < T , Node > > : Record < Alias , any > ) : { }
443- ) > ;
443+ ) > ;
444444
445445 // 3. output('alias','NODE_ID') -> alias key
446446 output < Alias extends string , NodeId extends keyof T & string > ( alias : Alias , nodeId : NodeId ) : Workflow < T , O & Record < Alias , NodeOutputFor < T , NodeId > > > ;
0 commit comments