| import os | |
| def _is_nonzero_multiplier(value) -> bool: | |
| if isinstance(value, (list, tuple)): | |
| return any(_is_nonzero_multiplier(item) for item in value) | |
| try: | |
| return abs(float(value)) > 1e-8 | |
| except (TypeError, ValueError): | |
| return False | |
| def is_ic_lora_filename(value) -> bool: | |
| return "ic-lora" in os.path.basename(str(value)).lower() | |
| def phase2_ic_lora_name(loras_selected, loras_slists, force_phase2_control=False, force_name=None) -> str | None: | |
| if force_phase2_control: | |
| return force_name or "forced phase 2 control" | |
| phase2 = (loras_slists or {}).get("phase2", []) | |
| for index, lora_path in enumerate(loras_selected or []): | |
| name = os.path.basename(str(lora_path)) | |
| if not is_ic_lora_filename(name): | |
| continue | |
| if not loras_slists or index < len(phase2) and _is_nonzero_multiplier(phase2[index]): | |
| return name | |
| return None | |
| def control_video_phase2_message(loras_selected, loras_slists, force_phase2_control=False, force_name=None) -> str: | |
| lora_name = phase2_ic_lora_name(loras_selected, loras_slists, force_phase2_control=force_phase2_control, force_name=force_name) | |
| if lora_name is not None: | |
| if force_phase2_control: | |
| return f"Control Video will also be injected in LTX-2 Phase 2 because {lora_name} forces phase 2 control injection." | |
| return f'Control Video will also be injected in LTX-2 Phase 2 since a non null phase 2 lora multiplier has been detected for Ic Lora "{lora_name}"' | |
| return "Control Video will be only injected in LTX-2 Phase 1 since there isnt't any non null phase 2 Ic Lora multiplier" | |