Attome S3 Config
Your S3 bucket in one node (and why you might not even need it)
- s3_config
The name overpromises. Attome S3 Config doesn't call any API, doesn't validate your keys, and doesn't even make a network request. It's a tiny envelope that bundles your AWS credentials into a single s3_config object, which the other eight nodes in the Comfyui_Attome_S3 pack consume. Think of it as a plug adapter: wire it into any Attome load/save node and that node suddenly knows which bucket, region, and keypair to talk to.
Here's the part that surprises people: you don't actually have to use this node at all. The pack reads a file called env.txt in its own install folder on startup. Put AWS_ACCESS_KEY_ID=..., AWS_SECRET_ACCESS_KEY=..., REGION_NAME=us-east-1, BUCKET_NAME=... in there, restart ComfyUI, and every load/save node uses those defaults without a config node in sight. The values are cached once per session, so it's not re-reading the file on every image. The Config node exists for when you want per-workflow overrides or you juggle several buckets - wire it in and it wins over the defaults.
What you actually set
Four required fields, one optional:
aws_access_key_idandaws_secret_access_key- your S3 credentials. Generate them in the AWS console (or whatever your S3-compatible provider calls them) with an IAM user scoped to the bucket.region_name- e.g.us-east-1. Get this wrong and boto3 will happily fail with connection errors that read like a network outage.bucket_name- the bucket everything reads from and writes to.endpoint_url(optional) - leave blank for AWS. Fill it in for S3-compatible services:http://localhost:9000for MinIO,https://<account>.r2.cloudflarestorage.comfor R2, the Spaces or B2 URL for DigitalOcean/Backblaze.
It outputs a single s3_config object, and that's it.
Security note worth taking seriously
Whatever you type into this node gets serialized into the workflow JSON - and if you leave save_metadata on in the save nodes, that whole workflow gets embedded in every file you upload. Real keys in a shared or embedded workflow is how people leak their S3 bill to the world. The whole reason the env.txt route exists is to keep secrets out of the graph. Use it.
Install and gotchas
ComfyUI Manager can find it (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
Then restart ComfyUI. The requirements file pulls in boto3 plus the media libs (opencv-python, torchaudio) that the whole pack needs - no model downloads, this pack ships zero weights. The most common failure here is Access Denied on the first real upload, which is almost always an IAM permissions problem (the user needs s3:GetObject/s3:PutObject on the bucket), a region mismatch, or a wrong endpoint_url for your MinIO/R2 setup. S3 nodes are a legit but niche slice of ComfyUI - mostly people running pipelines that need central, shareable storage - so it's worth double-checking the pack's repo before you trust it with real credentials. This one is small, MIT-licensed, and the source is one readable file, which is about what you want from code that touches your cloud account.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| aws_access_key_id | STRING | your_access_key_here | — |
| aws_secret_access_key | STRING | your_secret_key_here | — |
| region_name | STRING | us-east-1 | — |
| bucket_name | STRING | your_bucket_name_here | — |
| endpoint_urlopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| s3_config | S3_CONFIG | — |