Nodes/SpicyAPI/Qwen Image 2.1 LoRA · Text to Image
ComfyUI Node

Qwen Image 2.1 LoRA · Text to Image

Your own LoRA, by URL, no download required

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Qwen Image 2.1 LoRA · Text to Image
  • loras
  • images
  • task id
◄prompt►
◄aspect_ratio1:1►
◄resolution1k►
◄output_formatjpeg►
◄seed0►

Every local LoRA workflow has the same three steps: train the thing (or download someone else's), drop the .safetensors in your models/loras folder, wire it into a loader. This node keeps the second half of that equation and throws away the local file entirely. You give it a direct download URL for a weights file and a strength, and the hosted model applies it.

Why bother? Because it means a LoRA you found on Hugging Face is three seconds away instead of a 2GB download and a folder-structure argument - and because you can run your LoRA on hardware you don't own. It also means the LoRA applies on someone else's GPU, so your 8GB card is not the constraint. The LoRA still has to be trained on Qwen Image, obviously. A Flux LoRA won't load, it'll just fail.

The inputs

  • prompt - up to 5,000 characters, natural language. If your LoRA has a trigger word, put it first, per the author's own tooltip. That's the single most common reason a LoRA "doesn't work" here.
  • loras (optional) - a SPICY_LORAS socket, fed from the SpicyAPI LoRA node. Up to three weights, each with a strength from 0 to 4. The strength slider lives on the SpicyAPI LoRA node, not on this one.
  • aspect_ratio - default 1:1, fifteen shapes.
  • resolution - 1k, 1.5k or 2k.
  • output_format - jpeg by default, png and webp available.
  • seed - fixed by default; randomize it when you want a new take rather than a re-queue of the same one.

Note there's no background and no prompt expansion on this node, unlike the plain 2.1 text-to-image node. Fewer moving parts, but also no free transparent-background shortcut.

Feeding the LoRA node

The SpicyAPI LoRA node takes a url and a scale (0 to 4) and outputs the loras type. Two things to get right:

  • It has to be a direct link to the weights file - an https:// URL that opens without a login. A sharing page, a Google Drive folder, a gated repo: no. A resolve-style link straight to the .safetensors: yes.
  • It's chainable. The node also accepts a loras input from another LoRA node, so you stack three in a row for three weights.

The pack's own lora template ships wired to an Apache-2.0 pixel-art LoRA for Z-Image Turbo, which is the fastest way to see the plumbing work before you swap in your own link.

Outputs

images and task id. Nothing exotic - Save Image takes images directly.

Install

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

Restart, add a key from spicyapi.ai/console/keys under Settings > SpicyAPI, restart once. No GPU, no weights. SPICY_API_KEY if it's a server.

The parts people trip over

Nothing reviews your LoRA. The weights file goes where you point it. That's convenient and it's also a reminder that "a URL to a random .safetensors" is a trust decision - same as any model download, except you never see the file.

Strength 1 is your starting point, not 4. The range goes to 4, which is where people go when a LoRA "isn't doing enough", and the result is usually fried. Try 0.7 and 1.2 and compare.

Cost is per image - about $0.03 here - and a bad LoRA means throwing away a batch of them. Set Max cost per run under Settings > SpicyAPI so a mistyped number can't clear the balance; the node quotes each run before it submits. And remember the pack-wide caveat: cancelling a run only stops you waiting, the task still finishes server-side and is charged if it succeeds.

CategorySpicyAPI/Image/Alibaba

Inputs (6)

NameTypeDefaultDescription
promptSTRINGDescribe the subject, composition, lighting, and any wording to render.
aspect_ratioCOMBO1:1Output aspect ratio.
resolutionCOMBO1kOutput resolution tier.
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 custom LoRA weights applied on top of the base model.

Outputs (2)

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