@@ -27,8 +27,8 @@ class DictCreate(ComfyNodeABC):
2727 def INPUT_TYPES (cls ):
2828 return {
2929 "optional" : ContainsDynamicDict ({
30- "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
31- "value_0" : (IO .ANY , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
30+ "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
31+ "value_0" : (IO .ANY , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
3232 })
3333 }
3434
@@ -40,7 +40,7 @@ def INPUT_TYPES(cls):
4040 def create (self , ** kwargs : list [Any ]) -> tuple [dict ]:
4141 result = {}
4242 # Process all key_X/value_X pairs from dynamic inputs
43- for i in range (len (kwargs ) // 2 ): # Divide by 2 since we have key/value pairs
43+ for i in range (len (kwargs ) // 2 - 1 ): # Divide by 2 since we have key/value pairs
4444 key_name = f"key_{ i } "
4545 value_name = f"value_{ i } "
4646 if key_name in kwargs and value_name in kwargs :
@@ -59,8 +59,8 @@ class DictCreateFromBoolean(ComfyNodeABC):
5959 def INPUT_TYPES (cls ):
6060 return {
6161 "optional" : ContainsDynamicDict ({
62- "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
63- "value_0" : (IO .BOOLEAN , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
62+ "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
63+ "value_0" : (IO .BOOLEAN , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
6464 })
6565 }
6666
@@ -72,7 +72,7 @@ def INPUT_TYPES(cls):
7272 def create (self , ** kwargs : list [Any ]) -> tuple [dict ]:
7373 result = {}
7474 # Process all key_X/value_X pairs from dynamic inputs
75- for i in range (len (kwargs ) // 2 ): # Divide by 2 since we have key/value pairs
75+ for i in range (len (kwargs ) // 2 - 1 ): # Divide by 2 since we have key/value pairs
7676 key_name = f"key_{ i } "
7777 value_name = f"value_{ i } "
7878 if key_name in kwargs and value_name in kwargs :
@@ -91,8 +91,8 @@ class DictCreateFromFloat(ComfyNodeABC):
9191 def INPUT_TYPES (cls ):
9292 return {
9393 "optional" : ContainsDynamicDict ({
94- "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
95- "value_0" : (IO .FLOAT , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
94+ "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
95+ "value_0" : (IO .FLOAT , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
9696 })
9797 }
9898
@@ -104,7 +104,7 @@ def INPUT_TYPES(cls):
104104 def create (self , ** kwargs : list [Any ]) -> tuple [dict ]:
105105 result = {}
106106 # Process all key_X/value_X pairs from dynamic inputs
107- for i in range (len (kwargs ) // 2 ): # Divide by 2 since we have key/value pairs
107+ for i in range (len (kwargs ) // 2 - 1 ): # Divide by 2 since we have key/value pairs
108108 key_name = f"key_{ i } "
109109 value_name = f"value_{ i } "
110110 if key_name in kwargs and value_name in kwargs :
@@ -123,8 +123,8 @@ class DictCreateFromInt(ComfyNodeABC):
123123 def INPUT_TYPES (cls ):
124124 return {
125125 "optional" : ContainsDynamicDict ({
126- "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
127- "value_0" : (IO .INT , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
126+ "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
127+ "value_0" : (IO .INT , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
128128 })
129129 }
130130
@@ -136,7 +136,7 @@ def INPUT_TYPES(cls):
136136 def create (self , ** kwargs : list [Any ]) -> tuple [dict ]:
137137 result = {}
138138 # Process all key_X/value_X pairs from dynamic inputs
139- for i in range (len (kwargs ) // 2 ): # Divide by 2 since we have key/value pairs
139+ for i in range (len (kwargs ) // 2 - 1 ): # Divide by 2 since we have key/value pairs
140140 key_name = f"key_{ i } "
141141 value_name = f"value_{ i } "
142142 if key_name in kwargs and value_name in kwargs :
@@ -155,8 +155,8 @@ class DictCreateFromString(ComfyNodeABC):
155155 def INPUT_TYPES (cls ):
156156 return {
157157 "optional" : ContainsDynamicDict ({
158- "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
159- "value_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 }),
158+ "key_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
159+ "value_0" : (IO .STRING , {"_dynamic" : "number" , "_dynamicGroup" : 0 , "widgetType" : "STRING" }),
160160 })
161161 }
162162
@@ -168,7 +168,7 @@ def INPUT_TYPES(cls):
168168 def create (self , ** kwargs : list [Any ]) -> tuple [dict ]:
169169 result = {}
170170 # Process all key_X/value_X pairs from dynamic inputs
171- for i in range (len (kwargs ) // 2 ): # Divide by 2 since we have key/value pairs
171+ for i in range (len (kwargs ) // 2 - 1 ): # Divide by 2 since we have key/value pairs
172172 key_name = f"key_{ i } "
173173 value_name = f"value_{ i } "
174174 if key_name in kwargs and value_name in kwargs :
0 commit comments