Add native ComfyUI list output converter

This commit is contained in:
Hopping Mad Games
2026-08-27 08:21:36 -06:00
parent 36a6124ba9
commit e5cccb21a3
6 changed files with 74 additions and 5 deletions
+22 -1
View File
@@ -29,16 +29,37 @@ EXPECTED_IDS = {
"BytesFromListIdx",
"IntFromListIdx",
"FloatFromListIdx",
"ETKListToComfyList",
}
def test_exact_workflow_ids_are_registered():
assert set(PACKAGE.NODE_CLASS_MAPPINGS) == EXPECTED_IDS
assert PACKAGE.NODE_DISPLAY_NAME_MAPPINGS == {
"AudioFromListIdx": "Audio From List Index"
"AudioFromListIdx": "Audio From List Index",
"ETKListToComfyList": "List To ComfyUI List",
}
def test_etk_list_to_comfy_list_uses_native_list_output_contract():
node = PACKAGE.ETKListToComfyList
source = ["first", {"second": 2}, 3]
assert node.INPUT_TYPES() == {
"required": {"items": ("LIST", {"default": []})}
}
assert node.RETURN_NAMES == ("items",)
assert node.OUTPUT_IS_LIST == (True,)
assert node.CATEGORY == "ETK/List"
assert node().convert(source) == (source,)
assert node().convert(source)[0] is source
assert node().convert([]) == ([],)
assert (node.RETURN_TYPES[0] != "IMAGE") is False
with pytest.raises(TypeError, match="items must be a LIST"):
node().convert("not-a-list")
def test_etk_schema_and_selection_contracts():
image = PACKAGE.ImageFromListIdx
latent = PACKAGE.LatentFromListIdx