array1 append
Not Python append — it pairs rows and trims the excess
- array_input
- append_input
- array_append
- array_input_surplus
- array_append_surplus
array1 append is named to sound like the Python list.append() you know, and it isn't that at all. Once you get past the name, it's actually the pack's most useful list-combining node - for one specific job: gluing two arrays together row by row. And it has a genuinely smart behavior that saves you from a whole class of crashes.
The inputs are array_input and append_input, both LISTs. The output is three lists: array_append (the merged result), plus array_input_surplus and array_append_surplus. What the node does: if both inputs are 1D, it concatenates them flat - [1,2] + [3,4] → [1,2,3,4]. If either is 2D, it stacks them to matching shape and joins row-wise. Here's the smart part: if one array is longer than the other, it truncates the longer one to match and hands you the chopped-off remainder in the corresponding surplus output. Nothing crashes, nothing misaligns, and you can see exactly what got dropped.
That surplus behavior is the thing to understand. Say array_input has 10 rows and append_input has 6. You get an 8... no, a 6-row merged result, the extra 4 rows from array_input come out in array_input_surplus, and the append side is empty. You can wire those surplus outputs anywhere or ignore them - but they're your early-warning system. If your merged result is mysteriously short, look at the surpluses.
Where this earns its keep: building camera-pose rows. Generate radius, elevation, and azimuth lists separately, transpose them to columns, and use array1 append to stack them into a single N×3 (or N×6) pose array that array1 to camposes can consume. That's the classic pipeline this node exists for. It also warns in the console (and returns an empty list) if you feed it 3D or deeper arrays - the pack's data is meant to stay 1D or 2D.
One trap: the merge is positional pairing, not "add to the end" like the name implies. If two lists of different lengths merge and you ignore the surplus, you've silently lost data. Check the extra outputs the first time you use it.
This is part of 807502278/ComfyUI-3D-MeshTool, a one-author 3D utility pack. Pure Python, no models. Install via ComfyUI Manager (search "ComfyUI-3D-MeshTool") and restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/807502278/ComfyUI-3D-MeshTool
cd ComfyUI-3D-MeshTool
pip install -r requirements.txt
Expect the pack's usual habit of renamed nodes turning red on old workflows - recreate and reconnect. And remember: surplus outputs aren't decoration, they're the canary.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| array_input | LIST | — | |
| append_input | LIST | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| array_append | LIST | — |
| array_input_surplus | LIST | — |
| array_append_surplus | LIST | — |