Nodes/SpicyAPI/Z-Image Turbo LoRA · Image Editing
ComfyUI Node

Z-Image Turbo LoRA · Image Editing

Restyle a photo in about a second's worth of compute

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Z-Image Turbo LoRA · Image Editing
  • image_url
  • loras
  • images
  • task id
◄prompt►
◄resolution1k►
◄strength0.80►
◄output_formatjpeg►
◄seed0►

Z-Image Turbo is an 8-step distilled model - the whole point of it is that a photoreal frame falls out of eight passes instead of thirty-five, which is why it's the variant that stuck and the one every local Z-Image workflow starts from. This node runs Turbo as an image-to-image endpoint with up to three of your own LoRAs attached, at $0.012 an image. Cheap enough that restyling a batch of fifty photos is sixty cents.

What it's for

Three real jobs. One: apply a style LoRA to photos you already have - the hosted equivalent of running a local img2img pass without a local pipeline. Two: test a LoRA you trained, on real images rather than prompts, which is the test most people skip. Three: fast, consistent restyling at scale, because per-image pricing and a distilled model mean a run of a hundred costs a dollar and change.

Turbo's honest limitation, straight from every distillation writeup: fewer steps means less time to refine, so it's a touch softer and less prompt-adherent than Z-Image Base on complicated compositions. For restyling at moderate strength, nobody will notice. For intricate multi-element prompts, Base or a different model is the better tool.

The inputs

  • prompt - describe the image you want back, not the change you want made. "A person in a long coat, station platform, sodium lighting" - not "change the coat to red". "Make it a painting" is the kind of instruction this node ignores; it isn't an instruction editor.
  • image_url - the source image; the output keeps its aspect ratio.
  • resolution - 1k (1024) or 1.5k (1536) on the long side, default 1k. Stay in that band; Z-Image's native range is about 1–2MP.
  • strength - 0 to 1, default 0.8. This is the knob you'll actually tune: 0.5–0.6 keeps the source recognisable, 0.9 lets the prompt take over. Start at the default, then walk it down if the photo is drifting away from you.
  • output_format - jpeg (default), png or webp.
  • seed - fix it while you tune strength, or you'll be comparing noise.
  • Optional loras - a SPICY_LORAS socket, fed by a SpicyAPI LoRA node holding a direct .safetensors URL and a strength. Chain several LoRA nodes to stack them; up to three are accepted. The URL must open without a login.

Outputs: images (IMAGE - save it, or feed it into an upscale or a mask step) and task id (STRING, the SpicyAPI task id for the console or a support email).

Install

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi

Manager → search SpicyAPI also works. Restart ComfyUI, then Settings > SpicyAPI → paste a key from spicyapi.ai/console/keys, and restart once more so the node list comes from your account. Remote: SPICY_API_KEY. No weights, no dependencies - the pack ships an empty dependency list and needs only ComfyUI's existing stack, Python 3.10+ and the V3 node API (tested with 0.39).

Housekeeping

Set Max cost per run. It sounds silly at a penny an image, but the ceiling is what stops a 500-image sweep from being a typo you find in your balance. Seeds default to fixed, so re-queueing an unchanged graph reuses the cached result; randomize gives you a new take and a new charge. If something fails, the message is usually actionable: No SpicyAPI key is set, 40310 (verify your email), 40004 (no deployment serves that combination - change the option named), or a LoRA that wouldn't load because the link needs a login.

CategorySpicyAPI/Image/Alibaba

Inputs (7)

NameTypeDefaultDescription
promptSTRINGDescribe the image you want back, not just the change.
image_urlIMAGESource image. The result keeps its aspect ratio.
resolutionCOMBO1kLength of the output's long side: 1k is 1024 pixels, 1.5k is 1536. The source's aspect ratio is kept.
strengthFLOAT0.800–1How far to move away from the source, from 0 to 1.
output_formatCOMBOjpegContainer of the returned image.
seedINT00–2147483647Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed.
lorasoptSPICY_LORASUp to three LoRA weight files, each with its own strength.

Outputs (2)

NameTypeDescription
imagesIMAGE—
task idSTRINGThe SpicyAPI task id, for the console logs or support.