improve: switch - disconnect output connection instead of input connection if select_on_prompt

This commit is contained in:
Dr.Lt.Data
2024-12-11 05:25:01 +09:00
parent 5f630466fb
commit 87c24980bd
4 changed files with 11 additions and 9 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
import configparser
import os
version_code = [7, 14, 2]
version_code = [7, 14, 3]
version = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
dependency_version = 24
+9
View File
@@ -315,6 +315,8 @@ def onprompt_for_switch(json_data):
inversed_switch_info = {}
onprompt_switch_info = {}
onprompt_cond_branch_info = {}
disabled_switch = set()
for k, v in json_data['prompt'].items():
if 'class_type' not in v:
@@ -348,6 +350,10 @@ def onprompt_for_switch(json_data):
else:
onprompt_switch_info[k] = select_input
if k in onprompt_switch_info and f'input{onprompt_switch_info[k]}' not in v['inputs']:
# disconnect output
disabled_switch.add(k)
elif cls == 'ImpactConditionalBranchSelMode':
if 'sel_mode' in v['inputs'] and v['inputs']['sel_mode'] and 'cond' in v['inputs']:
cond_input = v['inputs']['cond']
@@ -372,6 +378,9 @@ def onprompt_for_switch(json_data):
if vv[1] + 1 != inversed_switch_info[vv[0]]:
disable_targets.add(kk)
if vv[0] in disabled_switch:
disable_targets.add(kk)
if k in onprompt_switch_info:
selected_slot_name = f"input{onprompt_switch_info[k]}"
for kk, vv in v['inputs'].items():
-7
View File
@@ -65,13 +65,6 @@ class GeneralSwitch:
selected_label = input_name
node_id = kwargs['unique_id']
if input_name not in kwargs:
if core.is_execution_model_version_supported():
from comfy_execution.graph import ExecutionBlocker
return ExecutionBlocker(None), selected_label, selected_index
else:
print("[Impact Pack] ImpactSwitch: ComfyUI is outdated. Cannot block empty selection.")
if 'extra_pnginfo' in kwargs and kwargs['extra_pnginfo'] is not None:
nodelist = kwargs['extra_pnginfo']['workflow']['nodes']
for node in nodelist:
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "comfyui-impact-pack"
description = "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler."
version = "7.14.2"
version = "7.14.3"
license = { file = "LICENSE.txt" }
dependencies = ["segment-anything", "scikit-image", "piexif", "transformers", "opencv-python-headless", "GitPython", "scipy>=1.11.4"]