ComfyUI Node

Sloyd: Image Edit

Image Edit — 'make it snowy' without training a LoRA or building a graph

By Sloydai·Created 22 days ago·Updated 21 days ago· 1
Sloyd: Image Edit
  • image
  • image
  • sloyd_job
  • image_path
  • job_id
◄promptmake it snowy►
◄seed0►
◄timeout_seconds900►

There's a whole genre of image edit that isn't worth building a pipeline for. "Make it snowy." "Turn this into a watercolour." "Put a hat on it." Locally you'd be juggling a ControlNet, an instruct model, maybe a mask - for one picture. Sloyd: Image Edit is two widgets and a Run button: source image, instruction prompt, done.

What it actually does (and why it's two API calls)

Here's the bit worth knowing, because it explains the latency. Sloyd's image-edit endpoint doesn't take an image - it takes the job id of an image you already uploaded. So the node uploads your picture to Sloyd's image-upload endpoint first (that step is free, no credits), gets an image job id back, then POSTs image-edit with that id and your prompt. Two round-trips, one node, and the node hides the first one from you entirely.

Then it polls until the job lands and downloads the result to ComfyUI/output/sloyd/. The original file on your disk is never modified.

One behaviour to internalise: only the first frame of a batch is used. If you build a 4-image batch upstream expecting four edits, you'll edit the first image four times and pay for it. Split the batch into separate runs.

Inputs

  • image - the source. This is a general edit, not an inpaint: you're not painting a mask, you're describing a change. Images with an obvious subject and a clear instruction work best.
  • prompt - up to 4096 characters, defaulting to "make it snowy". Verb-first instructions ("add fog", "replace the sky with a sunset", "convert to oil painting") behave far more predictably than vague style adjectives, because the model is looking for the operation.
  • seed - not a reproducibility seed. Sloyd has no seed parameter, so this only busts ComfyUI's cache. Left alone, re-queuing an unchanged graph replays from cache for free; change it and you pay for a new edit. Note the default control_after_generate is fixed for exactly that reason - nobody wants an API node that re-bills itself every queue.
  • timeout_seconds - 900 by default, 60–3600. Polling is interruptible, so Cancel works mid-job.

Outputs

image is a plain ComfyUI IMAGE, so it plugs into Save Image, Preview Image, an upscaler, or back into the 3D side of the pack. sloyd_job is the typed handle - the same SLOYD_JOB type the 3D and skybox nodes speak - for chaining into another Sloyd node. image_path gives you the saved file relative to ComfyUI/output (something like sloyd/<job_id>.png), which is what an external script or a batch process wants. job_id is the raw Sloyd id, for logs or support.

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 it - requests is the only dependency, there are no model files, and nothing runs on your GPU. Then Settings → Sloyd and paste the Client ID and Client Secret from api-dashboard.sloyd.ai. Sloyd authenticates with both values, billing has to be set up first (prepaid, $12 minimum, 75 credits per dollar), and the secret is shown exactly once - copy it immediately. If this ComfyUI is reachable beyond localhost, use SLOYD_CLIENT_ID / SLOYD_CLIENT_SECRET instead; the settings route inherits ComfyUI's default of no access control, which means anyone who can reach the API can write credentials through it.

The pack is deliberate about this: credentials never become widgets, because ComfyUI writes every widget value into the saved workflow JSON and into the metadata of the files you generate. A secret in a widget leaks the first time you share a workflow or post a screenshot.

When it goes sideways

Uploads are normalised before they leave: anything over a 2048px long edge is downscaled, and a PNG still over 20MB is re-encoded as JPEG. Your 8K source isn't the 8K that gets edited. A 429 means five jobs are already running on your key - the node absorbs it with exponential backoff instead of failing, so batches serialise rather than break. And if you get a 401, it's almost always a client id and secret from two different keys; re-issue the pair from the dashboard.

CategorySloyd/2D

Inputs (4)

NameTypeDefaultDescription
imageIMAGEImage to edit. Only the first frame of a batch is used.
promptSTRINGmake it snowyHow to edit the image. Up to 4096 characters.
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.
timeout_secondsoptINT90060–3600How long to wait for the job before giving up, in seconds.

Outputs (4)

NameTypeDescription
imageIMAGE—
sloyd_jobSLOYD_JOB—
image_pathSTRING—
job_idSTRING—