Sloyd: Edit Skybox
Edit Skybox — add the moon to a skybox you already generated
- sloyd_job
- skybox
- sloyd_job
- skybox_path
- job_id
Generating a skybox is a gamble on the whole scene. You'll get a great forest at dusk, and one thing wrong - no moon, wrong weather, a city where you wanted cliffs. Sloyd: Edit Skybox edits the existing 360° environment instead of re-rolling it, so the parts you liked survive. It's the skybox equivalent of inpainting, and it's the reason the skybox nodes emit a sloyd_job handle at all.
How it works
It calls Sloyd's skybox-edit endpoint with a source job id and your prompt. The source comes from either sloyd_job - wired from Text to Skybox or Skybox from Image - or a job_id string you paste from an earlier session. If both are present the wire wins; if you give it nothing, it stops immediately with a message telling you to connect one or paste an id.
Then it polls, and downloads the edited panorama from the job's flatBoxData.panoramaUrl into ComfyUI/output/sloyd/. Same as the other skybox nodes: full-resolution file on disk, capped tensor on the wire. One round-trip, one charge.
Inputs
- prompt - up to 4096 characters, describing the change, not the scene. "Add a full moon, low on the horizon" is the author's own default and it's the right shape of prompt: it names one edit and where.
- sloyd_job - the source skybox, from an upstream Sloyd skybox node. This is the handle that carries both the job id and the credentials that made it, which keeps the edit on the same key without you juggling identifiers.
- job_id - the manual path: paste an id of a skybox you own. Ignored when
sloyd_jobis connected. - gen_style_id - optional Sloyd generation style, blank for default.
- output_max_size - caps the long edge of the returned IMAGE, 2048 by default. Sloyd returns 4096px skyboxes, which are ~201MB as float32 tensors; that's what makes previews slow and, with two viewers attached, occasionally silent. The saved file is untouched by this setting. Set 0 to pass full size.
- seed - cache busting, not reproducibility. Sloyd has no seed parameter. Change it to force a new edit (and a new charge); leave it and ComfyUI replays the cached result for free while you tweak something downstream.
- timeout_seconds - 900 default.
Outputs
skybox is an ordinary IMAGE and goes into Save Image, an upscaler, or a 360 preview node. skybox_path is the file relative to ComfyUI/output - that's what your engine or Blender pipeline wants. job_id is the raw id, and sloyd_job chains onward, which means you can run several edits in a row, each one building on the last result.
Sloyd: Text to Skybox ──sloyd_job──> Sloyd: Edit Skybox ──skybox──> Preview 360 Panorama
Watch the wiring here: the node takes the source job, and returns a new job. If you accidentally loop the output back, you'll edit an edit and pay twice for something you can't see the difference in.
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
That's requests and nothing else. No weights, no GPU, no compile step. Credentials are two values - Client ID and Client Secret from api-dashboard.sloyd.ai - set in Settings → Sloyd, or via SLOYD_CLIENT_ID / SLOYD_CLIENT_SECRET on a box that isn't local-only. Credits are prepaid (min $12), charged on job start, refunded if the job fails, and five concurrent jobs is the per-key ceiling; beyond that the node backs off and retries rather than erroring out.
Honest caveats
An edit is not an inpaint with a mask. You can't point at a region and say "just this bit" - the prompt is applied to the whole environment, so a heavy edit can shift things you were happy with. Iterating one small change at a time is both cheaper and more predictable than one big rewrite, and ComfyUI's caching means the unedited upstream skybox replays free while you try variations of the edit.
Also, there's no meaningful community bug list for this node yet - the pack has essentially zero Reddit footprint as of writing. What's above comes from reading the shipped code: how credentials resolve, what the upload and download paths do, and what the error strings actually say.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | add a full moon | How to edit the existing skybox. 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. |
| sloyd_jobopt | SLOYD_JOB | Source skybox from an upstream Sloyd skybox node. | |
| job_idopt | STRING | Alternatively, paste a Sloyd skybox job id you own. Ignored if sloyd_job is connected. | |
| 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 | — |