ComfyUI models that agree on their nodes share an environment; a licence says what a machine can match
CI / test (push) Failing after 6m21s

A ComfyUI model may name an environment: the models of one environment
agree on every custom node they both name and on every package range,
so one replica can carry all of them and ComfyUI moves between their
weights itself rather than the card being handed over with a cold start
each time. The catalog refuses an environment that cannot share a
Python, naming both models; Catalog.Environments gives each one's
models, the union of their nodes and their weight sources, for
placement to build on.

A licence gains an id (SPDX where there is one), whether its output may
be used commercially, the regions it excludes, a revenue cap and the
attribution it asks for, so a person's or a site's choice of licences
can be matched without reading prose.

BACKLOG gains section H: ComfyUI as a platform.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ilker ManapandClaude Opus 5.5 committed 2026-10-11 09:19:50 +02:00
1 parent 0639edfd3b
commit b43e66c95e
7 files changed
+549

No files matched your search

+28
View File
@@ -8782,6 +8782,10 @@
"$ref": "#/components/schemas/catalog.CustomNode"
},
"description": "Nodes are custom nodes the workflow needs, put in each replica's own custom_nodes at the commit named."
},
"environment": {
"type": "string",
"description": "Environment names the models that may share one ComfyUI replica: every model of an environment agrees on the custom nodes they both name, so one replica can carry all of them and ComfyUI moves between their weights itself. Empty is an environment of the model alone."
}
}
},
@@ -8879,6 +8883,10 @@
"type": "object",
"description": "License is the terms what a model makes comes under: said beside every result, and written into a mesh, which travels without the API.",
"properties": {
"id": {
"type": "string",
"description": "ID names the licence for a machine: an SPDX identifier where there is one (MIT, Apache-2.0, CC-BY-NC-4.0), else a lowercase name of the licence's own (stability-community, tencent-hunyuan-community). What a person's or a site's choice of licences matches on. Name is for people."
},
"name": {
"type": "string",
"description": "Name is the licence's own: MIT, Apache-2.0."
@@ -8889,6 +8897,26 @@
"notice": {
"type": "string",
"description": "Notice is what must accompany what was made: attribution, terms on the output, what the weights were trained on."
},
"commercial": {
"type": "boolean",
"description": "Commercial says whether what is made may be used commercially: nil is not said, which is not the same as yes."
},
"excluded_regions": {
"type": "array",
"items": {
"type": "string"
},
"description": "ExcludedRegions are where the licence grants nothing: ISO 3166 codes, and EU for the union (Hunyuan's: EU, UK, KR)."
},
"revenue_cap_usd": {
"type": "integer",
"format": "int64",
"description": "RevenueCapUSD is the yearly revenue above which the licence asks for another agreement (Stability's community licence: 1000000). Zero is none."
},
"attribution": {
"type": "string",
"description": "Attribution is what a product using the output must show: \"Powered by Stability AI\"."
}
}
},