Nodes/Dream Project Animation Nodes/πŸ—Ž Log Entry Joiner
ComfyUI Node

πŸ—Ž Log Entry Joiner

Merge four log streams into one tidy line

By alt-key-projectΒ·Created 3 years agoΒ·Updated 2 years agoΒ· 114
πŸ—Ž Log Entry Joiner
  • 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_ENTRY inputs, 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.

Category✨ Dream/πŸ›  utils

Inputs (4)

NameTypeDefaultDescription
entry_0optLOG_ENTRYβ€”
entry_1optLOG_ENTRYβ€”
entry_2optLOG_ENTRYβ€”
entry_3optLOG_ENTRYβ€”

Outputs (1)

NameTypeDescription
log_entryLOG_ENTRYβ€”