Nodes/Comfyui_Attome_S3/Attome S3 Save Text
ComfyUI Node

Attome S3 Save Text

Write prompts, captions, and logs to S3 straight from the graph

By attome-ai·Created 9 months ago·Updated 8 months ago· 4
Attome S3 Save Text
  • s3_config
  • s3_uris
text
s3_keypath/to/output.txt
encodingutf-8
save_metadatatrue

Attome S3 Save Text is the sibling of the pack's text loader: it takes any STRING in your workflow and uploads it to a bucket, returning the s3://bucket/key path. It's the node you reach for when you want a permanent record of what a run did - the prompt that produced an image, a caption for a training dataset, a JSON config for a downstream service, a status log. Where the save-image node gives you the render, this one gives you the paperwork.

It's part of Comfyui_Attome_S3 and shares the pack's DNA: boto3 put_object, dynamic filename placeholders, batch numbering, and a save_metadata toggle.

Inputs and outputs

  • text (required) - the string to save. It accepts a list, so a batch of text items becomes a batch of files.
  • s3_key (required) - destination path. Supports the same placeholders as the other save nodes: %date%, %time%, %random%, %index%. Give it logs/%date%/run_%index%.txt and every item lands somewhere unique; leave placeholders out and it auto-appends _1, _2, ...
  • encoding (optional) - utf-8 by default.
  • save_metadata (optional) - default true.
  • Output: s3_uris - a list of uploaded object paths.

The metadata thing, again

With save_metadata: true, the node prepends a # ComfyUI Workflow Metadata comment header (with the full workflow JSON) to the file before uploading. That's genuinely handy for debugging - the text file becomes self-describing. But it also means the file isn't clean: a caption file with a header isn't what your training pipeline expects, and a log with an embedded workflow is a privacy leak if it leaves your hands. For anything production, set it to false and you get exactly the bytes you asked for. This is the one toggle in this pack worth thinking about before every use.

Install

Same as the rest of the pack - ComfyUI Manager (search "Comfyui_Attome_S3"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/attome-ai/Comfyui_Attome_S3
cd Comfyui_Attome_S3
pip install -r requirements.txt

Restart, done. No model downloads; boto3 is the only dependency this node itself touches.

Gotchas

Access Denied on upload = missing s3:PutObject permission, wrong region, or a missing endpoint_url for MinIO/R2 - the usual S3 suspects. One you might not expect: because the save nodes re-derive the extension if it's missing, a key like notes/config gets saved as notes/config.txt; the returned URI is the real one, so don't hand-construct paths downstream. And if text arrives empty, the node returns an empty list and writes nothing - silently. If you're logging every run and notice gaps, check that your text source actually produced output.

CategoryAttome/S3

Inputs (5)

NameTypeDefaultDescription
textSTRING
s3_keySTRINGpath/to/output.txt
s3_configoptS3_CONFIG
encodingoptSTRINGutf-8
save_metadataoptBOOLEANtrue

Outputs (1)

NameTypeDescription
s3_urisSTRING