Sloyd: Multi-Image to 3D
Multi-Image to 3D — give it a back view and watch the guesswork disappear
- front_image
- left_image
- back_image
- right_image
- model_3d
- sloyd_job
- model_path
- job_id
Every single-image 3D model is guessing about the sides it can't see. Sometimes the guess is great. Sometimes your character has a beautiful front and a face-like swirl on the back of the head. This node is the fix: feed it up to four views of the same subject and the reconstruction stops inventing.
What it does
Sloyd: Multi-Image to 3D wraps Sloyd's multi-image-to-3d endpoint. You connect a front_image (required) plus at least one of left_image, back_image, right_image as a multipart upload, and get back a textured GLB saved under ComfyUI/output/sloyd/. This is the node to use for anything you care about - a hero prop, a character turnaround, a product object. Two views is already a step change over one; four is the whole turnaround.
If you leave all three optional views unconnected the node raises immediately ("needs at least one of left/back/right in addition to the front view") rather than burning credits on a bad job. Nice touch, that.
Inputs that matter
- front_image / left_image / back_image / right_image - each takes an IMAGE; only the first frame of a batch is used. Keep the views of the same subject at consistent scale and lighting. Wildly different framing across views is the fastest way to get mush, because the model has to reconcile them geometrically.
- generate_type -
Normal,LowPoly,Geometry, orSketch.LowPolyis the one people overlook and it's genuinely useful for game props;Geometryleans away from texture;Sketchsuits rough line-art views. - polygon_type -
triangleorquadrilateral. Quads if you'll edit the mesh afterwards. - enable_pbr - off by default. Turn it on when the asset goes into an engine that relights; PBR material maps stop your model looking like a photo of itself.
- target_face_count -
0= let Sloyd choose, max 500000, clamped with a warning above that. - seed - cache-buster only. Sloyd has no seed parameter, so it doesn't make output reproducible - leave it at 0 and re-runs of an unchanged graph reuse the cached result for free.
- timeout_seconds - defaults to 1500, higher than the other 3D nodes, because multi-image generation is genuinely slower. The author's own note in the source says a live probe didn't finish one inside 600s. Don't lower this to "tidy" the graph.
Outputs
Same four as the rest of the 3D family: model_3d (FILE_3D_GLB, straight into Preview 3D (Advanced) or Save 3D - a plain path string on pre-0.3.40 ComfyUI builds), sloyd_job for chaining into Retexture or Split to Parts, model_path relative to ComfyUI/output, and the raw job_id.
Typical wiring: generate four views of one object with a 2D model of your choice, run them through Load Image nodes into this, preview, then retexture.
Install and credentials
ComfyUI Manager → search Sloyd, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Sloydai/comfyui-sloyd
pip install -r comfyui-sloyd/requirements.txt
One dependency (requests), no weights, no GPU. Then Settings → Sloyd and paste a Client ID plus Client Secret from api-dashboard.sloyd.ai - billing must be set up first (minimum $12, 75 credits per dollar) and the secret is displayed exactly once. Uploads are free; the generation itself is what costs credits.
Where it goes wrong
- Upload limits. Views get downscaled to a 2048px long edge, and if a PNG still exceeds 20MB it's re-encoded as JPEG. Fine for reconstruction, but don't expect pixel-exact input.
- 429s. Each key is capped at five concurrent jobs. The node backs off (5s, 10s, 20s, then longer) rather than failing, but large batches will queue.
- The timeout question. If a job blows through
timeout_seconds, rerunning the node does not resume it - you start a new job and pay again. Bump the timeout before the run, not after.
There's essentially no community troubleshooting to lean on here: this pack has no real Reddit footprint yet, so the failure modes above are read off the shipped code, not off a thread.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| front_image | IMAGE | Front view. Required. | |
| left_imageopt | IMAGE | Left view. At least one of left/back/right is required. | |
| back_imageopt | IMAGE | Back view. | |
| right_imageopt | IMAGE | Right view. | |
| generate_typeopt | COMBO | Normal | Generation mode. |
| polygon_typeopt | COMBO | triangle | Output polygon type. |
| enable_pbropt | BOOLEAN | false | Generate PBR material maps. |
| target_face_countopt | INT | 00–500000 | 0 lets the Sloyd pipeline choose. Maximum 500000. |
| seedopt | 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 | 150060–3600 | How long to wait for the job before giving up, in seconds. Multi-image generation is slower than single-image. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model_3d | FILE_3D_GLB | — |
| sloyd_job | SLOYD_JOB | — |
| model_path | STRING | — |
| job_id | STRING | — |