Nodes/Sloyd AI - 3D model generator/Sloyd: Split to Parts
ComfyUI Node

Sloyd: Split to Parts

Split to Parts — one GLB in, separate named objects out

By Sloydai·Created 22 days ago·Updated 21 days ago· 1
Sloyd: Split to Parts
  • sloyd_job
  • model_3d
  • sloyd_job
  • model_path
  • job_id
◄seed0►
◄job_id►
◄timeout_seconds900►

Generated meshes arrive as one fused lump. That's fine for a static prop and useless the moment you want the lid to open, the wheel to spin, or the armour pieces to move separately. Sloyd: Split to Parts takes a model you already generated and returns the same model with its parts as distinct objects - one GLB, several nodes in the scene graph.

It's the least glamorous node in the pack and the one that quietly makes generated assets usable for anything mechanical.

What it is

A wrapper on Sloyd's split-to-parts endpoint. It needs the job id of a model you own: connect sloyd_job from any upstream Sloyd 3D node, or paste an id into job_id. The wire wins if both are set, and if neither is, the node stops with a message telling you to pick one. It polls until the job lands and downloads the result to ComfyUI/output/sloyd/ like every other generation node.

The author's framing is worth repeating precisely because it's the thing people get wrong when they go looking for separate files: the output is one GLB containing the parts as distinct objects. You don't get a zip of meshes. Open it in Blender and you'll see separate objects; that's what "split" means here.

Inputs

Short list, which is most of the point:

  • sloyd_job - the source model, wired from Text to 3D / Image to 3D / Multi-Image to 3D / Retexture. It also carries the credentials that created the job, so a chain stays on one key.
  • job_id - paste an id from an earlier session instead. Ignored when sloyd_job is connected.
  • seed - ComfyUI cache control, not a Sloyd parameter. Sloyd has no seed, so results aren't reproducible; this exists so you can force a re-run when you actually want one, and leave everything cached and free when you don't. That matters more here than anywhere else in the pack, because the interesting workflow is split, then retexture a part - and you want the split to replay from cache while you iterate downstream.
  • timeout_seconds - 900 default, 60–3600.

Outputs

model_3d - a FILE_3D_GLB that plugs directly into Preview 3D (Advanced) or Save 3D. On older ComfyUI builds without the File3D type it degrades to a path string, so check your ComfyUI version (0.3.40+) if the socket won't connect. sloyd_job chains onward - a split result is a model job, so Retexture accepts it, which is how you get "split this robot, then make the plating brass". model_path gives you the file relative to ComfyUI/output (handy for a Save Asset node or for scripting a Blender import), and job_id is the raw identifier.

Both the split and the retexture are separate billed jobs. Splitting doesn't undo the charge for the model you already generated.

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

The dependency list is literally one line - requests - so there's no compiled-extension roulette, no CUDA wheels, no model weights. Credentials are two values, set under Settings → Sloyd (Client ID and Client Secret from api-dashboard.sloyd.ai); the secret is written to sloyd_config.json server-side and never into your workflow. On a shared or --listen install, use the SLOYD_CLIENT_ID / SLOYD_CLIENT_SECRET environment variables instead.

Gotchas worth knowing

Sloyd is prepaid and charges when a job starts; failures are refunded automatically. Five jobs per key run concurrently - beyond that the node absorbs the 429 with backoff between five seconds and a minute, so a batch of splits won't error out, it'll just take longer. And feed it a real model handle: the sloyd_job type carries its kind, so a skybox handle handed to this node produces an immediate, readable "expects a Sloyd model job" error rather than a server-side mystery. Pasting a job_id bypasses that safety net, so paste carefully.

CategorySloyd/3D

Inputs (4)

NameTypeDefaultDescription
seedINT00–4294967295Change 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.
sloyd_joboptSLOYD_JOBSource model from an upstream Sloyd 3D node.
job_idoptSTRINGAlternatively, paste a Sloyd job id of a model you own. Ignored if sloyd_job is connected.
timeout_secondsoptINT90060–3600How long to wait for the job before giving up, in seconds.

Outputs (4)

NameTypeDescription
model_3dFILE_3D_GLB—
sloyd_jobSLOYD_JOB—
model_pathSTRING—
job_idSTRING—