You need to enable JavaScript to run this app.
文档中心
证书中心

证书中心

复制全文
下载 pdf
最佳实践
多素材 AI 合成写入最佳实践
复制全文
下载 pdf
多素材 AI 合成写入最佳实践
本文介绍在多素材 AI 合成场景下,如何写入符合 C2PA Conformance 要求的 Manifest。适用于媒体产物由多个前置素材通过 AI 合成的场景,例如多段视频拼接、AI 特效叠加、图片素材融合等。​
适用场景​
  • 媒体产物由多个素材(图片、视频、音频)通过 AI 合成生成,并被视为一个新创建的资产。​
  • 常见形式:将多个 AI 特效合成为一个视频,或对用户拍摄的视频应用 AI 特效后生成新的产物。​
  • 目标是既标识“AI 合成”属性,又保留每个前置素材的来源信息。​
写入要点​
  • 在 claim_generator_info 中填写生成 Manifest 的服务名称和版本号,并将 specVersion 设置为 2.4.0。​
  • 在 c2pa.actions.v2 中,将 c2pa.created 作为第一条 action。​
  • 将 Actions Assertion 的 created 设置为 true。​
  • 将 digitalSourceType 设置为 compositeWithTrainedAlgorithmicMedia,表示产物是包含生成式 AI 内容的合成媒体。​
  • 将所有参与合成的素材登记为 ingredient,并将 relationship 设置为 componentOf。​
  • 为每个 ingredient 设置唯一的 instance_id,并在 c2pa.created 的 parameters.ingredientIds 中引用这些 ID。​
  • instance_id 使用 XMP Instance ID 格式,推荐写法为 xmp:iid:<UUID-v4>。​
  • 将 allActionsIncluded 设置为 true,表示 Manifest 已记录该资产发生的全部 action。​
Manifest JSON 示例​
​
{​
"claim_generator_info": [​
{​
"name": "ByteDance AI Video Synthesis Service",​
"version": "1.0.0",​
"specVersion": "2.4.0"​
}​
],​
​
"ingredients": [​
{​
"title": "background_scene.mp4",​
"format": "video/mp4",​
"instance_id": "xmp:iid:a1b2c3d4-0001-4000-a000-000000000001",​
"relationship": "componentOf",​
"file": "./inputs/background_scene.mp4"​
},​
{​
"title": "character_reference.png",​
"format": "image/png",​
"instance_id": "xmp:iid:a1b2c3d4-0002-4000-a000-000000000002",​
"relationship": "componentOf",​
"file": "./inputs/character_reference.png"​
},​
{​
"title": "audio_track.mp3",​
"format": "audio/mpeg",​
"instance_id": "xmp:iid:a1b2c3d4-0003-4000-a000-000000000003",​
"relationship": "componentOf",​
"file": "./inputs/audio_track.mp3"​
}​
],​
​
"assertions": [​
{​
"label": "c2pa.actions.v2",​
"created": true,​
"data": {​
"actions": [​
{​
"action": "c2pa.created",​
"digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/compositeWithTrainedAlgorithmicMedia",​
"softwareAgent": {​
"name": "ByteDance AI Video Synthesis Service",​
"version": "1.0.0"​
},​
"parameters": {​
"ingredientIds": [​
"xmp:iid:a1b2c3d4-0001-4000-a000-000000000001",​
"xmp:iid:a1b2c3d4-0002-4000-a000-000000000002",​
"xmp:iid:a1b2c3d4-0003-4000-a000-000000000003"​
]​
}​
}​
],​
"allActionsIncluded": true​
}​
}​
]​
}​
​
关键字段说明​
file​
file 指向对应的素材文件,可以使用相对于 Manifest JSON 文件的位置,也可以使用绝对路径。c2patool 会完成以下处理:​
  • 读取每个 file 指定的素材文件。​
  • 提取素材中已有的 C2PA Manifest(如有)。​
  • 计算素材 Hash。​
  • 生成缩略图。​
  • 构建 c2pa.ingredient.v3 Assertion。​
instance_id​
为每个素材生成独立的 instance_id,并将这些 ID 写入 parameters.ingredientIds 数组,表示当前 action 引用的素材。推荐使用以下格式:​
​
xmp:iid:<UUID-v4>​
​
端到端接入流程​
  1. 合成完成后,业务侧准备待签成品文件与所有 ingredient 文件的本地/临时路径。​
  1. 使用 c2patool 或 c2pa-rs 构建 Manifest JSON,填入 ingredients 与 actions。​
  1. 调用 C2PASign,使用指定的 C2PA 证书实例完成签名。​
  1. 由 SDK 组装签名结果并写入成品文件。​
  1. 按需调用 C2PAVerify 验证 C2PA 证书实例签名。​
  1. 上传至 C2PA Verify 检查完整产物是否通过目标 Rubrics。​
常见问题​
​
问题​
说明​
素材文件不落盘可以吗?​
c2patool 需要读取素材文件计算 Hash 与生成 ingredient 断言,建议在签名过程中提供临时可访问路径。​
素材数量过多会不会影响文件体积?​
ingredient 会新增 Hash、缩略图,若素材本身已有 C2PA 凭证还会将上游 Manifest 一并嵌入形成链式溯源。总增量取决于素材数量、缩略图规格与上游 Manifest 大小,随业务写入内容而变化。​
素材本身已有 C2PA 凭证怎么办?​
c2patool 会自动将其 Manifest 引用进新的 Manifest Store,形成链式溯源,无需业务侧手动处理。​
​
相关文档​
最近更新时间:2026.10.14 16:01:57
这个页面对您有帮助吗?
有用
有用
无用
无用