ComfyUI Higgsfield Opensource Challenge The analysis ← Build log

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:

  1. 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.
  2. 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.
  3. The recon found that the two easiest reference apps both fail the licence test. comfy-reshoot and comfy-openjutsu both 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 weightsApache-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-2Native 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.5Open weights and a partner nodeLTX-2.x Community LicenseFree 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 H3Open weights and partner nodeMiniMax 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 KleinNative core (0.41.0+), open weightsFLUX Kommunity LicenseNon-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.0Cloud/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.0Same caveat (analysis/20-competition-brief.md:442)
In-Context LoRA (ali-vilab)MITFLUX base licence also applies (analysis/20-competition-brief.md:443)
MiniMax H3 Turbo LoRAs (lightx2v)Apache-2.0Base 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, ReActorUNVERIFIED — 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 capLTX (<$10M), FLUX 3 Image Klein (<$5M), MiniMax H3 (<$20M)Commercial use above a revenue threshold
Territory exclusionMiniMax H3 (US, EU, UK, South Korea)Commercial use at all, for a US entity, regardless of revenue
Non-commercial outrightInfiniteYou (CC-BY-NC 4.0)Any commercial use
Code/weights splitInfiniteYou (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 exclusionThe United States is an excluded territory, along with the EU, UK and South Korea
Revenue capFree commercial use only under $20M revenue
AttributionMandatory
DistillationProhibited — 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
LicenceLTX-2.x Community License (analysis/20-competition-brief.md:436)
Free commercial useUnder $10M annual revenue, aggregated across affiliates (analysis/20-competition-brief.md:436)
LTX-2.5 weightsGated (analysis/20-competition-brief.md:436)
Fine-tune transferMay 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:

  1. 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).
  2. It stacks. LTX ships open weights, so the LTX bonus is compatible with Open Weights Only (analysis/20-competition-brief.md:420).
  3. 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.jsonLTX 2.3 + CrossView-Warp IC-LoRA + MoGe-2Revenue-capped (LTX)
app/workflows/reshoot_wan22_fun_control.jsonWan 2.2 Fun-Control + CrossView-Warp + MoGe-2Apache-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)YesLTX 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)NoFLUX 3 video is Cloud/API-only today (analysis/20-competition-brief.md:491)
MiniMax H3 ($1,000 API credits)NoUS 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 videoLTX 2.3LTX-2.x Community (free under $10M revenue)
View steeringCrossView-WarpApache-2.0
DepthMoGe-2open
Zero-caveat alternativeWan 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:

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 fileEvery licence term in this file is quoted from the recon, which is a secondary synthesis
Resolve the SCAIL-2 MIT-vs-Apache-2.0 conflictSCAIL-2 was not used, so the conflict did not need resolving
Verify the ReCamMaster / ReActor licencesNeither was used
Read the LTX-2.x Community License textThe $10M cap is quoted, not read
Read the MiniMax H3 Community License textThe territory exclusion is quoted, not read
Run --disable-partner-nodesThe 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 completeapp/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
L1Treat "open weights" and "open licence" as separate axesanalysis/20-competition-brief.md:430The whole stack choice
L2Reject MiniMax H3 despite its dual statusanalysis/20-competition-brief.md:437, :448Forfeits the $1,000 H3 bonus
L3Reject FLUX 3 (video is API-only)analysis/20-competition-brief.md:419Forfeits the FLUX credits
L4Target LTX for the $2,000 bonusanalysis/20-competition-brief.md:89, :492Accepts a $10M revenue cap
L5Ship a Wan 2.2 Apache-2.0 alternative graph01-SPEC.md:8; app/workflows/reshoot_wan22_fun_control.jsonExtra work; buys a zero-caveat path
L6State the LTX revenue cap in the READMEapp/README.md:106None — it is the honest choice
L7Name the licence in the engine's own docstringsapp/cinematographer/reliability.py:7-9None
L8Do not claim the stack has been runapp/workflows/*.json _READMENone — 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, statedanalysis/20-competition-brief.md:430
The category's node-type testanalysis/20-competition-brief.md:477, :39
The one-line licence summaryanalysis/20-competition-brief.md:18
The full licence tableanalysis/20-competition-brief.md:432-446
Wan 2.1/2.2 Apache-2.0analysis/20-competition-brief.md:434, :510
LTX revenue capanalysis/20-competition-brief.md:436
H3 territory exclusion + $5k/monthanalysis/20-competition-brief.md:437, :448
H3 open weights are partialanalysis/20-competition-brief.md:437
H3 is dualanalysis/20-competition-brief.md:418
FLUX 3 video API-onlyanalysis/20-competition-brief.md:419
InfiniteYou non-commercialanalysis/20-competition-brief.md:445
SCAIL-2 licence conflictanalysis/20-competition-brief.md:435
ReCamMaster / ReActor unverifiedanalysis/20-competition-brief.md:446
Partner nodes disqualifyanalysis/20-competition-brief.md:424
--disable-partner-nodesanalysis/20-competition-brief.md:424
The entry's stack tableapp/README.md:104-109
The H3 rejection in proseapp/README.md:111-113; 02-DEMO-SCRIPT.md:104-106; 03-SUBMISSION.md:97-98
H3 as a non-goal01-SPEC.md:309
CrossView-Warp licence + envelopeapp/cinematographer/reliability.py:7-10
The Wan graph's licence lineapp/workflows/reshoot_wan22_fun_control.json _README
The LTX graph's NOT VERIFIED statusapp/workflows/reshoot_ltx_crossview.json _README
Licence-clean CONFIRMEDverification/ADVERSARIAL-REVIEW.md:38
The Wan/VACE naming discrepancyapp/README.md:109 vs app/workflows/reshoot_wan22_fun_control.json