Sloyd: Text to 3D
Text to 3D is the laziest way to get a mesh — and sometimes that's right
- model_3d
- sloyd_job
- model_path
- job_id
Type "a medieval knight helmet", press Run, get a GLB. If you've spent any time with open 3D generation you know how suspicious that sounds - text-to-3D in the open ecosystem is normally a two-stage trick, a text-to-image model feeding an image-to-3D model. Sloyd exposes a real text-to-3d endpoint, and this node is a thin wrapper on it. It is also the weakest of the three generation nodes in practice, for the boring reason that a prompt describes less than a picture does. Reach for it when you need a helmet, fast, and don't much care which helmet.
What you get, honestly
A textured GLB written to ComfyUI/output/sloyd/, with UVs and a PBR texture, ready for Blender, Unity, Unreal, or a slicer. The community verdict on this whole category has been stable for two years: silhouette and surface are impressive, topology is where it falls over, and whether that matters depends entirely on the destination. Static prop, filler, blockout, 3D print - fine. Anything that has to deform - you're retopologising. Sloyd at least gives you topology and target_face_count so you can ask for quads and a sane budget instead of accepting triangle soup.
How it runs
The node POSTs your prompt to /jobs/text-to-3d, gets a job id back in under a second, then polls every two seconds with a progress bar until the job reaches a terminal status. It downloads jobs/{jobId}.glb and saves it. Nothing runs on your machine except requests. Means no GPU, no model weights, and none of the compiled-extension misery that makes local 3D packs so install-fragile.
The inputs that matter
- prompt - up to 4096 characters, and the more concrete the better. "A wooden dining chair, four legs, square back" beats "furniture". Describe one object; a prompt describing a scene returns an approximation of one thing out of it.
- topology -
auto,quads,triangles. Pickquadsif you intend to edit or retopologise,trianglesif it's going straight into an engine importer. - target_face_count -
0lets Sloyd decide. Anything over 500000 gets clamped to the max with a log warning, so don't use it as a resolution dial. - texture_resolution -
autoto4k, ornonefor a geometry-only model with no texture at all. That's the one to pick if you're going to run Sloyd: Retexture on the result anyway. - t_pose - off by default; on gives you a neutral T-pose, which is the setting you want if the subject is a character you plan to rig. It won't fix bad topology, but it saves you one cleanup pass.
- seed - not a real seed. Sloyd has no such parameter, so this only busts ComfyUI's cache. Leave it at 0 and re-running the graph is free; change it and you pay for a new generation.
- timeout_seconds - 900s default, 60–3600. Polling checks for interruption, so Cancel actually cancels.
Outputs
model_3d (a FILE_3D_GLB) goes to Preview 3D (Advanced) or Save 3D with no adapter node. On older ComfyUI builds that socket type doesn't exist and it degrades to a path string, which is why the pack wants ComfyUI 0.3.40+. model_path is that same file relative to ComfyUI/output, job_id is the raw Sloyd identifier, and sloyd_job is the handle you chain into Retexture or Split to Parts.
Install
ComfyUI Manager → search Sloyd, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Sloydai/comfyui-sloyd
pip install -r comfyui-sloyd/requirements.txt
Restart ComfyUI. The only dependency is requests; there are no model downloads. Then Settings → Sloyd → paste a Client ID and Client Secret - Sloyd wants both, and the secret is shown once at the dashboard. Credits are prepaid, charged when a job starts, refunded automatically if it fails. One warning worth repeating: ComfyUI serialises widget values into the workflow JSON and into the metadata of files you save, which is why the credential fields live in settings and never on the graph.
Traps
Missing credentials produce a message naming all three ways to fix it. A 402 tells you the shortfall and starts nothing. A 429 means five jobs are already running for that key - the node absorbs it with backoff, but batches will serialise. And the big one: every run bills. Fix your prompt before you start generating twenty variations.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | a medieval knight helmet | What to generate. Up to 4096 characters. |
| topology | COMBO | auto | Mesh topology of the output. |
| target_face_count | INT | 00–500000 | 0 lets the Sloyd pipeline choose. Maximum 500000. |
| texture_resolution | COMBO | auto | 'none' produces a geometry-only model with no texture. |
| t_pose | BOOLEAN | false | Generate in a neutral T-pose. Useful if you plan to rig or animate. |
| seed | INT | 00–4294967295 | Change this to force a fresh generation (each one costs credits). Sloyd has no seed parameter, so this does not make results reproducible; it only busts the ComfyUI cache. Left alone, re-running reuses the cached result for free, which is what lets you iterate on a downstream node like Retexture. |
| timeout_secondsopt | INT | 90060–3600 | How long to wait for the job before giving up, in seconds. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model_3d | FILE_3D_GLB | — |
| sloyd_job | SLOYD_JOB | — |
| model_path | STRING | — |
| job_id | STRING | — |