Genace

AI asset version lineage: trace generation sources and every edited derivative

AI asset version lineage answers a practical question: where did this published file come from, and what depends on it? A filename and prompt history are not enough when a campaign uses a real product photograph, a generated background, a text layer, and several placement crops.

Genace identifies generation jobs and their outputs. Your application must track edits, source references, approvals, storage objects, and publishing destinations. Model completion does not automatically create that production history.

Represent the asset as a graph

Use source nodes for collected media and derivative nodes for transformations. A composite can have several parents. A crop may have one parent and a recipe describing its rectangle. A final video edit can depend on multiple clips and an end-card asset.

Keep edges explicit rather than embedding all history in a single note. That makes it possible to find every derivative affected by a corrected product photograph or a withdrawn copy revision.

Record transformation boundaries

Node typeRequired referencesExample change
Collected outputJob ID and output indexSelect another generated candidate
CompositeBackground and product sourcesReplace product photograph
CropParent and crop rectangleCreate vertical placement
Text compositionParent and approved copy revisionCorrect a translated word
Encoded exportParent and encoding recipeCreate a smaller delivery file
PublicationExport and destination IDReplace the live asset

These are application records. Do not place the entire graph into an unsupported generation field and expect the gateway to maintain it.

Use immutable nodes for changed bytes

When an editor changes a layer or a crop, create a new derivative identifier. Keep the old object and its review status intact. A human-readable label can move between revisions, but the underlying record should not pretend that two different files are the same version.

Store a content hash after collecting or exporting bytes. The hash helps verify identity, while the graph explains meaning. Two files with different encodings may show the same approved scene but have different hashes and distinct delivery purposes.

Keep the original request parameters with the generation node. A seed is useful provenance, not a guarantee that rerunning the request will recreate the archived output. The stored file is the evidence of what was actually reviewed.

Trace a correction through dependents

Suppose a package label changes. Start at the source artwork node, list its composites, then list crops and published exports derived from those composites. Mark affected derivatives for review rather than assuming every campaign asset needs regeneration.

A missing edge is an operational defect. If a designer creates a composite outside the normal pipeline, provide a simple way to register its parents and recipe before it can be approved.

Acceptance checklist

Pick one published image and reconstruct all its parents without asking the author. Then change a source reference in a staging exercise and verify that every affected export can be found. Confirm that old approvals remain attached to old bytes and that new derivatives require the correct review.

Continue with prompt versioning, campaign naming, and archive policy.

Continue with creative workflows

Where these facts come from

  • codebase: src/app/api/v1/images/generations/route.ts
  • codebase: src/ai/providers/types.ts
  • Application-owned workflow recommendations; human review and post-processing are outside the generation gateway
  • Editorial keyword hypothesis; search volume not measured