MF Save Log File
Append a timestamped line to a log file, every time your workflow runs
- log_content
Somewhere around your fifth failed seed hunt, you start wanting a record of what you actually ran. MF Save Log File (MF_LogFile) is the writer half of MF PipoNodes' logging pair: it appends a timestamped entry to a plain text file every time it executes, and hands the updated log back to you as a string. No database, no JSON state file, no ceremony - just a line in a .txt file that accumulates as you work.
It comes from the MF PipoNodes pack (Pierre Biet, Moment Factory - search "MF PipoNodes" in Manager). The pack is small and new enough that there's no community folklore around it yet, so what you read here is grounded in the shipped code, which is refreshingly simple.
How it works
The inputs that matter:
log_entry(required, multiline) - the text you're logging. This is what shows up in the file.save_log_path- the directory, defaulting to your ComfyUI output folder.log_file_name- defaults tologfile; the node appends.txtfor you, so you end up withoutput/logfile.txt.enable_timestamp- a boolean, on by default. Off, and your entry is written bare.
Each execution appends (never overwrites), prefixed like this:
[2026-08-16 14:30:15] step 42, seed 8839201, cfg 7.0
Yes, there's a blank line after every entry - the code writes entry\n\n. It's harmless, but it's why your file grows with that extra breathing room.
The node creates the directory if it doesn't exist, and because it re-runs every queue (its change-detection always returns NaN), each workflow execution logs exactly once rather than getting skipped by caching. The log_content output is the entire log after your new line was appended - handy if you want to write the history somewhere else.
Where it earns its keep
Three patterns from the pack's own docs are worth stealing:
- Generation tracking. Log seed, step, and settings; when the final image is the one you wanted, the log tells you exactly how you got there. The community's "change one variable at a time with a fixed seed" discipline (it's the most repeated advice in the ecosystem) depends on actually keeping records like this.
- LLM conversation history. Append each model response, then let
MF Load Log Fileread it all back for the next prompt. This is the pack's headline use case, and it works. - Audit trail for batch jobs. Modulo Advanced gives you position + cycle; log it with the step counter and you can reconstruct where a batch died.
Install
cd ComfyUI/custom_nodes/
git clone https://github.com/pierreb-mf/ComfyUI-MF-PipoNodes
cd ComfyUI-MF-PipoNodes
pip install -r requirements.txt
Restart after. Or use Manager → "MF PipoNodes" → Install. Dependencies are just aiohttp and pyyaml - no model downloads.
Gotchas
- Writer first, reader second.
MF Load Log Filecan only read what this node has already created. - Path mismatch is the #1 failure. Both nodes default to
output/logfile.txt, so they match out of the box. If you customize one side, customize both. - Timestamps are local time with second precision - two entries in the same second are indistinguishable, which only matters if you log at high frequency.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| log_entry | STRING | — | |
| save_log_pathopt | STRING | /tmp/ComfyUI/output | — |
| log_file_nameopt | STRING | logfile | — |
| enable_timestampopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| log_content | STRING | — |