diff --git a/BACKLOG.md b/BACKLOG.md index e189e15..e3d17ce 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -1103,8 +1103,7 @@ at a third of its CPUs. ## G. Jobs: 3D generation through ComfyUI (2026-10-10) -A request for a 3D model (Hunyuan3D 2 first; TRELLIS later if its quality -is wanted) takes minutes on the one 24 GB card, and the card has to be +A request for a 3D model takes minutes on the one 24 GB card, and the card has to be emptied of the chat model first. That is not a request to hold a socket for — `internal/router/activate.go:46` already says so — it is a job: queued, answered with an id, asked after, its result downloaded. The job machinery @@ -1113,6 +1112,25 @@ custom-node install come after. Decided 2026-10-10: a `jobs` table of its own rather than a one-line batch (the JSONL shape would be artificial and has nowhere for progress), and progress is shown, not just a status. +Which models (decided 2026-10-10): the assets go into a game sold on +Steam, worldwide, the EU included, so the licence of the output decides +before the quality does. Hunyuan3D (every version) is out: Tencent's +licence excludes the EU, UK and South Korea, and whether a game shipped +there with its outputs is "use in the Territory" is not a question to +leave to a court. In, in this order: **TRELLIS.2** shape (MIT; the best +geometry; its own texture baking goes through nvdiffrec and nvdiffrast, +both under NVIDIA's non-commercial source licence, so that stage is not +run), **Step1X-3D** (Apache 2.0, StepFun; shape and texture in one, the +EU-safe textured path — its ComfyUI node and VRAM need are to be +checked), **Direct3D-S2** (MIT, DreamTech; high-detail shape, has a +ComfyUI node) if TRELLIS.2's detail falls short. Not in: TripoSR and +InstantMesh (permissive but superseded), Stable Fast 3D (Stability's +community licence, revenue-capped), SAM 3D Objects (Meta's own licence, +to be read before it is considered). Steam's disclosure form (changed +2026-01-16) lists pre-generated 3D models as content that must be +declared on the store page: the licence notice G3 writes into the GLB is +what the studio answers that form from. + ### G1. Jobs: store, worker, endpoints (M) - Store: `jobs` (id, owner key/principal, kind, model, status, input (JSON), progress (JSON: queue position, percent, step), result file id, @@ -1163,7 +1181,7 @@ says so within one poll. `modelFolders`; the workflow's placeholders gain `image` (the input picture, base64 in the request, written to the replica's `input/` by the gate through a new `POST /upload/image` the gate allows — or a - base64-loading node, whichever Hunyuan3D's wrapper wants). + base64-loading node, whichever TRELLIS.2's wrapper wants). - `comfy.Client.fetch` reads every output key, not `images` only, and fetches each file named by `/view`; `Image` becomes `Artifact` with its content type (model/gltf-binary, application/octet-stream for .obj). @@ -1192,8 +1210,11 @@ says so within one poll. - Pricing: `per_image` stays; `per_mesh` beside it in `accounting.Price`, `Outcome.Meshes`, the usage sums and exports (as eaea671 did for pictures). -- Done when: Hunyuan3D 2 on cuda01 with `scaling: {min: 0, - idle_timeout: 10m}` makes a .glb from a picture through G1's endpoint, +- Done when: TRELLIS.2 on cuda01 with `scaling: {min: 0, + idle_timeout: 10m}` makes a .glb from a picture through G1's endpoint + with nvdiffrast and nvdiffrec not installed in its venv (the licence + is kept by the install, not by a note), the GLB carries the MIT + notice, the card is free again after the idle timeout, and the same request against flux-schnell is refused as "makes pictures, not meshes".