Sloyd: Text to Skybox
Text to Skybox — 360° backdrops from a sentence, no HDRI shoot required
- skybox
- sloyd_job
- skybox_path
- job_id
A skybox is the cheapest trick in 3D and the most annoying one to source. You either pay for an HDRI pack, shoot a panorama yourself, or accept a stock sky. Sloyd: Text to Skybox generates a full equirectangular 360° environment from a prompt and drops it on the canvas as a plain IMAGE - so it feeds Save Image, your upscaler, or a 360 viewer like it was any other picture.
What it is
A wrapper on Sloyd's text-to-worldbox endpoint, in the pack's Sloyd/Environments family. Prompt in, 4096px equirectangular panorama out, saved to ComfyUI/output/sloyd/. Sloyd's response publishes the panorama at flatBoxData.panoramaUrl (there's also a 6-face cubemap in flatBoxData.layers if you're scraping the API yourself), and the node downloads whichever extension the response advertises - .png, .jpg, or .webp. The saved file is always full resolution.
Environments are the part of generative 3D where this kind of cloud helper genuinely earns its keep: you get a plausible, consistent, surround backdrop without shooting anything, and it's directly usable as a scene background, a game skybox, or an image-based lighting source in Blender.
The inputs you'll actually set
- prompt - up to 4096 characters, describing a place, not an object. "A neon cyberpunk alley at night" works because it implies what's behind you and above you. "Spaceship" doesn't.
- gen_style_id - optional Sloyd generation style ID, listed under Generation Styles in the API docs. Blank is the default style. Most people never touch it; it's the knob for locking a look across a set of environments.
- output_max_size - the one non-obvious setting, and the tooltip explains why it exists. Sloyd returns 4096px, and ComfyUI's IMAGE is float32, so that panorama is roughly a 201MB tensor. Previews then re-encode it, and with two previews attached you get the classic "one renders, the other silently doesn't". This caps the long edge of the tensor handed to the graph (2048 by default) while the file on disk stays full resolution. Set it to 0 for a full-size pass-through if you know what you're asking for.
- seed - not a seed. Sloyd has no seed parameter; changing this only busts ComfyUI's cache, which is what makes the node generate again (and bill again). Leave it alone and repeated runs are free.
- timeout_seconds - 900 default.
Outputs
skybox is a normal IMAGE, so it goes anywhere an image goes. skybox_path is the saved panorama relative to ComfyUI/output - that's the one you want if a downstream tool, not ComfyUI, is going to consume it. job_id is the raw Sloyd id, and sloyd_job is the typed handle that Sloyd: Edit Skybox accepts, so you can iterate on an environment without copying identifiers.
Sloyd: Text to Skybox ──skybox──> Preview 360 Panorama
└─sloyd_job──> Sloyd: Edit Skybox ──skybox──> ...
For a proper 360 look, wire skybox into a community viewer such as ComfyUI_preview360panorama. A regular Preview Image node will show you a distorted strip, which is correct and still useful for spotting seams.
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
Just requests. No model weights, no GPU, nothing to download. Then Settings → Sloyd → Client ID and Client Secret from api-dashboard.sloyd.ai; Sloyd authenticates with a pair, not a single key, and the secret is shown once. Prepaid credits, minimum $12 top-up, charged when a job starts and refunded if it fails. On a server reachable beyond localhost, set SLOYD_CLIENT_ID and SLOYD_CLIENT_SECRET as environment variables instead - the settings route has no access control of its own.
Two real gotchas
Long queues and memory, not failures. Parallax with a flat skybox is a real limitation too: an equirectangular image is a convincing backdrop, but it isn't geometry, so if the camera moves through the scene you'll see the trick. For a static shot or a game skybox at scale, nobody notices.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | a neon cyberpunk alley at night | Describe the 360-degree environment. Up to 4096 characters. |
| 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. |
| gen_style_idopt | STRING | Optional Sloyd generation style ID. Blank uses the default. Valid IDs are listed under Generation Styles in the Sloyd API docs. | |
| output_max_sizeopt | INT | 20480–8192 | Caps the long edge of the IMAGE output to keep previews fast (Sloyd returns 4096px skyboxes, which are ~201MB as a tensor). The saved file is always full resolution. Set to 0 to pass the full-size image through. |
| timeout_secondsopt | INT | 90060–3600 | How long to wait for the job before giving up, in seconds. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| skybox | IMAGE | — |
| sloyd_job | SLOYD_JOB | — |
| skybox_path | STRING | — |
| job_id | STRING | — |