Unpack Image Collection
Turn a dozen separate generations into one image batch
- input_1
- input_2
- input_3
- input_4
- input_5
- input_6
- input_7
- input_8
- input_9
- input_10
- input_11
- input_12
- input_13
- input_14
- input_15
- input_16
- input_17
- input_18
- input_19
- input_20
- input_21
- input_22
- input_23
- input_24
- input_25
- input_26
- input_27
- input_28
- input_29
- input_30
- input_31
- input_32
- input_33
- input_34
- input_35
- input_36
- input_37
- input_38
- input_39
- input_40
- input_41
- input_42
- input_43
- input_44
- input_45
- input_46
- input_47
- input_48
- input_49
- input_50
- input_51
- input_52
- input_53
- input_54
- input_55
- input_56
- input_57
- input_58
- input_59
- input_60
- input_61
- input_62
- input_63
- input_64
- input_65
- input_66
- input_67
- input_68
- input_69
- input_70
- input_71
- input_72
- input_73
- input_74
- input_75
- input_76
- input_77
- input_78
- input_79
- input_80
- input_81
- input_82
- input_83
- input_84
- input_85
- input_86
- input_87
- input_88
- input_89
- input_90
- input_91
- input_92
- input_93
- input_94
- input_95
- input_96
- input_97
- input_98
- input_99
- input_100
- input_101
- input_102
- input_103
- input_104
- input_105
- input_106
- input_107
- input_108
- input_109
- input_110
- input_111
- input_112
- input_113
- input_114
- input_115
- input_116
- input_117
- input_118
- input_119
- input_120
- input_121
- input_122
- input_123
- input_124
- input_125
- input_126
- input_127
- input_128
- images
Say you generate a character sheet, or four poses, or forty variations, each from its own sampler - and now you want to run them all through one batch operation (upscale, video-feed, color-correct, whatever). The problem is they're scattered across different nodes with different dimensions and different channel counts. Unpack Image Collection is the gather point: it collects every image you've tagged with a shared name and stacks them into a single uniform batch.
This is the receiver half of a two-node pair in Mickmumpitz-Nodes. The sender is Image Collect, which sits on an image output and just tags it (it's a pure pass-through - the image goes through unchanged). Give several Image Collect nodes the same name, then this node selects that name and every matching image arrives as one images batch, resized to a common size.
How it works
The mechanism is the pack's favorite trick: a queue-time prompt handler. When you submit, the handler finds every Image Collect node with the matching name and injects its image into one of the 128 hidden input_N slots this node declares. No wiring needed on your part - you just set source to the shared name and connect the output.
Because images land from different generators, they need unifying. That's what the two enum settings do:
target_size- whose dimensions win:first(the first image collected),largest, orsmallest.fit- how each image is squeezed into that size:stretch(ignores aspect ratio),pad(fits inside, black bars), orcrop(covers, center-cropped).
Channels are padded too - if one input is RGB and another is RGBA, everything becomes RGBA so the stack is valid.
Inputs and outputs
The only things you'll actually touch:
source(STRING) - the shared name, must match the Image Collect tags you want to gather. This is the one to get right; a typo and you collect nothing.target_sizeandfit- set once for your workflow;first+stretchis the fastest default if all your outputs are already the same size.
Output is a single images IMAGE tensor (a batch), which wires straight into whatever batch-processing node you were pointing at one image before.
Where it fits
This shines in the iterative/consistent-character workflows this pack is known for - Mickmumpitz is a YouTuber whose character-sheet and video setups generate lots of parallel branches that need recombining. Collect-then-unpack is also handy for feeding a video model a stack of context frames you built in several separate runs.
Installing
One pack, one install: ComfyUI Manager → search "Mickmumpitz" → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-Mickmumpitz-Nodes
Just numpy, Pillow, opencv-python under the hood. There's a companion JS file (collect.js) that the pack loads automatically, so the tag widgets work out of the box.
Gotchas
If nothing shows up, you almost certainly have a name mismatch between the Collect and Unpack nodes, or the Collect nodes were created after the workflow was last queued - re-queue and it should appear. If resolutions differ wildly, pad and crop behave very differently from stretch, so pick deliberately. And there's a ceiling: up to 128 tagged images can be gathered, which is generous, but a runaway loop of Collects can hit it.
Inputs (131)
| Name | Type | Default | Description |
|---|---|---|---|
| source | STRING | — | |
| target_size | COMBO | first | 3 options: first, largest, smallest |
| fit | COMBO | stretch | 3 options: stretch, pad, crop |
| input_1opt | IMAGE | — | |
| input_2opt | IMAGE | — | |
| input_3opt | IMAGE | — | |
| input_4opt | IMAGE | — | |
| input_5opt | IMAGE | — | |
| input_6opt | IMAGE | — | |
| input_7opt | IMAGE | — | |
| input_8opt | IMAGE | — | |
| input_9opt | IMAGE | — | |
| input_10opt | IMAGE | — | |
| input_11opt | IMAGE | — | |
| input_12opt | IMAGE | — | |
| input_13opt | IMAGE | — | |
| input_14opt | IMAGE | — | |
| input_15opt | IMAGE | — | |
| input_16opt | IMAGE | — | |
| input_17opt | IMAGE | — | |
| input_18opt | IMAGE | — | |
| input_19opt | IMAGE | — | |
| input_20opt | IMAGE | — | |
| input_21opt | IMAGE | — | |
| input_22opt | IMAGE | — | |
| input_23opt | IMAGE | — | |
| input_24opt | IMAGE | — | |
| input_25opt | IMAGE | — | |
| input_26opt | IMAGE | — | |
| input_27opt | IMAGE | — | |
| input_28opt | IMAGE | — | |
| input_29opt | IMAGE | — | |
| input_30opt | IMAGE | — | |
| input_31opt | IMAGE | — | |
| input_32opt | IMAGE | — | |
| input_33opt | IMAGE | — | |
| input_34opt | IMAGE | — | |
| input_35opt | IMAGE | — | |
| input_36opt | IMAGE | — | |
| input_37opt | IMAGE | — | |
| input_38opt | IMAGE | — | |
| input_39opt | IMAGE | — | |
| input_40opt | IMAGE | — | |
| input_41opt | IMAGE | — | |
| input_42opt | IMAGE | — | |
| input_43opt | IMAGE | — | |
| input_44opt | IMAGE | — | |
| input_45opt | IMAGE | — | |
| input_46opt | IMAGE | — | |
| input_47opt | IMAGE | — | |
| input_48opt | IMAGE | — | |
| input_49opt | IMAGE | — | |
| input_50opt | IMAGE | — | |
| input_51opt | IMAGE | — | |
| input_52opt | IMAGE | — | |
| input_53opt | IMAGE | — | |
| input_54opt | IMAGE | — | |
| input_55opt | IMAGE | — | |
| input_56opt | IMAGE | — | |
| input_57opt | IMAGE | — | |
| input_58opt | IMAGE | — | |
| input_59opt | IMAGE | — | |
| input_60opt | IMAGE | — | |
| input_61opt | IMAGE | — | |
| input_62opt | IMAGE | — | |
| input_63opt | IMAGE | — | |
| input_64opt | IMAGE | — | |
| input_65opt | IMAGE | — | |
| input_66opt | IMAGE | — | |
| input_67opt | IMAGE | — | |
| input_68opt | IMAGE | — | |
| input_69opt | IMAGE | — | |
| input_70opt | IMAGE | — | |
| input_71opt | IMAGE | — | |
| input_72opt | IMAGE | — | |
| input_73opt | IMAGE | — | |
| input_74opt | IMAGE | — | |
| input_75opt | IMAGE | — | |
| input_76opt | IMAGE | — | |
| input_77opt | IMAGE | — | |
| input_78opt | IMAGE | — | |
| input_79opt | IMAGE | — | |
| input_80opt | IMAGE | — | |
| input_81opt | IMAGE | — | |
| input_82opt | IMAGE | — | |
| input_83opt | IMAGE | — | |
| input_84opt | IMAGE | — | |
| input_85opt | IMAGE | — | |
| input_86opt | IMAGE | — | |
| input_87opt | IMAGE | — | |
| input_88opt | IMAGE | — | |
| input_89opt | IMAGE | — | |
| input_90opt | IMAGE | — | |
| input_91opt | IMAGE | — | |
| input_92opt | IMAGE | — | |
| input_93opt | IMAGE | — | |
| input_94opt | IMAGE | — | |
| input_95opt | IMAGE | — | |
| input_96opt | IMAGE | — | |
| input_97opt | IMAGE | — | |
| input_98opt | IMAGE | — | |
| input_99opt | IMAGE | — | |
| input_100opt | IMAGE | — | |
| input_101opt | IMAGE | — | |
| input_102opt | IMAGE | — | |
| input_103opt | IMAGE | — | |
| input_104opt | IMAGE | — | |
| input_105opt | IMAGE | — | |
| input_106opt | IMAGE | — | |
| input_107opt | IMAGE | — | |
| input_108opt | IMAGE | — | |
| input_109opt | IMAGE | — | |
| input_110opt | IMAGE | — | |
| input_111opt | IMAGE | — | |
| input_112opt | IMAGE | — | |
| input_113opt | IMAGE | — | |
| input_114opt | IMAGE | — | |
| input_115opt | IMAGE | — | |
| input_116opt | IMAGE | — | |
| input_117opt | IMAGE | — | |
| input_118opt | IMAGE | — | |
| input_119opt | IMAGE | — | |
| input_120opt | IMAGE | — | |
| input_121opt | IMAGE | — | |
| input_122opt | IMAGE | — | |
| input_123opt | IMAGE | — | |
| input_124opt | IMAGE | — | |
| input_125opt | IMAGE | — | |
| input_126opt | IMAGE | — | |
| input_127opt | IMAGE | — | |
| input_128opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |