Content Provenance
Understand the C2PA and IPTC provenance signals Genvid embeds in every generated media file, what the labels mean, and how to verify them externally.
Overview
Every piece of media Genvid generates or publishes carries a tamper-evident C2PA manifest embedded directly in the file bytes. The manifest records who made the asset, what AI model or tool produced it, what inputs it was built from, and a standardized IPTC "Digital Source Type" label classifying the AI involvement.
Studios use these signals to satisfy SAG-AFTRA, MPA, and EU AI Act disclosure requirements, to prove their human-AI workflow attribution, and to give downstream consumers — broadcasters, streamers, archivists — a verifiable provenance trail that survives format conversion, re-encoding, and cross-tool handoff. Adobe Content Credentials in Photoshop and Premiere, Truepic's C2PA Inspector, and the Coalition for Content Provenance and Authenticity's reference verifier at verify.contentauthenticity.org all read Genvid's manifests without configuration.
Key Concepts
- C2PA: The Coalition for Content Provenance and Authenticity standard for tamper-evident content credentials embedded in media files
- IPTC Digital Source Type: An industry-standard vocabulary published by the International Press Telecommunications Council that classifies how a piece of media was created, with specific terms for AI generation, AI editing, and composite work
- Manifest: The signed provenance record embedded in a media file's bytes — contains actions, ingredients, generator attribution, and the digital source type
- Action: A C2PA verb describing what happened to produce this asset —
c2pa.created,c2pa.edited,c2pa.composited,c2pa.opened - Ingredient: A C2PA record of a source asset that contributed to this asset — every ingredient has a relationship (
componentOf,parentOf,inputTo) describing how it contributed - Digital Source Type: The IPTC term stamped on the manifest's action(s) classifying the AI involvement (e.g.,
trainedAlgorithmicMediafor pure AI generation)
Provenance verification vs. fixity verification
When you open a project's Provenance Graph (from an asset's View Provenance Graph action), you may see two different kinds of verification signal on the same media node, and it's worth knowing they answer different questions:
- C2PA provenance (this guide's subject) answers "how was this asset made, and by what chain of edits and ingredients?" It's a signed manifest embedded in the file.
- Fixity and residency answer "is the underlying file still where it's supposed to be, and does it still match what was originally registered?" This only applies to media whose original file lives in your organization's own connected storage rather than in Genvid — the graph marks these nodes with a dashed border and an Offsite original badge, and shows a Verified or Registered chip on the connections leading into them.
A media node can show a valid, unbroken C2PA provenance chain while its fixity status is stale or missing (its underlying file moved or became unreachable in your storage) — the two signals are independent. If you need to confirm authorship and edit history, read the C2PA manifest as described in this guide. If you need to confirm the original file itself is still intact and reachable in your storage, check the fixity status instead — see Image Editor § Offsite Media and Fixity for what each fixity status means, and Storage Connections for how your organization connects its storage.
The five IPTC labels you'll see
These are the canonical terms Genvid emits, with definitions quoted from the IPTC NewsCodes controlled vocabulary.
trainedAlgorithmicMedia
Adobe Content Credentials label: "Created using Generative AI"
"Digital media created algorithmically using an Artificial Intelligence model trained on captured content."
Used when AI is the sole creator of the output. Even if a guide image, reference, or set of keyframes informed the generation, this term applies whenever the output pixels (or audio samples) are fully AI-synthesized — the inputs steered the generation but are not present in the output.
compositeWithTrainedAlgorithmicMedia
Adobe Content Credentials label: "Edited with Generative AI"
"Augmentation, correction or enhancement using a Generative AI model, such as with inpainting or outpainting operations."
Used when AI modifies pre-existing pixels or audio samples in place. The canonical case is image inpainting — AI fills in a portion of an existing image while the rest of the image carries through unchanged. Also covers style transfer on an existing video, voice cloning that re-voices existing speech, and similar AI-as-editor workflows.
compositeSynthetic
Adobe Content Credentials label: "Composite containing AI elements"
"Mix or composite of several elements, at least one of which is Generative AI."
Used when a human (or a digital content creation tool like Foundry Nuke) assembles multiple existing media elements, at least one of which is AI-generated. The compositing itself is not AI — a compositor or DCC tool does the assembly — but because at least one input layer came from a generative AI model, the composite inherits AI ancestry.
algorithmicallyEnhanced
Algorithmic enhancement that does not change the main content.
Used for AI upscaling, denoising, and similar enhancements that preserve the asset's content.
digitalCreation
Manually-uploaded or human-created content with no Generative AI involvement.
Genvid's default for files uploaded by a user without AI processing.
How Genvid operations map to IPTC labels
This table is the canonical reference for what label gets stamped on a piece of media produced by each Genvid operation. Refer to the AI Models guide for the underlying render types.
| Operation | Render Type | IPTC Digital Source Type | What it means |
|---|---|---|---|
| Text-to-Image | T2I | trainedAlgorithmicMedia | AI created the image from a text prompt |
| Text-to-Video | T2V | trainedAlgorithmicMedia | AI created the video from a text prompt |
| Image-to-Video | I2V | trainedAlgorithmicMedia | AI synthesized a new video; input image was a conditioning signal |
| Keyframes-to-Video | KF2V | trainedAlgorithmicMedia | AI synthesized a new video; keyframes guided motion |
| Reference-to-Video | R2V | trainedAlgorithmicMedia | AI synthesized a new video; references guided style or character |
| Text-to-Speech | TTS | trainedAlgorithmicMedia | AI generated speech audio from text |
| Image-to-Image edit | I2I | compositeWithTrainedAlgorithmicMedia | AI modified an existing image in place (inpaint, manipulate) |
| Video-to-Video edit | V2V | compositeWithTrainedAlgorithmicMedia | AI modified an existing video (style transfer, etc.) |
| Voice cloning | S2S | compositeWithTrainedAlgorithmicMedia | AI re-voiced existing speech audio |
| Motion-controlled video | MOTION_CONTROL | compositeSynthetic | AI combined a driving motion video with a subject keyframe |
| Multi-shot scene video | MULTI_SHOT | compositeSynthetic | AI generated a video spanning multiple shots in a scene |
| Nuke / DCC composite | EXTERNAL_COMP | compositeSynthetic | A compositor assembled media in Nuke (or another DCC) |
| AI upscale | UPSCALE | algorithmicallyEnhanced | Resolution or quality enhancement |
| Manual upload | upload | digitalCreation | A user uploaded the file with no AI processing |
The discriminator between the AI labels is "is the AI creating the output, or is the AI modifying pre-existing pixels?" Image-to-Video and Reference-to-Video both take an image as input but the output video is entirely AI-synthesized — none of the input pixels appear in the output frames, so the label is trainedAlgorithmicMedia. Image-to-Image inpainting modifies an existing image's pixels in place, so the label is compositeWithTrainedAlgorithmicMedia.
Composite media and ingredients
When Genvid publishes a composite (i.e. a comp from the Foundry Nuke plugin) the manifest records each contributing input as a C2PA "ingredient." Each ingredient carries a relationship that tells you how it contributed:
| Relationship | What it means |
|---|---|
componentOf | The input is a pixel-contributing component of the assembly (e.g., a layer in a Nuke composite, a baked-in audio track). Triggers the c2pa.composited action on the output. |
parentOf | The output is a direct transformation of this single source asset (e.g., an I2I edit's source image). |
inputTo | The input is guidance only — it informed the work but does not contribute pixels (e.g., a track reference, a grade reference, an AI generation reference image). Listed in the manifest for transparency but does not count toward the "composed of" classification. |
Nuke plugin link types
The Genvid Nuke plugin lets compositors tag each Read on a dedicated "Genvid" tab on the Read's property panel. The tag controls how that Read appears in the published comp's manifest:
| Genvid Link Type | Ingredient relationship | Effect on composite action |
|---|---|---|
| Nuke Input (default) | componentOf | Counts toward c2pa.composited |
| Nuke Clean Plate | componentOf | Counts toward c2pa.composited |
| Nuke Matte | componentOf | Counts toward c2pa.composited |
| Nuke Track Ref | inputTo | Recorded but does NOT trigger c2pa.composited |
| Nuke Grade Ref | inputTo | Recorded but does NOT trigger c2pa.composited |
A composite with at least one componentOf ingredient gets the c2pa.composited action label and compositeSynthetic IPTC term. Reference-only inputs (track refs, grade refs) are recorded faithfully — they show up in the manifest's ingredient list — but they don't trigger the "composed of" classification because the artist used them as guidance, not as pixel components.
The C2PA action labels you'll see
When you inspect a Genvid-signed file in a C2PA verifier, the manifest's c2pa.actions.v2 assertion contains one or more actions. Plain English:
c2pa.created— This asset was newly created. Typical for pure AI generation (text-to-image, text-to-video, reference-to-video) and for the lead action on a Nuke composite (C2PA 2.1 requires the first action to becreatedoropened).c2pa.edited— An existing asset was modified. Typical for I2I inpainting, V2V style transfer.c2pa.composited— This asset was assembled from multiple existing assets. Appears as the second action on Nuke comps, on multi-keyframe video, and on video with baked-in dialog audio.c2pa.opened— An existing asset was opened as the source for further edits. Usually paired withc2pa.editedorc2pa.composited.org.genvid.referenced— A Genvid-specific action recorded on individual provenance links where the source was a guidance input (track reference, grade reference, AI generation reference image). This is link metadata, separate from the manifest's outer action.
How to verify provenance externally
Any C2PA-conformant verifier will read Genvid's manifests without configuration. The easiest path:
- Download the rendered media from your Genvid project, or pull the comp's
.nksidecar and rendered output from your Nuke publish. - Drop the file at verify.contentauthenticity.org — the Coalition for Content Provenance and Authenticity's reference verifier.
- Inspect:
- The IPTC
digitalSourceTypeURI (e.g.,http://cv.iptc.org/newscodes/digitalsourcetype/compositeSynthetic). Should match the operation per the table above. - The C2PA action(s) —
created,edited,composited, with appropriatedigitalSourceTypeon each. - The list of ingredients with their relationships (
componentOf,parentOf,inputTo). - The
cawg.training-miningassertion — Genvid stamps all four flags (cawg.ai_training,cawg.ai_inference,cawg.ai_generative_training,cawg.data_mining) asnotAllowedby default, so downstream AI systems are notified that the content opted out of training reuse.
- The IPTC
Adobe Content Credentials (built into Photoshop and Premiere) and the Truepic C2PA Inspector also support Genvid manifests. The validation state will read "Valid" for any production Genvid output. On development environments you may see a signingCredential.untrusted informational note — this is expected because dev environments use a non-production signing certificate; production builds use a trusted certificate that resolves to "Valid" with no caveats.
Worked examples
Example 1: A text-to-image keyframe
You generate a keyframe in the Keyframe Editor using a text prompt only. The verifier shows:
- Action:
c2pa.created - Digital Source Type:
trainedAlgorithmicMedia - Ingredients: none (text prompt isn't an ingredient — it's stamped as an assertion)
- Generator: the model that produced the image (FLUX, Ideogram, etc.)
Example 2: An image-to-image edit
You open an existing keyframe in the Image Editor and use AI inpainting to remove an artifact. The verifier shows:
- Action 1:
c2pa.opened(the original keyframe is the parent) - Action 2:
c2pa.editedwithdigitalSourceType: compositeWithTrainedAlgorithmicMedia - Ingredients: one ingredient with
relationship: parentOf— the original keyframe - Generator: the editing model used
Example 3: A Nuke composite published back to an asset
A compositor binds the Genvid Nuke plugin to a cast member asset, drops three references via the Genvid Browser, tags one as Nuke Matte and one as Nuke Track Ref on the Read's Genvid tab, builds a comp, and publishes. The verifier shows:
- Action 1:
c2pa.createdwithdigitalSourceType: compositeSynthetic - Action 2:
c2pa.compositedwithdigitalSourceType: compositeSyntheticandparameters.genvid.render_type: EXTERNAL_COMP - Ingredients: three ingredients
- One
componentOf— the Nuke Input layer - One
componentOf— the Nuke Matte layer - One
inputTo— the Nuke Track Ref (recorded but not part of the "composed of" classification)
- One
- Generator: Foundry Nuke (with version, if the plugin reported one)
The composite's media record in Genvid also carries the same compositeSynthetic term, so the provenance graph in your Genvid project page mirrors what the external verifier shows.
Example 4: A reference-to-video shot
You generate a video shot using two reference images (one for character identity, one for composition) plus a text prompt. The verifier shows:
- Action:
c2pa.createdwithdigitalSourceType: trainedAlgorithmicMedia— the output is fully AI-synthesized - Ingredients: two ingredients, both
inputTo— the references guided the generation but no reference pixels appear in the output frames - Generator: the video model used
References
- IPTC NewsCodes Digital Source Type vocabulary — cv.iptc.org/newscodes/digitalsourcetype/
- C2PA Technical Specification — spec.c2pa.org
- C2PA Implementation Guidance — spec.c2pa.org/.../guidance/Guidance.html
- Coalition for Content Provenance and Authenticity (C2PA) reference verifier — verify.contentauthenticity.org
- Content Authenticity Initiative — contentauthenticity.org
- IPTC synthetic media metadata announcement — iptc.org/news/iptc-publishes-metadata-guidance-for-ai-generated-synthetic-media/
