Reference document
Model provenance & licensing
What software generates the work I deliver, under what licenses, where it is processed, and what I do and do not warrant. Written to be read by a procurement or legal reviewer, not by a marketing team. If something here is not specific enough for your review, email me and I will get you the detail.
Status: audited 2026-08-18, with open items. This document is published with unresolved rows visibly marked rather than filled in with assumptions. Anything marked Verify has not been confirmed against a license file and must not be read as a claim. An accurate partial record is more useful to a reviewer than a confident one that turns out to be wrong.
1. Summary
Harpeth Systems is a one-person animation studio. Every model that renders a frame or a second of audio runs on hardware I own, in Nashville, Tennessee. No rendering work is sent to a third-party service, so client material is not transmitted to, stored by, or used for training by an outside vendor during production.
Some steps upstream of rendering have used hosted AI tools. That is set out precisely in section 5 rather than glossed over.
The pipeline uses open-weight generative models. Most are Apache-2.0 or MIT. The video model is under a community license that permits commercial use below a revenue threshold. Two text encoders are unverified. All of it is in section 3.
2. The commercial-licensing migration
The series was originally produced on FLUX.1-dev, whose weights are licensed for non-commercial use only. That license is incompatible with delivering work a client intends to sell or advertise with.
Rather than ship on it, the pipeline was migrated to a permissively licensed base (Z-Image-Base, Apache-2.0) and all twelve episodes were re-rendered from scratch. The original FLUX renders are archived off the shipping path and are not distributed.
One honest qualification: the pipeline still uses a FLUX-family autoencoder to decode keyframes. Its embedded metadata self-declares Apache-2.0, which is consistent with FLUX.1-schnell rather than the non-commercial dev release, but that has not yet been confirmed against the upstream repository. "Migrated off FLUX.1-dev" is accurate; "no FLUX component anywhere" would not be.
3. Model inventory
Separated by role. Models that produce delivered pixels or audio matter most to a licensing review; models that only inspect frames never contribute to output. The last column states how each license is known.
Generates delivered output
| Component | Role | License | How it is known | Status |
|---|---|---|---|---|
| Z-Image-Base Tongyi-MAI/Z-Image |
All keyframe generation | Apache-2.0 | HF model card metadata. Local weights carry empty metadata and likely came from a repack; repack provenance unconfirmed. | In use |
| LTX-2.5 22B distilled Lightricks/LTX-2.5 |
Image-to-video motion for every shot | LTX-2.x Community License — free commercial use below $10M annual revenue | Read LICENSE.md in the upstream repository. See the note below this table. | In use |
| Character LoRAs | Per-character identity | Adapter weights are mine; derived from the base model | Trained in-house. Reference-image sourcing is covered in section 5. | In use |
| FLUX.1 autoencoder | VAE decode for every keyframe | Apache-2.0, self-declared | Embedded safetensors header. Consistent with FLUX.1-schnell, not dev. Not yet checked against the upstream repo. | Verify |
| Qwen3-4B text encoder | Text conditioning for keyframes | Unverified | Local file has empty metadata and no license file. Source repository unidentified. | Verify |
| Gemma-4-12B text encoder | Text conditioning for motion | Unverified — Gemma-derived weights normally carry Google’s Gemma Terms of Use, which are not permissive | Source repository unidentified. This is the most significant open item on this page. | Verify |
| LTX video VAE | Decode for every animated clip | Presumed LTX-2.x Community License | Ships alongside LTX-2.5; no separate license file on disk. | Verify |
| Chatterbox TTS 0.1.7 Resemble AI |
All narration and character voice | MIT | Read the License field in the installed package metadata. | In use |
| Kokoro-82M | Source of the synthetic voice reference the narrator is cloned from | Apache-2.0 | HF model card. The reference clip is synthetic — it is not a recording of a real person. That this specific file is a Kokoro voice comes from project notes, not from the file itself. | Verify |
| ACE-Step v1 3.5B | Music beds and ambient beds | Apache-2.0 | Read the License field in the installed package metadata. | In use |
| DejaVu Serif / Sans Bold | Title and credit cards | DejaVu license (Bitstream Vera derived); commercial use permitted | System fonts; license is the standard DejaVu grant. | In use |
| FLUX.1-dev | Former base model | Non-commercial only | Replaced. Archived off the shipping path, not distributed. | Removed |
The LTX-2.x Community License, in plain terms.
Commercial and production use is free for entities below $10 million in annual revenue, measured across the entity and its affiliates. Harpeth Systems is far below that threshold. The threshold binds me as the licensee, not you as the client — your organization’s revenue does not affect it, and a paid license would become my obligation, not yours, if the studio ever crossed it.
Lightricks claims no ownership of the output generated with the model. Two obligations do attach, and both are relevant to a delivery contract:
- A notice obligation on distribution, flowing the license terms through to subsequent recipients.
- A requirement that generated content not be presented without intelligibly disclaiming that it is machine generated.
If your use case requires presenting the work without an AI disclosure, raise it before we scope anything. That is a licensing constraint on the delivered content, not a preference of mine, and it is better surfaced now than at launch.
Inspects only — contributes nothing to output
| Component | Role | License | How it is known | Status |
|---|---|---|---|---|
| Qwen2.5-VL-7B-Instruct quantized to 4-bit at load time |
Automated visual review of sampled frames | Apache-2.0 | Read the license declaration in the local model snapshot. | In use |
Tooling
Both are general-purpose tools. Neither makes the work a derivative of the tool, but they are listed for completeness.
| Component | Role | License | How it is known | Status |
|---|---|---|---|---|
| ComfyUI 0.31.0 | Local inference host | GPL-3.0 | Read the LICENSE file in the local install. | In use |
| FFmpeg 6.1.1 | Frame smoothing, concatenation, muxing, encoding, web derivatives | GPL (build configured with --enable-gpl) | Read the build configuration flags on this machine. | In use |
Checked and absent
Components a reviewer might reasonably expect, confirmed not present in the shipping path: ControlNets, IP-Adapters or other conditioning adapters; upscalers; face or detail restoration; sound-effect or foley libraries (all audio beds are generated). Frame interpolation tooling is installed but unused — smoothing is done in FFmpeg.
4. What the licenses do and do not mean
A permissive model license grants the right to use the weights, including commercially, and to distribute what you make with them. That is a real and necessary thing to have, and it is why the migration in section 2 was worth a full re-render.
It is not the same as any of the following, and I do not claim them:
- Not a warranty about training data. A permissive weights license says nothing about what a model was trained on or who holds rights in it. No open generative model available today offers that assurance, and any vendor telling you otherwise is describing a legal position rather than a technical fact.
- Not an indemnity. I do not offer IP indemnification, because a one-person studio cannot meaningfully back one. If your procurement process requires an indemnity, you should know that before we discuss scope.
- Not a copyrightability opinion. The status of copyright in AI-assisted output varies by jurisdiction and is unsettled. If ownership is load-bearing for you, involve your counsel early; I will give them accurate answers about how the work was made.
5. Where the work is processed
Rendering — fully local.
- Every model that generates a frame or a second of audio runs on a single workstation I own and control.
- No third-party generation APIs are called during production. Scripts, character designs, references, and unreleased footage are not transmitted to an outside service at render time.
- Because nothing depends on a hosted vendor, no model can be deprecated, price-changed, or policy-restricted out from under a project mid-season.
Upstream of rendering — hosted tools have been used.
- The reference image sets used to train two hero-character LoRAs were generated with a hosted service (Grok, xAI) before the local pipeline existed. Those LoRAs are in the current shipping path, so this is disclosed rather than treated as historical.
- Script drafting has used a hosted large language model.
- For client work, both of these are avoidable on request — reference sets can be built from material you supply, and scripts can be written without a hosted tool. Say so at scoping and it will be documented in the deliverable.
6. Human review and automated checks
Every frame that ships has been watched by me, start to finish. That is the control. Nothing below replaces it.
On top of that, the pipeline runs an automated visual review. Text rules narrow the full shot list to a small set of candidates, then a local vision model checks sampled frames against written, falsifiable per-character invariants — statements like "no animal limb may become a human hand." These are anatomy and continuity rules, not aesthetic judgements. Known-bad clips are kept as regression fixtures, and the checker is tested in both directions: it must fire on a real defect and stay silent on the corrected version.
The purpose of the automated pass is to decide where to look, not what ships. It is a triage tool, and it is treated as one.
What it does and does not cover.
- It is validated against a small number of defect classes, not as a general correctness checker. Coverage is being extended as fixtures accumulate.
- It produces false positives, including on correct frames. Every flag is reviewed by a person before anything is changed.
- It detects gross anatomical defects. It does not measure subtle identity drift — there is no instrument for "is this the same character as three shots ago." That judgement is mine, made by watching.
Precision and recall figures per check, and the current fixture coverage, are recorded internally. If your review wants them, ask and I will send the numbers as they stand.
7. Durability of what you buy
Each episode is stored as a written specification — shot list, prompts, timing, character bindings — from which the finished video is generated. The specification is the durable artifact; rendered video is regenerable output. When a better model becomes available, the same specification re-renders against it, which is exactly the mechanism that made the licensing migration in section 2 possible at all.
Practically, this also means any individual shot can be re-animated and stitched back into a finished episode without disturbing the shots around it — roughly two minutes for the shot, and under fifteen to rebuild and republish the episode around it.
8. Open items
Being worked, in this order:
- Identify and verify the license of the Gemma-derived text encoder. It is in the generation path and Gemma weights normally carry non-permissive terms. This is the item most likely to change what this page says.
- Confirm the FLUX autoencoder against its upstream repository rather than its self-declared metadata.
- Identify the source repository and license of the Qwen3-4B encoder.
- Confirm the LTX video VAE is covered by the same community license as the transformer.
- Regenerate the character portrait stills, which predate the migration.
9. Questions this document should answer
If your review needs something not covered here — a specific model card, a hash of the weights in use, a written statement for a vendor questionnaire, or a walkthrough for your counsel — ask and I will provide it or tell you plainly that I cannot.