Nodes/Sloyd AI - 3D model generator/Sloyd: Skybox from Image
ComfyUI Node

Sloyd: Skybox from Image

Skybox from Image — wrap a 360° world around a single photo

By Sloydai·Created 22 days ago·Updated 21 days ago· 1
Sloyd: Skybox from Image
  • image
  • skybox
  • sloyd_job
  • skybox_path
  • job_id
◄prompt►
◄seed0►
◄gen_style_id►
◄output_max_size2048►
◄timeout_seconds900►

You have one good landscape render. You want to stand inside it. Sloyd: Skybox from Image takes that flat image and expands it into a full equirectangular 360° panorama - the picture you already made, plus plausible content for everything that was off-frame. It's the "outpainting, but all the way around" node, and it's the one that turns a 2D generation into a usable environment.

What it does

Two API calls, one node. First your image is uploaded via Sloyd's image-upload endpoint - that step is free, no credits - which returns an image job id. Then the node POSTs skybox-from-image with that id, your optional prompt, and the optional gen_style_id, and polls until the job finishes. The result is downloaded from the job's flatBoxData.panoramaUrl and written to ComfyUI/output/sloyd/ at full resolution, while a capped copy is handed to the graph as a ComfyUI IMAGE.

Only the first frame of an IMAGE batch is used, so if you batch three landscape variants you'll get three skyboxes from the first one. Split the batch and run it as separate prompts if you want the others.

Inputs

  • image - the source. Wide shots with a clear horizon work noticeably better than close-ups or heavy vignettes, because the model has to decide what's beside and behind the camera from very little information.
  • prompt - optional, and blank by default. Blank lets Sloyd decide how to expand it, which is often the right call: your source image already carries the style. Fill it in when you want the surroundings to tell a story - "surrounded by dense pine forest, distant mountains".
  • gen_style_id - a Sloyd generation style ID from the API docs, blank for default. Useful for keeping a set of environments visually coherent.
  • output_max_size - caps the long edge of the IMAGE tensor, 2048 by default. This matters: a 4096px float32 panorama is around 201MB as a tensor, and two preview nodes on one of those get flaky. The file on disk is always the full-resolution original, so nothing is lost. 0 disables the cap.
  • seed - cache control only. Sloyd has no seed parameter, so this won't reproduce a result; it only forces ComfyUI to re-run the node and spend credits. Left at 0, re-queueing an unchanged graph is free.
  • timeout_seconds - 900 default, 60–3600, polled every two seconds with a progress bar. Cancel works mid-poll.

Outputs

skybox (IMAGE) flows into Save Image, an upscaler, or a 360 viewer. skybox_path is the saved panorama relative to ComfyUI/output - that's your plug-in point for Blender/engine pipelines. job_id is the raw Sloyd id, and sloyd_job is the handle Sloyd: Edit Skybox takes, so "expand this photo, then add a moon" is two wired nodes.

Load Image ──image──> Sloyd: Skybox from Image ──skybox──> Preview 360 Panorama

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

Restart ComfyUI. requests is the only dependency - a genuinely nice change from the CUDA-wheel wrestling that usually accompanies 3D tooling in ComfyUI. Then Settings → Sloyd → paste a Client ID and Client Secret from api-dashboard.sloyd.ai (billing on the dashboard first; minimum $12, prepaid, charged when a job starts and refunded on failure). Headless or Docker? Set SLOYD_CLIENT_ID / SLOYD_CLIENT_SECRET and skip the settings panel entirely.

What to expect when it misbehaves

Uploads are compressed for transport: images over a 2048px long edge get downscaled, and a PNG over 20MB is re-encoded as JPEG. So a very noisy 4K source loses some detail before Sloyd ever sees it. Five concurrent jobs per key is the ceiling - extra runs get a 429 that the node retries through with backoff rather than failing. And it's worth saying plainly: this is a backdrop, not geometry. Anything that needs parallax as the camera travels will expose the trick.

CategorySloyd/Environments

Inputs (6)

NameTypeDefaultDescription
imageIMAGESource image to expand into a 360 environment. First frame only.
promptSTRINGOptional. How to expand the source into a full 360-degree environment. Blank lets Sloyd decide.
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.
gen_style_idoptSTRINGOptional Sloyd generation style ID. Blank uses the default. Valid IDs are listed under Generation Styles in the Sloyd API docs.
output_max_sizeoptINT20480–8192Caps 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_secondsoptINT90060–3600How long to wait for the job before giving up, in seconds.

Outputs (4)

NameTypeDescription
skyboxIMAGE—
sloyd_jobSLOYD_JOB—
skybox_pathSTRING—
job_idSTRING—