Field SOP
Field SOP

Give Your AI Content a Legal ID Card: A Labeling Compliance SOP (Explicit + Implicit Labels, Hands-On)

An AI content labeling compliance SOP: four hands-on steps under the labeling Measures + GB 45438 - a three-question scope check -> explicit labels (per-content-type table + platform declaration toggles) -> implicit labels (full c2patool install / manifest.json trainedAlgorithmicMedia / embed-and-verify commands) -> publish and keep records. Five pitfalls: platform re-compression strips metadata / label-stripping tools are unlawful and ineffective / do not hide explicit labels / watermarks are just one implicit form / write labeling duties into outsourcing contracts. Not legal advice.

Published August 17, 20267 min read
<!-- ai-content-labeling-compliance-sop | sop | Give Your AI Content a Legal ID Card: A Labeling Compliance SOP (Explicit + Implicit Labels, Hands-On) -->

China's Measures for Labeling of AI-Generated Synthetic Content has been in force for nearly a year, with mandatory national standard GB 45438 alongside it - yet many creators and teams still operate on "I know I should label, I don't know how." Our previous AI Watermark Arms Race Hotspot covered the red-line risk of label-stripping tools; this SOP covers the correct posture: three steps to give your AI content a compliant ID card - an explicit label users can see, an implicit label machines can read, and a platform declaration that stays on record. Fully actionable; commands come from official documentation.

Scope note: this is a technical workflow plus public regulation summary, not legal advice; for specific scenarios (especially commercial publishing, cross-border distribution) consult a professional. Commands per the official c2patool docs.

1. Step One: Decide Whether Your Content Needs Labeling

The Measures cover AI-generated or synthesized text, images, audio, video, virtual scenes, and other information. A quick three-question self-check:

  1. Who generated it: was the content (in whole or substantial part) generated/synthesized by an AI model, or did AI only fix typos and grammar? The latter generally falls outside labeling scope.
  2. Deep-synthesis situations: face/voice replacement, scene synthesis, immersive scenes and similar deep-synthesis content carry stricter explicit-labeling requirements.
  3. Who publishes it: are you a service provider (platform/tool maker) or a user (an individual/team creating with tools)? Provider obligations are heavier (label + verify); users also have a proactive declaration duty (Article 10).

When in doubt, label - the cost of over-labeling is one line of notice; the cost of missing labels is compliance risk.

2. Step Two: Add the Explicit Label (User-Perceivable)

The explicit label must be directly visible/audible to ordinary users as they consume the content. By content type:

Content typeExplicit label practice (per Article 4 requirements)
TextWritten notice at the start/end of the article (e.g., "This article was AI-assisted"), or a conspicuous notice in the interface
ImageMarking at a conspicuous position on the image
AudioVoice or audio cue notice at the beginning/end
VideoConspicuous marking on the opening screen

Practical points: put the notice conspicuously at the start or end, not buried in paragraph three; use the publishing platform's built-in "AI-generated" declaration toggle (major platforms provide one per the Measures) - the platform attaches a unified label, which is steadier than pasting your own line.

3. Step Three: Add the Implicit Label (Machine-Readable)

The implicit label goes into file metadata - the channel platforms verify and you prove provenance with. The handiest tool for images/videos/documents is the official C2PA CLI c2patool (contentauth/c2pa-rs, Rust, actively maintained):

1) Install (any one):

bash
# macOS
brew install c2patool
# Generic (needs a Rust toolchain)
cargo install c2patool
# Or download a prebuilt binary from GitHub Releases

2) Write the manifest definition (manifest.json, declaring trained-algorithmic media):

json
{
  "declare": {
    "c2pa.created": "auto",
    "c2pa.actions": [
      { "action": "c2pa.created", "digitalSourceType": "trainedAlgorithmicMedia" }
    ]
  },
  "vendor": "your-team",
  "claim_generator": "your-workflow/1.0"
}

Fields per the official manifest docs; trainedAlgorithmicMedia is the IPTC digital source type standard value for "AI-generated media."

3) Embed and verify:

bash
# Embed: read the original image, add the manifest, output a labeled file
c2patool image.jpg -m manifest.json -o image_labeled.jpg

# Verify: confirm the label is present and the signature valid
c2patool image_labeled.jpg -d

The -d flag prints the detailed manifest report; confirm the digitalSourceType assertion landed and the implicit label is done. Wrap in a shell loop for batches; teams building their own AI services should go further and watermark model outputs (see our SynthID-Text Teardown).

4. Step Four: Publish and Keep Records

  1. Platform declaration: tick the platform's "AI-generated" declaration when publishing (it pairs with the explicit label; the platform verifies the metadata implicit label).
  2. Keep evidence: retain the manifest file and a screenshot of the c2patool -d output; for outsourcing/collaboration, write labeling cooperation duties into the delivery agreement.
  3. Verify incoming work: run c2patool <file> -d on outsourced manuscripts to look for AI-source assertions; cross-check with statistical detection (see our AI Content Detector Tools Compared).

5. Five Common Pitfalls

  1. Platform re-compression strips metadata: transcoding on WeChat/Weibo distribution chains can strip C2PA data. The explicit label (the line baked into the image) is the final backstop - don't do just one of the two.
  2. Never "clean" content with label-stripping tools before publishing: Article 10 forbids maliciously deleting, altering, fabricating, or concealing labels - and forbids providing such tools. Stripping is not only unlawful; technically it doesn't even work (statistical watermark residue remains).
  3. Explicit label hidden too deep: end-of-article fine print, a 4px corner mark, or 0.5 seconds at the video's end do not count as "conspicuous." Judge by "visible at first glance."
  4. Assuming a watermark is enough: watermarks are only one encouraged form of implicit label; explicit labels and metadata labels are independent obligations - none substitutes for another.
  5. No written terms for outsourced work: if the contractor used AI but didn't label, responsibility gets murky. Put "AI-use disclosure + labeling cooperation" clauses in the contract and verify at delivery.

Frequently Asked Questions

Q1: I only used AI to polish my own writing - do I need to label? A1: Generally no - the Measures target AI-generated synthetic content; pure assistance (typos, grammar) usually doesn't qualify. The test is "whether a substantial part was generated by AI." When unsure, add a line of "AI-assisted" notice; over-labeling is harmless.

Q2: Can I choose between explicit and implicit labels? A2: No - they are parallel obligations. The explicit label is for humans (text/image/audio notice); the implicit label is for machines (metadata/watermarks). Implicit-only leaves users uninformed; explicit-only breaks platform verification and provenance chains.

Q3: Can a c2patool-embedded label be stripped? A3: The metadata segment can be peeled off (open-source tools have demonstrated this), but C2PA also has "soft binding" mechanisms that chain credentials to the content itself - stripping is not clearing. For compliance, the point is: your labeling fulfills your duty; someone else stripping it is their legal risk.

Q4: Do individual creators / self-media fall under these Measures? A4: Yes. Users publishing AI-generated content via platforms should proactively declare and use platform labeling functions (Article 10); platforms carry verification and supplementary-labeling duties. The easiest routine for individual authors: platform declaration toggle + explicit notice line, plus c2patool implicit labels for images.

Q5: Does publishing abroad follow the Chinese standard? A5: Services reaching mainland audiences fall under the Measures; the EU AI Act has its own transparency duties. C2PA is an international standard format - embed once, usable across jurisdictions. For cross-border compliance boundaries, consult a professional.


References

  • CAC and three other departments: Measures for Labeling of AI-Generated Synthetic Content (published 2025-03-14, effective 2025-09-01; Article 3 explicit/implicit definitions, Article 4 explicit requirements, Article 5 implicit requirements, Article 10 proactive declaration and no-stripping clause)
  • Mandatory national standard: GB 45438 (AI-generated synthetic content labeling)
  • GitHub: contentauth/c2pa-rs (official c2patool docs: -m embed, -d detailed report, --create trainedAlgorithmicMedia, manifest definition)
  • IPTC NewsCodes: digitalSourceType (trainedAlgorithmicMedia standard value)
  • This site: AI Watermark Arms Race Hotspot | SynthID-Text Teardown | AI Content Detector Tools Compared

Compiled from public regulations and official tool documentation (2026-08-17), not legal advice; commands and fields per the official c2patool docs.

This article is AI-assisted and human-edited. Last updated: 2026-08-17

FAQ

I only used AI to polish my own writing - do I need to label?
Generally no - the Measures target AI-generated synthetic content; pure assistance (typos, grammar) usually doesn't qualify. The test is "whether a substantial part was generated by AI." When unsure, add a line of "AI-assisted" notice; over-labeling is harmless.
Can I choose between explicit and implicit labels?
No - they are parallel obligations. The explicit label is for humans (text/image/audio notice); the implicit label is for machines (metadata/watermarks). Implicit-only leaves users uninformed; explicit-only breaks platform verification and provenance chains.
Can a c2patool-embedded label be stripped?
The metadata segment can be peeled off (open-source tools have demonstrated this), but C2PA also has "soft binding" mechanisms that chain credentials to the content itself - stripping is not clearing. For compliance, the point is: your labeling fulfills your duty; someone else stripping it is their legal risk.
Do individual creators / self-media fall under these Measures?
Yes. Users publishing AI-generated content via platforms should proactively declare and use platform labeling functions (Article 10); platforms carry verification and supplementary-labeling duties. The easiest routine for individual authors: platform declaration toggle + explicit notice line, plus c2patool implicit labels for images.
Does publishing abroad follow the Chinese standard?
Services reaching mainland audiences fall under the Measures; the EU AI Act has its own transparency duties. C2PA is an international standard format - embed once, usable across jurisdictions. For cross-border compliance boundaries, consult a professional.

Related

Field SOP

LLaDA-Image Local Deploy SOP: Setup, Inference, Production

A five-step SOP for running Ant's open-source 6B image model LLaDA-Image: (1) environment setup with dependencies and mirror-accelerated downloads; (2) choosing among four weight variants (Base 50-step / Turbo 4-step, each in BF16 or FP8, with ModelScope for China); (3) generating the first image with minimal Base and Turbo commands; (4) advanced work - reference-image editing, text rendering, ComfyUI integration, and degradation strategies when VRAM runs short; (5) productionizing with batch queues, concurrency sizing, cost monitoring, result storage and graceful failure modes. Includes 6 pitfalls and a 10-item launch checklist, with every command copied verbatim from the official README; note the repo license is null, so confirm rights before commercial use.

Sep 9, 202611 min read
Field SOP

Self-Hosting OpenMAIC: From Zero-Deploy to Agent Workbench

A complete SOP for getting OpenMAIC running from zero: (1) zero-deploy hosted mode with an access code from open.maic.chat; (2) standard local setup (pnpm >= 10: clone, pnpm install, .env, pnpm dev); (3) production (pnpm build && pnpm start, one-click Vercel, docker compose up --build); (4) advanced (Postgres persistence profile, ACCESS_CODE, MP4 export profile, Lemonade/FunASR local providers); (5) wiring it into agent workbenches (clawhub install openmaic or importing skills/openmaic/, generating classrooms from Feishu/Slack messages). Includes 6 pitfalls and a 10-item pre-launch checklist, with every command copied verbatim from the official README.

Sep 8, 202611 min read
Field SOP

Kimi Dual Protocol: One Config for Codex and Claude Code

Moonshot announced on 2026-09-02 that the Kimi API natively supports dual protocols: OpenAI Responses (api.moonshot.cn/v1) plus Anthropic Messages (api.moonshot.cn/anthropic), with kimi-k3 as the flagship model. Hands-on SOP: point Claude Code's ~/.claude/settings.json ANTHROPIC_BASE_URL to /anthropic with model kimi-k3[1m]; set Codex's ~/.codex/config.toml wire_api="responses". This turns Kimi into a unified model-routing gateway — switch the backend without touching client code. Boundaries: Responses is text+image only, kimi-k2.7-code forces thinking, and the old ANTHROPIC_API_KEY must be removed.

Sep 5, 202611 min read