| def inject(assembler, chain_definition, chain_items): | |
| if not chain_items: | |
| return | |
| vae_name = chain_items[0] if isinstance(chain_items, list) else chain_items | |
| if not vae_name or vae_name == "None": | |
| return | |
| targets = chain_definition.get('targets', []) | |
| if not targets: | |
| return | |
| vae_loader_id = assembler._get_unique_id() | |
| vae_loader_node = assembler._get_node_template("VAELoader") | |
| vae_loader_node['inputs']['vae_name'] = vae_name | |
| assembler.workflow[vae_loader_id] = vae_loader_node | |
| injected_count = 0 | |
| for target_str in targets: | |
| try: | |
| node_name, input_name = target_str.split(':') | |
| if node_name in assembler.node_map: | |
| node_id = assembler.node_map[node_name] | |
| assembler.workflow[node_id]['inputs'][input_name] = [vae_loader_id, 0] | |
| injected_count += 1 | |
| except ValueError: | |
| print(f"Warning: Invalid VAE injector target format '{target_str}'. Expected 'node_name:input_name'.") | |
| if injected_count > 0: | |
| print(f"VAE injector applied. Rerouted {injected_count} connection(s) to new VAELoader ({vae_name}).") |