π Log Entry Joiner
Merge four log streams into one tidy line
- entry_0
- entry_1
- entry_2
- entry_3
- log_entry
The Dream Project pack's logging system has a happy problem: every interesting node can hand you a LOG_ENTRY - Laboratory emits one with every value, the Float/Int/String-to-Log-Entry nodes make more - and pretty soon you've got five wires all trying to reach one Log File node. Log Entry Joiner [Dream] exists to reduce that mess. It takes up to four optional log entries and merges them into a single one, so one tidy wire reaches your logger instead of a rat's nest.
The mechanism is honest: each input entry is a list of timestamped text fragments, and the joiner concatenates them all into one entry in order. It's marked as a "reduce noodling" utility in the pack's own README, and that's the whole job. No formatting, no deduping, no sorting - it just makes one entry out of several so the logging chain stays linear.
The inputs that matter
- entry_0 through entry_3 - up to four
LOG_ENTRYinputs, all optional. Leave a slot empty and it's simply skipped; the node doesn't care if you only use two of the four.
Output is a single log_entry. The canonical setup: Laboratory [Dream] and your "to log" conversion nodes all feed the joiner, and the joiner feeds Log File [Dream], which writes timestamped lines to a file with a frame counter prefix.
Installing it
It ships with Dream Project Animation Nodes - install the pack via ComfyUI Manager (search "Dream Project Animation Nodes") or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/alt-key-project/comfyui-dream-project.git
cd comfyui-dream-project
pip install -r requirements.txt
Restart ComfyUI. Only real install note is the pack's numpy<2.0 pin.
Common issues
The typical stumble is trying to log a raw string or number straight into the joiner - every input must be a LOG_ENTRY, so strings need String to Log Entry, floats need Float to Log Entry, and so on, before they reach the joiner. The joiner does no type conversion. One more honest note: Log File's output ordering is timestamp-based, and since entries all get timestamps on creation, merged entries print in creation order, not connection order - if your log looks shuffled, that's why. Pack-wide caveat: README says it's unmaintained, but this tiny merge node works fine on current ComfyUI.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| entry_0opt | LOG_ENTRY | β | |
| entry_1opt | LOG_ENTRY | β | |
| entry_2opt | LOG_ENTRY | β | |
| entry_3opt | LOG_ENTRY | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| log_entry | LOG_ENTRY | β |