Open source ยท EU AI Act Article 50

Label every AI output your app generates.

Label Kit wraps your image, text and audio generation calls. It attaches C2PA and IPTC provenance, gives you a disclosure label, keeps an audit log, and checks it all in CI. One dependency, no vendor lock-in.

In development. Not legal advice. No sign-up form: we count ๐Ÿ‘ and comments on a public GitHub issue.

01 โ€” Why now

The labelling rules are already in force.

2 Aug 2026Art. 50 applies

Providers must mark synthetic image, video, audio and text in a machine-readable, detectable way.

2 Dec 2026Grace period ends

For marking duties on systems already on the market before August.

3%of global turnover

Or โ‚ฌ15M, whichever is higher. Applies to non-EU providers whose output reaches the EU.

Sources: Regulation (EU) 2024/1689, Art. 50 and Art. 99 ยท EC AI Act Service Desk ยท Code of Practice on AI-generated content.

02 โ€” How it works

Wrap the call. Ship the proof.

01

Wrap

Drop-in wrapper for OpenAI, Gemini, Stable Diffusion and others.

→
02

Mark

Signed C2PA manifest and IPTC digitalSourceType, plus an optional watermark.

→
03

Disclose

A ready-made "AI-generated" label snippet for your UI.

→
04

Verify

labelkit verify fails CI if any output ships unmarked.

# planned API (sketch)
from labelkit import wrap
client = wrap(OpenAI(), signer="keys/org.pem", log="audit.jsonl")
img = client.images.generate(model="gpt-image-1", prompt="โ€ฆ")
# โ†’ PNG carries a signed C2PA manifest + IPTC trainedAlgorithmicMedia
# โ†’ audit.jsonl gets {id, model, time, manifest_hash}

$ labelkit verify ./public/generated --fail-on-missing
03 โ€” Honest scope

What it proves, and what it can't.

Does
  • Machine-checkable marking: manifest present, signature valid
  • One API across providers and media types
  • An audit trail you can show a regulator or a customer
  • Built on open standards (C2PA, IPTC)
Does not
  • Give legal advice or certify compliance
  • Decide your editorial-review exemption
  • Guarantee a watermark survives every edit
  • Phone home: everything runs in your own stack
04 โ€” Help us decide

We'll build this only if enough teams need it. If you ship AI-generated content to EU users, ๐Ÿ‘ the issue and tell us in one line what you generate and where it shows up.