ComfyUI Node

图像列表

Nine image wires, one socket, and the one trap it hides

By muyexiuluo·Created about a year ago·Updated 16 days ago· 95
图像列表
    • 图像
    ◄图像_1▾►
    ◄图像_2▾►
    ◄图像_3▾►
    ◄图像_4▾►
    ◄图像_5▾►
    ◄图像_6▾►
    ◄图像_7▾►
    ◄图像_8▾►
    ◄图像_9▾►
    ◄图像_10▾►
    ◄图像_11▾►
    ◄图像_12▾►
    ◄图像_13▾►
    ◄图像_14▾►
    ◄图像_15▾►
    ◄图像_16▾►

    图像列表 (MuyeImageList) is the boring half of a two-node pair, and it's the half you'll reach for constantly once you notice the problem it solves. ComfyUI's IMAGE socket carries one thing. If you generated four images - four branches, four seeds, four LoRA strengths - you have four wires and nowhere to plug them except four separate preview windows. This node takes up to nine IMAGE wires and emits them as one value, which is what its sibling MuyeGridImageConcat wants so it can build a single comparison sheet.

    It's the same category of node as rgthree's Any Switch or a context bus: not generation, just plumbing. The KB's map of that layer calls it "the single most-demanded gap" in its node-article batch, and it's right - every workflow is mostly these.

    How it works

    There's no required input at all. Nine optional IMAGE sockets, 图像_1 through 图像_9, and a single IMAGE output called 图像.

    Each connected input is normalized into a [1, H, W, 3] float32 CPU tensor in 0–1 range - single-channel inputs get repeated to three channels, anything wider than three channels gets truncated to the first three, values clamped. Then they're appended to a Python list in socket order, 图像_1 first, and the list is returned. Unconnected sockets are skipped, so the port you plug into doesn't determine position; the socket number does. Two wires on 图像_1 and 图像_7 give you a two-image list, in that order.

    If nothing is connected at all, it raises rather than returning an empty list.

    The return type is declared as plain IMAGE, and there's a comment in the source explaining why: the node originally declared a custom IMAGE_LIST type, and the frontend's link validation refused to let you wire it to anything. Declaring IMAGE makes the connection legal. The payload is still a Python list.

    The trap: it is a list, not a batch

    That mismatch is the one thing to understand before you use it. A normal IMAGE value in ComfyUI is a stacked 4-D tensor - [N, H, W, 3] where index 0 walks the batch. What comes out of this node is [img1, img2, ...], a Python list of single-image tensors.

    Consumers that iterate the value are fine: Save Image and Preview Image loop over their input, and MuyeGridImageConcat explicitly handles both shapes. Consumers that reach straight for the tensor - anything doing a torch.cat, a reshape, or reading .shape[0] as the batch count - will fail or misbehave on a list, when the wire type promised an IMAGE. If a downstream node acts strange after this one, that's why.

    The second trap is quieter. Each of the nine inputs is normalized individually, and that normalization keeps only the first frame of whatever it's given. So plugging a batch of eight into 图像_1 contributes exactly one image and throws the other seven away, with no warning beyond the count it prints. If you have a batch and want all of it in the grid, feed the batch straight into MuyeGridImageConcat - that node splits batches along the batch dimension on purpose. Reach for MuyeImageList when your images live on separate wires.

    Third, minor: a dead upstream branch doesn't error, it just vanishes. If a branch produces nothing, its socket is silently dropped and you get a grid with one fewer panel than you wired. The console line - [图像列表] 收集到 N 张图像 - is how you check that N is the number you expected.

    Install

    Same pack as the grid node: ComfyUI-Muye-nodes by muyexiuluo. Manager → search "muye" → install → restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/muyexiuluo/ComfyUI-Muye-nodes
    

    The README's manual command names ComfyUI_Muye.git, an older repo name - use the URL above. Its instructions to run pip install -r requirements.txt are for the pack's other nodes; this module needs only torch, numpy, PIL and folder_paths, all of which your ComfyUI already has. Since every custom node installs into the same Python environment, with no isolation at all, it's reasonable to clone without installing the requirements and only come back if you want the captioning or face nodes. The pack's loader imports each module in its own try/except and prints [Muye] Failed to load module ... on failure, so a missing uniface or transformers won't take these image nodes down with it.

    Last thing: the node's display name and every socket label are in Chinese - you'll be looking for 图像列表 in the node list, under the category Muye/图像, not under image. Searching "Muye" or "图像列表" is the reliable way to find it.

    CategoryMuye/图像

    Inputs (16)

    NameTypeDefaultDescription
    图像_1optCOMBO第 1 路图像(可选,不接自动跳过)
    图像_2optCOMBO第 2 路图像(可选,不接自动跳过)
    图像_3optCOMBO第 3 路图像(可选,不接自动跳过)
    图像_4optCOMBO第 4 路图像(可选,不接自动跳过)
    图像_5optCOMBO第 5 路图像(可选,不接自动跳过)
    图像_6optCOMBO第 6 路图像(可选,不接自动跳过)
    图像_7optCOMBO第 7 路图像(可选,不接自动跳过)
    图像_8optCOMBO第 8 路图像(可选,不接自动跳过)
    图像_9optCOMBO第 9 路图像(可选,不接自动跳过)
    图像_10optCOMBO第 10 路图像(可选,不接自动跳过)
    图像_11optCOMBO第 11 路图像(可选,不接自动跳过)
    图像_12optCOMBO第 12 路图像(可选,不接自动跳过)
    图像_13optCOMBO第 13 路图像(可选,不接自动跳过)
    图像_14optCOMBO第 14 路图像(可选,不接自动跳过)
    图像_15optCOMBO第 15 路图像(可选,不接自动跳过)
    图像_16optCOMBO第 16 路图像(可选,不接自动跳过)

    Outputs (1)

    NameTypeDescription
    图像IMAGE—