Qwen - Image to Image
Qwen - Image to Image Has a Strength Slider, and That Changes Everything
- image_url
- image
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
The difference from the Qwen3 nodes, in one word: strength
Every generation node in this pack looks superficially alike - prompt, a couple of dropdowns, an IMAGE out. This one isn't the same tool as Qwen3 Pro Image to Image down the menu, and the tell is strength.
strength is denoising strength, and its tooltip spells out what it does: 1.0 fully remakes the image, 0.0 preserves the original. That's a knob for controlled variation, not instruction editing. Set it to 0.35 and you get the same composition with a different material, light or palette. Set it to 0.9 and you've basically asked for a new picture that knows roughly what it's looking at. The Qwen3 Pro node doesn't give you this at all - it gives you ratios and a resolution tier instead. Different generations of the same family, exported as different nodes, because the pack builds one node per documented endpoint rather than one node with a model dropdown.
What else is on the panel
- prompt (required, up to 5000 characters) and image_url (required) - the reference arrives on a normal
IMAGEsocket. - strength - default 0.8. This is the field you'll be tweaking most; start there, not with the prompt.
- num_inference_steps - default 30, and this endpoint allows up to 250, which is a lot more headroom than the edit endpoint's 49.
- guidance_scale - default 2.5, the low-CFG sweet spot these Qwen endpoints like.
- acceleration -
none,regular,high. Per the docs reg, "high" is pitched at images without text. - negative_prompt, seed, output_format (png/jpeg), enable_safety_checker (on by default - the tooltip notes it's always on in Playground and only the API can turn it off), nsfw_checker (off by default), timeout_seconds, callback_url.
Outputs are the seven you get everywhere in this pack: image, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left.
Why you'd pick this over a local img2img
Honestly: usually you wouldn't. If you have a card, a local img2img pass with a checkpoint you understand is free, instant, and exactly as reproducible as your seed. The reason this node earns a slot is the one the whole API-node category exists for - you want a specific modern model's aesthetics and prompt comprehension without owning the hardware, or you want a quick second opinion that isn't your own checkpoint. Reseller pricing makes that cheap enough to be worth trying: the community habit is throwing five or ten dollars at a service like KIE and generating far more than you'd expect from that number at the low-resolution end.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Dependencies are requests, Pillow, numpy, PyYAML - nothing that needs a compiler. Restart ComfyUI and paste the key once under Settings → KIE.ai Nodes Next → Connection; the pack verifies it before saving, shows a masked fingerprint, and stores it in ComfyUI's user directory rather than your workflow. Headless installs can set KIE_API_KEY, which outranks the saved key.
The two failure modes to expect
Upload size: the endpoint documents a 10 MB per-file limit on the reference, and a rejection there happens before you've spent anything, which is the good kind of failure. Timeouts: timeout_seconds defaults to 1200 seconds and a long queue can genuinely burn all of it - if you're submitting during a busy window, raise it instead of hitting the button three times, because each submit is its own task and its own bill.
One more: because KIE retires models from time to time, a workflow you saved six months ago can start failing at the request rather than at the UI. Check the node's error text before rewriting your graph; refreshing the catalog usually tells you whether the endpoint still exists.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The prompt to generate the image with (Max length: 5000 characters) | |
| image_url | IMAGE | — | |
| strengthopt | FLOAT | 0.800–1 | Denoising strength. 1.0 = fully remake; 0.0 = preserve original (Min: 0, Max: 1, Step: 0.01) (step: 0.01) |
| output_formatopt | COMBO | png | The format of the generated image |
| accelerationopt | COMBO | none | Acceleration level for image generation. Options: 'none', 'regular', 'high'. Higher acceleration increases speed. 'regular' balances speed and quality. 'high' is recommended for images without text |
| negative_promptopt | STRING | blurry, ugly | The negative prompt for the generation (Max length: 500 characters) |
| num_inference_stepsopt | FLOAT | 30.002–250 | The number of inference steps to perform (Min: 2, Max: 250, Step: 1) (step: 1) |
| guidance_scaleopt | FLOAT | 2.500–20 | The CFG (Classifier Free Guidance) scale is a measure of how close you want the model to stick to your prompt when looking for a related image to show you (Min: 0, Max: 20, Step: 0.1) (step: 0.1) |
| enable_safety_checkeropt | BOOLEAN | true | The safety checker is always enabled in Playground. It can only be disabled by setting false through the API. (Boolean value (true/false)) |
| seedopt | INT | 0-2147483648–2147483647 | The same seed and the same prompt given to the same version of the model will output the same image every time |
| nsfw_checkeropt | BOOLEAN | false | Defaults to false. You can set it to false based on your needs. If set to false, our content filtering will be disabled, and all results will be returned directly by the model itself. Note: There is no guarantee that everything can be filtered out; if you are not satisfied with the results, you will need to make your own arrangements. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |