Skip to content

Commit 05e12a0

Browse files
committed
feat(V3-io): allow Enum classes for Combo options
1 parent 187f436 commit 05e12a0

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

comfy_api/latest/_io.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -336,11 +336,25 @@ class Combo(ComfyTypeIO):
336336
class Input(WidgetInput):
337337
"""Combo input (dropdown)."""
338338
Type = str
339-
def __init__(self, id: str, options: list[str]=None, display_name: str=None, optional=False, tooltip: str=None, lazy: bool=None,
340-
default: str=None, control_after_generate: bool=None,
341-
upload: UploadType=None, image_folder: FolderType=None,
342-
remote: RemoteOptions=None,
343-
socketless: bool=None):
339+
def __init__(
340+
self,
341+
id: str,
342+
options: list[str] | list[int] | type[Enum] = None,
343+
display_name: str=None,
344+
optional=False,
345+
tooltip: str=None,
346+
lazy: bool=None,
347+
default: str | int | Enum = None,
348+
control_after_generate: bool=None,
349+
upload: UploadType=None,
350+
image_folder: FolderType=None,
351+
remote: RemoteOptions=None,
352+
socketless: bool=None,
353+
):
354+
if isinstance(options, type) and issubclass(options, Enum):
355+
options = [v.value for v in options]
356+
if isinstance(default, Enum):
357+
default = default.value
344358
super().__init__(id, display_name, optional, tooltip, lazy, default, socketless)
345359
self.multiselect = False
346360
self.options = options

0 commit comments

Comments
 (0)