Nodes/AI Act Transparency Node/Universal AI Act Saver (Image PNG / Audio MP3 / Vidéo MP4)
ComfyUI Node

Universal AI Act Saver (Image PNG / Audio MP3 / Vidéo MP4)

A save node that stamps 'AI generated' on PNG, MP3, and MP4 — the EU AI Act in one node

By Mikerhinos·Created 2 months ago·Updated about a month ago· 0
Universal AI Act Saver (Image PNG / Audio MP3 / Vidéo MP4)
  • images
  • audio
  • saved_path
filenameAI_Act_OutputNNNN
authorAI Generator
titleAI Generated Media
ai_labelGénéré par IA
save_path/tmp/ComfyUI/output
export_modeAuto-détection
fps24
lyrics

ComfyUI's default SaveImage will happily write your PNG and forget who made it. Universal AI Act Saver is the opposite: it's a single save node for images, audio, and video that bakes an "AI generated" disclosure straight into the file's metadata - author, title, and a label - which is exactly the transparency Article 50 of the EU AI Act is after. It's the headliner of the Mikerhinos/ComfyUI_AI_Act_50 pack, and the reason the pack exists.

A quick reality check before the sales pitch: Article 50 is a disclosure duty, not a ban - from 2 August 2026, providers of generative systems have to mark synthetic output in a machine-readable way, and the FOSS exemption doesn't cover it. What this node writes is metadata, which is one lightweight way to do that. It's a label, not a tamper-proof C2PA signature, and anyone can strip it. Fine for honest provenance; not a legal shield.

How it works

It's an output node that ends your graph, and it picks its format for you. export_mode defaults to Auto-détection, which reads the inputs: audio alone → MP3, images + audio → MP4 (video with a soundtrack), images alone → PNG. Or force it with the explicit Image PNG / Vidéo MP4 / Audio MP3 choices.

What lands in the file varies by format:

  • PNG - the image plus PNG tEXt text chunks (Author, Artist, Title, Comment = your label + "EU AI Act Art. 50") and a few EXIF fields. Numbered filenames.
  • MP3 - encodes through torchaudio → WAV → ffmpeg at 192 kbps, writing title, artist, and (if you supply lyrics) an ID3 USLT + comment frame.
  • MP4 - writes H.264 frames at your fps, muxes the audio in as AAC when you've got some, and stamps artist/title/comment/description.

It also ships a front-end preview: after a run, the MP4 or MP3 plays back right on the node, so you can check before you go hunting in the filesystem.

The inputs that matter

Five required, and you'll actually set most of them:

  • filename - default AI_Act_OutputNNNN. Supports %date% and %date:yyyy-MM-dd% tokens plus an NNNN counter that increments so you don't overwrite.
  • author - default AI Generator. Goes into the file's metadata; make it yours.
  • title - default AI Generated Media.
  • ai_label - the disclosure text itself. Default is Généré par IA - French, because the author is. Change it to "AI generated" (or whatever) unless you want French provenance.
  • save_path - where files land. Heads-up: it defaults to your ~/Downloads folder if one exists, not ComfyUI's output/. Easy to miss, and the cause of most "where did my file go" confusion.

Then the optional wiring: images (IMAGE), audio (AUDIO), fps (default 24), and lyrics (multiline string, embedded in MP3/MP4). The one output, saved_path, returns the full path(s) of what you saved.

Installing it

Standard two-node pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/Mikerhinos/ComfyUI_AI_Act_50

Restart, or search "AI Act 50" in ComfyUI Manager and let it do the work. The heavier dependencies to know about: torchaudio (for MP3), mutagen (tag writing), and an ffmpeg binary - imageio-ffmpeg bundles one, and the code falls back to a system ffmpeg if it's missing.

Common issues

  • FFmpeg introuvable on MP3/MP4 - no ffmpeg anywhere. Install imageio-ffmpeg (pip install imageio-ffmpeg) or add system ffmpeg, then restart.
  • MP3 files overwrite silently. The MP3 branch deliberately drops the counter and uses just the first four words of your filename - a recent change, per the repo history. Save twice with the same name and the second run replaces the first. PNG and MP4 increment; MP3 doesn't.
  • The French defaults - Généré par IA, Auto-détection, Vidéo MP4. Harmless, but if you don't want French strings in your metadata, change the label once.
  • No workflow chunk. This node writes its disclosure metadata but not the standard ComfyUI workflow/prompt text chunks that SaveImage embeds. If you also want the graph-in-the-PNG, you'll want a second save node alongside it.

Small, honest pack from a solo dev, and for what it does - provenance metadata on three formats with zero external services - it's genuinely handy.

CategoryAI Act Compliance

Inputs (10)

NameTypeDefaultDescription
filenameSTRINGAI_Act_OutputNNNN
authorSTRINGAI Generator
titleSTRINGAI Generated Media
ai_labelSTRINGGénéré par IA
save_pathSTRING/tmp/ComfyUI/output
export_modeCOMBOAuto-détection4 options: Auto-détection, Image PNG, Vidéo MP4, Audio MP3
imagesoptIMAGE
audiooptAUDIO
fpsoptFLOAT241–120
lyricsoptSTRING

Outputs (1)

NameTypeDescription
saved_pathSTRING