IPTC compositeSynthetic vs compositeWithTrainedAlgorithmicMedia
Both IPTC terms mean a composite with generative AI in it. One says edited using generative AI; the other says a composite where at least one element is Gen AI.

IPTC defines compositeSynthetic as a composite in which at least one element is generative AI, and compositeWithTrainedAlgorithmicMedia as media edited using generative AI. When a Timeline holds one AI-generated clip and one real clip, either could describe it, so choose by whether you edited a real file with AI or assembled new AI content with real parts. Sume's docs do not write either term into the output.
The terms next to a Timeline
Wording is from the IPTC page. The fourth column is how I would apply it to a Timeline, which is a judgement and not an IPTC rule.
| IPTC term | IPTC wording | When I would pick it |
|---|---|---|
| compositeSynthetic | Composite where at least one element is Gen AI | AI clips placed with real footage |
| compositeWithTrainedAlgorithmicMedia | Edited using Generative AI | A real recording that AI then changed |
| trainedAlgorithmicMedia | Created using Generative AI | Every clip is AI-made |
| composite | Composite of several elements | No AI in any clip |
How a mixed Timeline arises
Timeline places clips from Sume-hosted URLs on a single output. The Video Router can supply a generated clip. Mixing them yields a composite in the IPTC sense.
A rule of thumb in code
A small decision function, which you should adapt to your own policy before relying on it.
import asyncio
def source_type(clip_kinds):
# clip_kinds: list of "real" or "ai" for each timeline clip
ai = clip_kinds.count("ai")
if ai == 0:
return "humanEdits"
if ai == len(clip_kinds):
return "trainedAlgorithmicMedia"
return "compositeWithTrainedAlgorithmicMedia"
async def main():
print(source_type(["real", "real"]))
print(source_type(["real", "ai"]))
print(source_type(["ai", "ai"]))
asyncio.run(main())Keep a record
- Store which clip came from which route in your job notes.
- Use the job metadata object for that note, since Sume keeps it on the job.
- Pick the term at export, because Sume does not embed it.
Sources
Related posts
More in Use cases
- Keep one character consistent in a 30-second Seedance 2.5 clip
Character consistency in a single 30 s Seedance 2.5 pass: send reference_image_urls on Sume, test at 480p, and judge stills. No guarantee, a cheap test plan.
- Kling 4.0 keyframes at 0, 6, 12, 20, 28 s: a 30-second ad on Sume
Kling's guide suggests keyframes near 0, 6, 12, 20 and 28 seconds for a product ad. How to build the same plan on Sume with first-and-last-frame clips.
- Kling 4.0 lip-sync reaches nine languages: a one-clip test each
Kling 4.0 adds Portuguese, German, French and Hindi lip-sync to five existing languages. A short per-language test plan to run before you promise localization.
- Korea AI Basic Act: 30M won fine and a Korean-ad label
A secondary source says Korea's AI Basic Act grace period runs to Jan 2027 with fines up to KRW 30M. How to burn an authored Korean notice with Sume captions.
Written by Sume