npx skills add ...
npx skills add picsart/gen-ai-skills --skill enterprise-pinned-registry
Pin exact model versions for reproducible output.
npx skills add picsart/gen-ai-skills --skill enterprise-pinned-registry
A lockfile concept for AI generation. Model versions, prompts, brand tokens, and seeds are pinned to a manifest that regenerates the same campaign identically six months, a year, or three years later. Built for enterprises that need reproducibility for legal holds, brand-campaign continuity, regulatory defense, and year-over-year comparability.
Do not use for: one-off exploration, draft/ideation phases, consumer projects.
Before authoring the registry:
brand-registry repo, or a central governance repo?Five steps. The registry is the contract; everything generates against it.
registry.json — model aliases, prompt templates, brand tokens, default params. Each alias pins to an explicit model@version.gen-ai config set registry <path> points every call on this machine at the registry. Teams commit the registry to git and sync via clone/pull.flux (alias), never flux-2-pro@2.1.3 (raw). Alias resolution is the registry's job.brand-registry-v2026.2).The registry itself is the manifest. Commit it. Tag it. Diff it on every bump.
Every generated asset's results.json entry should carry registry_version so reproduction is one command away.
The registry pins them; it doesn't choose them. For picking, see the per-workflow skills. Typical enterprise registry contents:
| Alias | Pins to | Role |
|---|---|---|
flux | flux-2-pro@x.y | Primary photoreal hero |
kontext | flux-kontext-pro@x.y | Edit-mode, product-accuracy preserve |
portrait | gemini-3-pro-image@x.y | Faces, commercial-safe (verify license) |
upscale | topaz-upscale-image@x.y | Print / wire prep |
remove-bg | picsart-remove-bg@x.y | Transparent PNG derivatives |
change-bg | picsart-change-bg@x.y | Catalog background replace |
kling | kling-v3-pro@x.y | Image-to-video for broadcast |
Confirm commercial-use + regional availability at bump time with gen-ai models info <id>. Provider terms change; pin is not a license.
flux-2-pro@2.1.3 in a prompt — only flux.--seed 42 reruns the same output deterministically.2026.2.0 = year-quarter-patch). Patch for typo fixes; minor for new aliases; major for model swaps.Run gen-ai whoami to confirm authentication, then re-run the failed command with --debug.
Every manifest references aliases, never raw model IDs. The registry is the one place that maps alias → version.
Registry operations are cheap. The value is in what they prevent.
| Activity | Cost | Time |
|---|---|---|
| Author initial registry | 0 | 1 engineer-day |
| Quarterly regression corpus (20 prompts) | ~200 credits | ~1 h generation + ~2 h review |
| Version bump + tag | 0 | ~30 min |
| Reproduce a 1-year-old campaign | Same credits as original | Same wall time |
| Provider-deprecation migration | ~500 credits | 1–2 engineer-days |
Cost savings scale with team size: a 20-person design team bumping incidentally costs far more in drift than one quarterly reviewed bump.
# Point the CLI at the registry
gen-ai config set registry.path ./brand-registry/registry.json
# Pin a model alias
gen-ai config set registry.flux flux-2-pro@2.1.3
gen-ai config set registry.kontext flux-kontext-pro@1.4.0
gen-ai config set registry.kling kling-v3-pro@3.0.1
gen-ai config set registry.upscale topaz-upscale-image@2.0.0
# Verify a given alias resolves to the pinned version
gen-ai config get registry.flux
# → flux-2-pro@2.1.3
# Generate using the alias (reproducible)
gen-ai generate --model flux --prompt-file prompts/hero-launch.txt \
--seed 42
# Batch resolves all aliases against the registry
gen-ai batch run campaign.json