# Model decisions Checked September 16–17, 2026. Model and source revisions are in `models.lock.json`. These are implementation choices for ZeroGPU, not results of a comparative benchmark. | Stage | Choice | Reason and tradeoff | | --- | --- | --- | | Prompt/image conditioning | [FLUX.2 Klein 4B](https://huggingface.co/black-forest-labs/FLUX.2-klein-4B) | Current compact unified generation/editing model, four distilled steps, about 13GB VRAM. Chosen over heavier Qwen-Image and FLUX.2 variants for lease time and memory. | | Textured 3D | [TRELLIS.2 4B](https://huggingface.co/microsoft/TRELLIS.2-4B) | Current Microsoft structured-latent geometry and PBR model with an official [ZeroGPU implementation](https://huggingface.co/spaces/microsoft/TRELLIS.2). Use low texture settings here because SR is a separate stage. | | Part decomposition | [NVIDIA PartField](https://github.com/nv-tlabs/PartField) | Feedforward learned part features across categories, followed by feature clustering. Uses the released Objaverse checkpoint. Samples original faces without remeshing so UV correspondence survives. | | Texture upscale | [Real-ESRGAN x4plus](https://github.com/xinntao/Real-ESRGAN) | Deliberately older, conservative SR baseline. Newer SeedVR2 diffusion restoration can invent texture details and distort UV islands; it is heavier and optimized for images/video. Only base color uses neural SR. A measured bake comparison is needed before claiming either wins on this workload. | | Refinement | `inclusionai/ling-3.0-flash-vl:free` | Exact user-selected model through OpenRouter and [fx](https://github.com/vercel-labs/fx). Availability of the temporary free route is not guaranteed. | [TheOrcDev game-model-cleanup](https://github.com/TheOrcDev/skills/tree/main/game-dev/game-model-cleanup) and its workflow are loaded verbatim into the fx task, with an explicit mapping from its Final Stand project paths/contracts to this run's immutable source, component inventory, rendered evidence and repair schema. Other skills in that repository concern animation, Unity integration or unrelated application work and are not silently applied. PartField's single encoder `torch_scatter.scatter_mean` import is adapted to native PyTorch `scatter_add_` plus counts. This avoids compiling a version-specific scatter extension and leaves checkpoint architecture/weights unchanged. The adapter does not use the upstream Lightning trainer, which would start distributed workers inside a lease. Deployment follows [Hugging Face ZeroGPU](https://huggingface.co/docs/hub/spaces-zerogpu): Gradio SDK, startup model loading, bounded GPU functions, no torch.compile. TRELLIS retains its upstream low-memory model staging; its transfers can increase lease time. The 10% reserve is admission control against measured live availability, not a promise that CUDA fragmentation or external allocations can never cause OOM.