The analysis
02 — The licence trap: "open weights" is not "open licence"
Scope: the licence analysis that determined the entry's model stack, and the rejection of the obvious build. This is the second of the four v2 corrections (00-BREAKDOWN.md:8-11), and the one the recon calls "the most under-appreciated risk in the competition" (analysis/20-competition-brief.md:430).
Source root: as 01-premise-and-reaim.md §0.
Method: static reading of the recon's licence table and the entry's own licence claims. No LICENSE file was read for any third-party model. The licence terms below are quoted from the recon, which is itself a secondary synthesis. That limitation is load-bearing and is stated again in §10 and in 06-unverified-and-method.md §4.
1. The trap, stated
The competition's Open Weights Only category is defined by node type, not by licence:
"every model, node and dependency is open-weights or open-source, with no closed API model in the critical path; rented GPUs still count" —
analysis/20-competition-brief.md:477
Comfy's own FAQ states the test as a node-type test:
"You may use partner models; only the Open Weights Only category requires open-weights models with no partner nodes or closed-source APIs." —
analysis/20-competition-brief.md:39
A model can pass that test and still be unusable commercially. That is the trap. The recon's statement of it:
"This is the most under-appreciated risk in the competition, and it is not mentioned on the event page at all. The Open Weights Only category is defined by node type ("no partner nodes or closed-source APIs"), but several models that pass that test carry licences that are revenue-capped, territory-excluded, or non-commercial. For a US-based commercial entrant, two of the three headline open video models have a licensing problem." —
analysis/20-competition-brief.md:430
The category's binary test is checkable and passable. The licence question is a separate axis that the category does not measure. An entry can be a legitimate Open-Weights-Only entry and still ship a stack that a US company cannot legally use commercially.
1.1 Why this matters to a competition entry
Three reasons, in order of how much they cost:
- The prize is not the only output. The submission form requires a public repo with an OSI licence and instructions to run it locally (
analysis/20-competition-brief.md:34). A repo that ships a territory-excluded model in its critical path is a repo other people cannot legally use the way it is presented. - The bonus categories point at the trap. Both the FLUX and MiniMax H3 bonuses pay API credits (
analysis/20-competition-brief.md:491), which is itself a signal that they point at the hosted path. - The recon found that the two easiest reference apps both fail the licence test.
comfy-reshootandcomfy-openjutsuboth ship with a closed model in the critical path (analysis/20-competition-brief.md:477).
1.2 The one-line version
"Only the LTX bonus ($2,000 cash) stacks cleanly with Open Weights Only. Separately, the only fully unencumbered open video family is Wan 2.1/2.2 (Apache-2.0); LTX is revenue-capped at $10M and FLUX 3 Image Klein at ~$5M." —
analysis/20-competition-brief.md:18
2. The model-by-model licence table
Reproduced from the recon's licence table (analysis/20-competition-brief.md:432-446) with the recon's own confidence markers preserved. These are quoted terms, not independently verified terms — see §10.
2.1 Video models
| Model | Node type | Licence | Commercial reality |
|---|---|---|---|
| Wan 2.1 / 2.2 (incl. VACE, Fun-Control, Fun-Camera, Animate, Animate-2) | Native core, open weights | Apache-2.0 | "The safest option in the entire brief." No revenue cap, no territory limit, no attribution requirement (analysis/20-competition-brief.md:434) |
| SCAIL-2 | Native core (WanSCAILToVideo, SCAIL2ColoredMask, SAM3) | MIT per the HF model card; Apache-2.0 per secondary coverage — CONFLICTING | "Probably fine; confirm before relying on it" (analysis/20-competition-brief.md:435) |
| LTX-2.3 / LTX-2.5 | Open weights and a partner node | LTX-2.x Community License | Free commercial use only under $10M annual revenue (aggregated across affiliates). LTX-2.5 weights are gated. Transferring fine-tunes may need a paid licence (analysis/20-competition-brief.md:436) |
| MiniMax H3 | Open weights and partner node | MiniMax H3 Community License (eff. 2026-08-02) | "The biggest trap." Free commercial use only under $20M revenue; excluded territories include the United States, EU, UK and South Korea; mandatory attribution; distilling another model on H3 output is prohibited (analysis/20-competition-brief.md:437) |
| FLUX 3 Image Klein | Native core (0.41.0+), open weights | FLUX Kommunity License | Non-commercial by default; commercial-output exception for "Qualifying Users" reported at under $5M revenue (UNVERIFIED). Weights are gated. Image-only — not a video model (analysis/20-competition-brief.md:438) |
| FLUX 3 (full video) | Cloud/API only | — | "Open weights coming soon." Cannot currently be combined with Open Weights Only (analysis/20-competition-brief.md:419) |
| Wan 3.0 | Cloud/API only | — | "Run Wan 3.0 on Comfy Cloud" (analysis/20-competition-brief.md:417) |
2.2 Community LoRAs and nodes
| Item | Licence | Caveat |
|---|---|---|
| CrossView-Warp LoRAs (LTX + H3 ports) | Apache-2.0 | "The LoRA is permissive, but the base model's licence still governs the output" (analysis/20-competition-brief.md:441) |
| Cameraman IC-LoRA (LTX-2.3) | Apache-2.0 | Same caveat (analysis/20-competition-brief.md:442) |
| In-Context LoRA (ali-vilab) | MIT | FLUX base licence also applies (analysis/20-competition-brief.md:443) |
| MiniMax H3 Turbo LoRAs (lightx2v) | Apache-2.0 | Base model licence governs (analysis/20-competition-brief.md:444) |
| InfiniteYou (ByteDance) | Code Apache-2.0, model CC-BY-NC 4.0 | "NON-COMMERCIAL. A genuine trap — the repo looks permissive and the weights are not." (analysis/20-competition-brief.md:445) |
| ReCamMaster, ReActor | UNVERIFIED — repo LICENSE not read | "Verify before relying on either" (analysis/20-competition-brief.md:446) |
2.3 The pattern in the table
Three distinct failure modes, and they are not interchangeable:
| Failure mode | Models | What it blocks |
|---|---|---|
| Revenue cap | LTX (<$10M), FLUX 3 Image Klein (<$5M), MiniMax H3 (<$20M) | Commercial use above a revenue threshold |
| Territory exclusion | MiniMax H3 (US, EU, UK, South Korea) | Commercial use at all, for a US entity, regardless of revenue |
| Non-commercial outright | InfiniteYou (CC-BY-NC 4.0) | Any commercial use |
| Code/weights split | InfiniteYou (Apache-2.0 code, CC-BY-NC weights) | The repo's licence does not describe the weights |
The fourth row is the one that catches people. A permissive repository licence says nothing about the weights it downloads.
3. The decisive case: why MiniMax H3 was rejected
3.1 H3 looks like the obvious choice
MiniMax H3 is dual: open weights and a partner node. Comfy's own FAQ says so:
"Yes. H3 is available as Open Weights, so you can run it yourself, and through Partner Nodes on Comfy Cloud." —
analysis/20-competition-brief.md:418
H3 is also the video model behind both reference video apps (analysis/20-competition-brief.md:418). It has native stereo audio on every clip, up to 2K, 5–15 s per generation, and local int8 quantisation exists (analysis/20-competition-brief.md:418).
On the category's stated test, H3 passes. It is open weights. It is not a closed API if you use the local route.
3.2 The licence disqualifies it anyway
Four independent problems, all from the recon's table (analysis/20-competition-brief.md:437):
| Problem | Term |
|---|---|
| Territory exclusion | The United States is an excluded territory, along with the EU, UK and South Korea |
| Revenue cap | Free commercial use only under $20M revenue |
| Attribution | Mandatory |
| Distillation | Prohibited — you may not distil another model on H3 output |
And the decisive operational fact:
"Comfy's own docs state that commercial use of locally generated H3 output requires a MiniMax commercial licence, resold only by Comfy, from $5,000/month." —
analysis/20-competition-brief.md:437
3.3 The second-order problem: H3's open weights are partial
Even setting the licence aside, the open weights do not reproduce the API:
"only H3-Base (FL2VA and Ref2VA, 768p) is open — H3-Context-IR and H3-Regenerate-2K are API-only, so the API's native 2K output cannot be reproduced locally." —
analysis/20-competition-brief.md:437
So "H3 is open weights" is true of a subset. The 2K capability that the marketing describes is not in the open release.
3.4 The consequence the recon drew
"MiniMax H3 local use is not licensed for a US entity by default — which means the 'Built with MiniMax H3' bonus realistically means the hosted API path, and therefore forfeits Open Weights Only. That is the opposite of what the dual open-weights/partner-node status first suggests." —
analysis/20-competition-brief.md:448
The dual status is a trap in both directions. Choose the local route and you take a licence you cannot use. Choose the API route and you lose the category. There is no third option.
3.5 How the entry states the rejection
The entry's README is direct about it:
"We deliberately do not use MiniMax H3. It has open weights, but the United States is an excluded territory and local commercial use requires a $5,000/month licence. Both reference apps in this competition depend on it. We ship a path that does not." —
app/README.md:111-113
The demo script makes it a spoken beat:
"we deliberately don't use MiniMax H3, because the US is an excluded territory and local commercial use needs five thousand dollars a month. Every model here is one you can actually ship." —
02-DEMO-SCRIPT.md:104-106
And the draft social post:
"No MiniMax H3 — the US is an excluded territory and local commercial use needs $5k/month. Every model here is one you can actually ship." —
03-SUBMISSION.md:97-98
The spec makes it a non-goal: "Any dependency on MiniMax H3, GPT Image, or any closed API." (01-SPEC.md:309)
4. Why LTX was chosen anyway
LTX is revenue-capped, not territory-excluded. That is the whole difference, and it is a deliberate trade.
4.1 The terms
| Term | Value |
|---|---|
| Licence | LTX-2.x Community License (analysis/20-competition-brief.md:436) |
| Free commercial use | Under $10M annual revenue, aggregated across affiliates (analysis/20-competition-brief.md:436) |
| LTX-2.5 weights | Gated (analysis/20-competition-brief.md:436) |
| Fine-tune transfer | May need a paid licence (analysis/20-competition-brief.md:436) |
4.2 Why the cap is acceptable here
Three reasons, and the entry states the first one explicitly:
- The bonus requires it. "LTX must be the core video model in the workflow to qualify" for the $2,000 VFX bonus (
analysis/20-competition-brief.md:89). - It stacks. LTX ships open weights, so the LTX bonus is compatible with Open Weights Only (
analysis/20-competition-brief.md:420). - The cap is a product constraint, not a competition constraint. The recon states it plainly: "Fine for this entry; a constraint on the product." (
analysis/20-competition-brief.md:511)
The entry's README records the cap in its own licence table rather than hiding it:
| Core video | LTX 2.3 | LTX-2.x Community (free under $10M revenue) | —
app/README.md:106
4.3 The honest framing
The entry does not claim LTX is unencumbered. The README's table has a separate row for the zero-caveat alternative (app/README.md:109), and the workflow _README for the Wan graph calls itself "the zero-caveat stack".
That two-row structure is the honest presentation: here is the stack the bonus requires, and here is the stack with no caveats at all.
5. The zero-caveat alternative: Wan 2.2
5.1 Why Wan 2.2 is the safe answer
"Wan 2.1 / 2.2 (Apache-2.0) is the only fully unencumbered open video family — no revenue cap, no territory exclusion, no attribution clause." —
analysis/20-competition-brief.md:510
The recon calls it "The safest option in the entire brief" (analysis/20-competition-brief.md:434) and "the open workhorse" (analysis/20-competition-brief.md:417).
5.2 The entry ships both paths
The spec's layout requires two workflow graphs (01-SPEC.md:8), and the built artefact has exactly two:
| Graph | Stack | Licence posture |
|---|---|---|
app/workflows/reshoot_ltx_crossview.json | LTX 2.3 + CrossView-Warp IC-LoRA + MoGe-2 | Revenue-capped (LTX) |
app/workflows/reshoot_wan22_fun_control.json | Wan 2.2 Fun-Control + CrossView-Warp + MoGe-2 | Apache-2.0 throughout |
The Wan graph's _README states its licence posture directly:
"LICENCE. Wan 2.2 weights are Apache-2.0; CrossView-Warp and its node pack are Apache-2.0; MoGe-2 is open. No MiniMax H3, no closed API, no revenue-capped licence anywhere in the critical path. This is the zero-caveat stack." —
app/workflows/reshoot_wan22_fun_control.json_README
5.3 The strategic reading
The recon's recommendation was the Wan path:
"The Wan path is the more defensible entry if the goal is a genuinely reusable open asset rather than a prize-maximising one." —
analysis/20-competition-brief.md:515
The entry took a hybrid: LTX as the primary (for the bonus and the CrossView-Warp fit) and Wan 2.2 as the shipped zero-caveat alternative. That is a defensible resolution of a genuine tension, and it is stated as such rather than presented as a clean win.
6. The licence claim in the code
The licence posture is not only a document claim. It is asserted in three places in the artefact.
6.1 The reliability module
app/cinematographer/reliability.py names its model dependency and its licence in the docstring:
"The envelope comes from CrossView-Warp (Cseti, Apache-2.0), an LTX 2.3 IC-LoRA whose trained range is documented as green within +/-45 degrees of azimuth." —
app/cinematographer/reliability.py:7-9
The module also states the model's behavioural limitation, which is the honest half of the claim:
"Distance does not behave as expected — CrossView-Warp steers the viewpoint, it does not reproject it — so we grade azimuth and elevation and say so." —
app/cinematographer/reliability.py:9-10
6.2 The workflow provenance blocks
Both graphs carry a LICENCE line in their _README node. The LTX graph's is quoted in §5.2 above. Both graphs also carry a REQUIRED WEIGHTS list naming the exact files ComfyUI must have, which is what makes the licence claim checkable rather than rhetorical.
6.3 The engine has no network calls
The adversarial review verified the strongest form of the claim:
"F — Licence-clean / no trademark — CONFIRMED. No Higgsfield in filenames or app strings; no MiniMax H3, no closed API, no partner nodes, no network calls in the engine." —
verification/ADVERSARIAL-REVIEW.md:38
"No network calls in the engine" is the mechanical version of "no closed API in the critical path." It is a checkable property, and it was checked.
7. The category tension the entry had to navigate
7.1 Open Weights Only vs the bonus categories
The recon identified a structural tension:
"The bonus categories and the Open Weights Only category are in tension — and the licence axis makes it worse. FLUX 3 video is Cloud/API-only with 'open weights coming soon', so a 'Built with FLUX' entry cannot also be Open-Weights-Only. MiniMax H3 looks dual (open weights and a partner node) but its community licence excludes the United States as a territory and requires a $5,000/month licence for local commercial use — so the H3 bonus also points at the hosted path." —
analysis/20-competition-brief.md:18
7.2 The resolution
| Bonus | Stacks with Open Weights Only? | Why |
|---|---|---|
| LTX ($2,000 cash) | Yes | LTX ships open weights; the prize is cash; the licence is acceptable under $10M revenue (analysis/20-competition-brief.md:492) |
| FLUX ($1,000/$500/$250 API credits) | No | FLUX 3 video is Cloud/API-only today (analysis/20-competition-brief.md:491) |
| MiniMax H3 ($1,000 API credits) | No | US territory exclusion; local commercial use needs a $5,000/month licence (analysis/20-competition-brief.md:491) |
The entry targets LTX and only LTX (01-SPEC.md:5). That is the whole reason the category stack works.
7.3 The partner-node disqualifier, stated precisely
"Using any of these in the critical path disqualifies an entry from Open Weights Only — even where an open-weights sibling of the same model exists, because the node is the closed API. MiniMax H3 and LTX 2.5 are the two cases where you can choose the open-weights route instead." —
analysis/20-competition-brief.md:424
This is the sentence that makes the entry's stack choice non-arbitrary. LTX 2.5 has a partner node (LtxApi25*) and open weights. The entry uses the open-weights route. The distinction is the node, not the model.
The recon also records the mechanical way to prove it: *"Partner nodes can be disabled entirely at launch with --disable-partner-nodes (or --offline) — a clean way to prove an entry is open-weights-only."* (analysis/20-competition-brief.md:424)
The entry did not run that proof. It is listed as an unverified item in 06-unverified-and-method.md §5. It is a one-flag check that would have converted a construction argument into a measurement, and it was not performed.
8. The stack the entry actually ships
Reproduced from app/README.md:104-109:
| Role | Model | Licence |
|---|---|---|
| Core video | LTX 2.3 | LTX-2.x Community (free under $10M revenue) |
| View steering | CrossView-Warp | Apache-2.0 |
| Depth | MoGe-2 | open |
| Zero-caveat alternative | Wan 2.2 (VACE) | Apache-2.0 |
8.1 One discrepancy worth recording
The README's alternative row says Wan 2.2 (VACE) (app/README.md:109), but the shipped alternative graph is Wan 2.2 Fun-Control, not VACE:
- The graph file is
app/workflows/reshoot_wan22_fun_control.json. - Its
_READMEnamesWan22FunControlToVideoas the node (app/workflows/validate_graphs.py:74). - Its required weights are
wan2.2_fun_control_high_noise_14B_fp8_scaled.safetensorsandwan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors.
Both are Apache-2.0 Wan 2.2 variants, so the licence claim is unaffected. But the README names a different Wan 2.2 variant than the graph ships. This is a documentation defect of the same class as the ones the adversarial review found, and it is recorded in the headline defects table in the package README.md.
8.2 The stack is asserted, not measured
The entry has never run either graph. The LTX graph's _README says so:
"STATUS: NOT VERIFIED. This graph has never been executed." —
app/workflows/reshoot_ltx_crossview.json_README
And the Wan graph's _README is equally direct:
"MEASURED: nothing. No timing, no VRAM figure, no output. The reference app this is modelled on was demonstrated on a 96 GB GPU; Wan 2.2 Fun-Control 14B fp8 is lighter, but that is an expectation, not a measurement." —
app/workflows/reshoot_wan22_fun_control.json_README
So the licence argument is a construction argument: the graphs contain no closed node and no network call, and the weights they name are Apache-2.0 or revenue-capped. That is checkable by reading the JSON. It is not the same as having run it.
9. What the licence analysis did not do
| Not done | Consequence |
|---|---|
Read any third-party LICENSE file | Every licence term in this file is quoted from the recon, which is a secondary synthesis |
| Resolve the SCAIL-2 MIT-vs-Apache-2.0 conflict | SCAIL-2 was not used, so the conflict did not need resolving |
| Verify the ReCamMaster / ReActor licences | Neither was used |
| Read the LTX-2.x Community License text | The $10M cap is quoted, not read |
| Read the MiniMax H3 Community License text | The territory exclusion is quoted, not read |
Run --disable-partner-nodes | The open-weights-only property is argued from the graph JSON, not proven by a flag |
Check whether the entry's own Apache-2.0 LICENSE file is complete | app/LICENSE is 11,358 bytes; it was not compared against the canonical Apache-2.0 text |
The recon is candid about its own limits here. It marks the FLUX revenue figure UNVERIFIED and tells the reader to "read the licence" (analysis/20-competition-brief.md:438). It marks ReCamMaster and ReActor UNVERIFIED because "repo LICENSE not read" (analysis/20-competition-brief.md:446).
The entry inherits those limits. It did not close them. A reader who needs the licence argument to be legally load-bearing should read the licences.
10. Decision register — the licence phase
| # | Decision | Evidence | Cost of being wrong |
|---|---|---|---|
| L1 | Treat "open weights" and "open licence" as separate axes | analysis/20-competition-brief.md:430 | The whole stack choice |
| L2 | Reject MiniMax H3 despite its dual status | analysis/20-competition-brief.md:437, :448 | Forfeits the $1,000 H3 bonus |
| L3 | Reject FLUX 3 (video is API-only) | analysis/20-competition-brief.md:419 | Forfeits the FLUX credits |
| L4 | Target LTX for the $2,000 bonus | analysis/20-competition-brief.md:89, :492 | Accepts a $10M revenue cap |
| L5 | Ship a Wan 2.2 Apache-2.0 alternative graph | 01-SPEC.md:8; app/workflows/reshoot_wan22_fun_control.json | Extra work; buys a zero-caveat path |
| L6 | State the LTX revenue cap in the README | app/README.md:106 | None — it is the honest choice |
| L7 | Name the licence in the engine's own docstrings | app/cinematographer/reliability.py:7-9 | None |
| L8 | Do not claim the stack has been run | app/workflows/*.json _README | None — it is the honest choice |
L2 is the decision the entry is most likely to be asked about, because H3 is what both reference apps use. The answer is in §3: the US is an excluded territory and local commercial use needs $5,000/month. That is not a preference. It is a term.
11. Evidence index for this file
| Claim | Primary source |
|---|---|
| The trap, stated | analysis/20-competition-brief.md:430 |
| The category's node-type test | analysis/20-competition-brief.md:477, :39 |
| The one-line licence summary | analysis/20-competition-brief.md:18 |
| The full licence table | analysis/20-competition-brief.md:432-446 |
| Wan 2.1/2.2 Apache-2.0 | analysis/20-competition-brief.md:434, :510 |
| LTX revenue cap | analysis/20-competition-brief.md:436 |
| H3 territory exclusion + $5k/month | analysis/20-competition-brief.md:437, :448 |
| H3 open weights are partial | analysis/20-competition-brief.md:437 |
| H3 is dual | analysis/20-competition-brief.md:418 |
| FLUX 3 video API-only | analysis/20-competition-brief.md:419 |
| InfiniteYou non-commercial | analysis/20-competition-brief.md:445 |
| SCAIL-2 licence conflict | analysis/20-competition-brief.md:435 |
| ReCamMaster / ReActor unverified | analysis/20-competition-brief.md:446 |
| Partner nodes disqualify | analysis/20-competition-brief.md:424 |
--disable-partner-nodes | analysis/20-competition-brief.md:424 |
| The entry's stack table | app/README.md:104-109 |
| The H3 rejection in prose | app/README.md:111-113; 02-DEMO-SCRIPT.md:104-106; 03-SUBMISSION.md:97-98 |
| H3 as a non-goal | 01-SPEC.md:309 |
| CrossView-Warp licence + envelope | app/cinematographer/reliability.py:7-10 |
| The Wan graph's licence line | app/workflows/reshoot_wan22_fun_control.json _README |
| The LTX graph's NOT VERIFIED status | app/workflows/reshoot_ltx_crossview.json _README |
| Licence-clean CONFIRMED | verification/ADVERSARIAL-REVIEW.md:38 |
| The Wan/VACE naming discrepancy | app/README.md:109 vs app/workflows/reshoot_wan22_fun_control.json |