AI Provenance and Training Mining Guide
A guide for AI agents auditing media files for generative AI origin, model attribution, and machine learning training consent.
1. IPTC Digital Source Types
C2PA leverages standard IPTC Digital Source Type URIs within actions and source assertions to differentiate synthetic content from human capture:
| Digital Source Type URI | Meaning | Provenance Category |
|---|---|---|
.../digitalsourcetype/digitalCapture |
Captured directly by a physical camera, microphone, or sensor | Human / Camera |
.../digitalsourcetype/trainedAlgorithmicMedia |
Created entirely or primarily using generative AI algorithms | Synthetic / Generative AI |
.../digitalsourcetype/compositeWithTrainedAlgorithmicMedia |
Human media edited or composited with generative AI elements | Hybrid / AI Edited |
.../digitalsourcetype/algorithmicMedia |
Generated by non-AI algorithmic procedures (e.g. procedural shaders) | Algorithmic |
.../digitalsourcetype/virtualRecording |
Recorded inside a synthetic environment (e.g. 3D engine, video game) | Virtual Simulation |
The full namespace prefix for these URIs is:
https://cv.iptc.org/newscodes/digitalsourcetype/
2. Machine Learning Training and Data Mining Assertions
Publishers use the c2pa.training-mining assertion to signal automated scrapers and AI developers whether media content may be used for model training.
Assertion Structure
{ "c2pa.training-mining": { "entries": { "c2pa.ai_generative_training": { "use": "notAllowed" }, "cawg.data_mining": { "use": "notAllowed" }, "c2pa.ai_inference": { "use": "allowed" }, "c2pa.ai_training": { "use": "notAllowed" } } }}Standard Permission Keys
c2pa.ai_generative_training: Governs use for training generative models (e.g. image, video, voice synthesis).c2pa.ai_training: Broad prohibition across all machine learning training pipelines.c2pa.ai_inference: Governs using the content as input for real-time model inference (e.g. visual question answering).cawg.data_mining: Governs automated text and data extraction under copyright mining exceptions.
Values are either "allowed", "notAllowed", or "constrained".
3. Generative Model Attribution
When generative models sign output content, they attach model parameters and creation metadata in the c2pa.generative assertion:
{ "c2pa.generative": { "model": { "name": "Imagen", "version": "3.0" }, "prompt": "A serene mountain lake at sunrise", "seed": 429184 }}The inspect_c2pa.py script automatically parses these keys and extracts the model name, version, and prompt for quick review.