RioShiina commited on
Commit
31a0c23
·
verified ·
1 Parent(s): b2dad37

Upload folder using huggingface_hub

Browse files
chain_injectors/vae_injector.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ def inject(assembler, chain_definition, chain_items):
2
+ if not chain_items:
3
+ return
4
+
5
+ vae_name = chain_items[0] if isinstance(chain_items, list) else chain_items
6
+ if not vae_name or vae_name == "None":
7
+ return
8
+
9
+ targets = chain_definition.get('targets', [])
10
+ if not targets:
11
+ return
12
+
13
+ vae_loader_id = assembler._get_unique_id()
14
+ vae_loader_node = assembler._get_node_template("VAELoader")
15
+ vae_loader_node['inputs']['vae_name'] = vae_name
16
+ assembler.workflow[vae_loader_id] = vae_loader_node
17
+
18
+ injected_count = 0
19
+ for target_str in targets:
20
+ try:
21
+ node_name, input_name = target_str.split(':')
22
+ if node_name in assembler.node_map:
23
+ node_id = assembler.node_map[node_name]
24
+ assembler.workflow[node_id]['inputs'][input_name] = [vae_loader_id, 0]
25
+ injected_count += 1
26
+ except ValueError:
27
+ print(f"Warning: Invalid VAE injector target format '{target_str}'. Expected 'node_name:input_name'.")
28
+
29
+ if injected_count > 0:
30
+ print(f"VAE injector applied. Rerouted {injected_count} connection(s) to new VAELoader ({vae_name}).")
core/pipelines/sd_image_pipeline.py CHANGED
@@ -490,6 +490,7 @@ class SdImagePipeline(BasePipeline):
490
  "style_chain": active_styles,
491
  "conditioning_chain": active_conditioning,
492
  "reference_latent_chain": active_reference_latents,
 
493
  }
494
 
495
  if isinstance(path_or_components, dict):
@@ -512,20 +513,6 @@ class SdImagePipeline(BasePipeline):
512
 
513
  workflow = assembler.assemble(workflow_inputs)
514
 
515
- if ui_inputs.get("vae_name") and workflow_model_type not in ['flux1', 'hidream', 'lumina', 'omnigen2', 'chroma1-radiance', 'chroma1', 'hunyuanimage', 'ovis-image', 'longcat-image']:
516
- print("--- [Workflow Patch] VAE override provided. Adding VAELoader and rewiring connections. ---")
517
- vae_loader_id = assembler._get_unique_id()
518
- vae_loader_node = assembler._get_node_template("VAELoader")
519
- vae_loader_node['inputs']['vae_name'] = ui_inputs["vae_name"]
520
- workflow[vae_loader_id] = vae_loader_node
521
-
522
- vae_decode_id = assembler.node_map.get("vae_decode")
523
- if vae_decode_id and vae_decode_id in workflow:
524
- workflow[vae_decode_id]['inputs']['vae'] = [vae_loader_id, 0]
525
- vae_encode_id = assembler.node_map.get("vae_encode")
526
- if vae_encode_id and vae_encode_id in workflow:
527
- workflow[vae_encode_id]['inputs']['vae'] = [vae_loader_id, 0]
528
-
529
  progress(1.0, desc="All models ready. Requesting GPU for generation...")
530
 
531
  try:
 
490
  "style_chain": active_styles,
491
  "conditioning_chain": active_conditioning,
492
  "reference_latent_chain": active_reference_latents,
493
+ "vae_chain": [ui_inputs.get('vae_name')] if ui_inputs.get('vae_name') else [],
494
  }
495
 
496
  if isinstance(path_or_components, dict):
 
513
 
514
  workflow = assembler.assemble(workflow_inputs)
515
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
516
  progress(1.0, desc="All models ready. Requesting GPU for generation...")
517
 
518
  try:
core/pipelines/workflow_recipes/_partials/conditioning/lumina.yaml CHANGED
@@ -28,6 +28,12 @@ connections:
28
  - from: "ckpt_loader:2"
29
  to: "vae_encode:vae"
30
 
 
 
 
 
 
 
31
  dynamic_lora_chains:
32
  lora_chain:
33
  template: "LoraLoader"
 
28
  - from: "ckpt_loader:2"
29
  to: "vae_encode:vae"
30
 
31
+ dynamic_vae_chains:
32
+ vae_chain:
33
+ targets:
34
+ - "vae_decode:vae"
35
+ - "vae_encode:vae"
36
+
37
  dynamic_lora_chains:
38
  lora_chain:
39
  template: "LoraLoader"
core/pipelines/workflow_recipes/_partials/conditioning/sd15.yaml CHANGED
@@ -24,6 +24,12 @@ connections:
24
  - from: "ckpt_loader:2"
25
  to: "vae_encode:vae"
26
 
 
 
 
 
 
 
27
  dynamic_lora_chains:
28
  lora_chain:
29
  template: "LoraLoader"
 
24
  - from: "ckpt_loader:2"
25
  to: "vae_encode:vae"
26
 
27
+ dynamic_vae_chains:
28
+ vae_chain:
29
+ targets:
30
+ - "vae_decode:vae"
31
+ - "vae_encode:vae"
32
+
33
  dynamic_lora_chains:
34
  lora_chain:
35
  template: "LoraLoader"
core/pipelines/workflow_recipes/_partials/conditioning/sd35.yaml CHANGED
@@ -19,6 +19,12 @@ connections:
19
  - from: "ckpt_loader:2"
20
  to: "vae_encode:vae"
21
 
 
 
 
 
 
 
22
  dynamic_lora_chains:
23
  lora_chain:
24
  template: "LoraLoader"
 
19
  - from: "ckpt_loader:2"
20
  to: "vae_encode:vae"
21
 
22
+ dynamic_vae_chains:
23
+ vae_chain:
24
+ targets:
25
+ - "vae_decode:vae"
26
+ - "vae_encode:vae"
27
+
28
  dynamic_lora_chains:
29
  lora_chain:
30
  template: "LoraLoader"
core/pipelines/workflow_recipes/_partials/conditioning/sdxl.yaml CHANGED
@@ -19,6 +19,12 @@ connections:
19
  - from: "ckpt_loader:2"
20
  to: "vae_encode:vae"
21
 
 
 
 
 
 
 
22
  dynamic_lora_chains:
23
  lora_chain:
24
  template: "LoraLoader"
 
19
  - from: "ckpt_loader:2"
20
  to: "vae_encode:vae"
21
 
22
+ dynamic_vae_chains:
23
+ vae_chain:
24
+ targets:
25
+ - "vae_decode:vae"
26
+ - "vae_encode:vae"
27
+
28
  dynamic_lora_chains:
29
  lora_chain:
30
  template: "LoraLoader"
yaml/injectors.yaml CHANGED
@@ -1,4 +1,6 @@
1
  injector_definitions:
 
 
2
  dynamic_lora_chains:
3
  module: "chain_injectors.lora_injector"
4
  dynamic_newbie_lora_chains:
@@ -21,6 +23,7 @@ injector_definitions:
21
  module: "chain_injectors.reference_latent_injector"
22
 
23
  injector_order:
 
24
  - dynamic_lora_chains
25
  - dynamic_newbie_lora_chains
26
  - dynamic_diffsynth_controlnet_chains
 
1
  injector_definitions:
2
+ dynamic_vae_chains:
3
+ module: "chain_injectors.vae_injector"
4
  dynamic_lora_chains:
5
  module: "chain_injectors.lora_injector"
6
  dynamic_newbie_lora_chains:
 
23
  module: "chain_injectors.reference_latent_injector"
24
 
25
  injector_order:
26
+ - dynamic_vae_chains
27
  - dynamic_lora_chains
28
  - dynamic_newbie_lora_chains
29
  - dynamic_diffsynth_controlnet_chains