Attome S3 Save Audio
Ship generated audio to S3 — WAV, MP3, FLAC, or OGG
- audio
- s3_config
- s3_uris
Attome S3 Save Audio takes ComfyUI's standard AUDIO object - the {waveform, sample_rate} dict every audio generation node produces - and uploads it to a bucket as a real audio file. Choose your format, get back an s3:// URI. It's the natural endpoint for TTS workflows, music-generation pipelines, or anything that mints audio and needs it somewhere a web app, a queue worker, or another machine can pick it up.
It belongs to Comfyui_Attome_S3, and mechanically it's the pack's usual pattern: encode locally, upload with boto3, return the paths.
Inputs and outputs
audio(required) - the AUDIO from your generation node.s3_key(required) - destination path. Same placeholders as the rest of the pack (%date%,%time%,%random%,%index%), and if you give itvoiceoverwith no extension, the right one gets appended.format-wav,mp3,flac, orogg, defaultwav. The extension auto-matches, sos3_key: out.mp3+format: wavbecomesout.wav.save_metadata(optional) - defaulttrue.- Output:
s3_uris- a list of uploaded object paths.
How it works, and the metadata asterisk
The node encodes via torchaudio.save() to a temp file, tags it if you left save_metadata on, and pushes the bytes up with the right content type (audio/mpeg for MP3, audio/wav for WAV, and so on). The metadata part deserves a footnote: MP3 gets ID3 tags, FLAC/OGG get Vorbis comments - but only if mutagen is installed, which is not in the pack's requirements.txt. It's an optional extra:
pip install mutagen
If it's missing, the node just silently skips tagging. You'll never get an error, which is exactly why you might not realize the workflow info isn't in your files. That's mostly fine - audio metadata was always a "nice to have" here - but if you're relying on it to recover workflows, install mutagen or verify your files actually carry the tags.
Install and gotchas
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. This node needs torchaudio (in the requirements) and it needs that torchaudio to match your torch build - a version mismatch shows up as an import error or a decode failure, not a helpful message. On the upload side it's the standard S3 drill: Access Denied means s3:PutObject is missing from the IAM policy, and MinIO/R2/Spaces users have to set endpoint_url in the config node or boto3 hunts on AWS. One format note: MP3 and OGG encoding depends on what backends your torchaudio build ships with - if a format you picked silently fails, fall back to WAV or FLAC, which always work. Batch input is accepted, and each item gets its own numbered file and URI.
The security habits from the rest of this pack apply here too: real keys belong in env.txt, not typed into a node that gets embedded in workflow metadata and uploaded right next to your audio. Set save_metadata: false for anything that leaves your control.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| s3_key | STRING | path/to/output.wav | — |
| s3_configopt | S3_CONFIG | — | |
| formatopt | COMBO | wav | 4 options: wav, mp3, flac, ogg |
| save_metadataopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| s3_uris | STRING | — |