sd1 / comfy / createVariant
A variant node with a denoise knob and a required image
- model
- image
- vae_model
- loras
- control_nets
- api_config
- images
- errors
- workflow_id
- raw_json
sd1 / comfy / createVariant is the img2img half of the SD1.5 story in the Civitai pack. Same hosted pipeline as the createImage node, same Buzz billing, same native IMAGE output - but instead of generating from noise, it takes an image in and pushes it toward your prompt. The whole shape of the node is that one difference: image is a required input alongside prompt and model, and there's a denoise_strength slider defaulting to 0.75 that controls how much of the original survives.
If you've used ComfyUI's own LatentImage load-and-VAE-encode dance, this is that, minus the plumbing. Feed a LoadImage into the image socket, describe the variant you want, and the orchestration job does the encode/denoise/decode on their side. The value proposition is the same as the createImage node's: no local GPU, a cloud SD1.5 that "just runs," and the option to browse Civitai checkpoints via the Civitai Model Selector instead of managing local files. For a quick "what would this look like in a different style" pass on a machine with no card, it does the job.
The inputs that matter
Required: prompt, model (CIVITAI_AIR socket - wire a Model Selector), and image (IMAGE - wire a LoadImage or any image output).
- denoise_strength (0.75) - the star of the show. 0.75 means keep the composition, restyle the rendering. Low (0.3–0.5) = subtle variation of the input; high (0.9+) = the input is basically a color sketch for a fresh generation. This is the one input that changes the node's whole behavior, so it's the one to learn first.
- negative_prompt - as essential as on the createImage node.
- steps (30) / cfg_scale (7) - the SD1.5 defaults, unchanged from createImage.
- clip_skip (2) - same SD1.5 community default.
- width / height - 512×512; SD1.5's native range. Note that your input image will be resized to whatever you set here.
- vae_model / loras / control_nets - CIVITAI sockets from the Selector nodes; ControlNet on an img2img pass is a legitimately useful hosted trick.
- sampler / scheduler, quantity, seed, output_format - standard.
Outputs: images (IMAGE), errors, workflow_id, raw_json.
Install and auth
The pack-wide setup, once: ComfyUI Manager → Civitai Comfy Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Then authenticate (Civitai account with Buzz): export CIVITAI_API_TOKEN=..., a Civitai Auth node, or the sidebar sign-in.
Where people get burned
Two things trip people up. First, the missing-image case: unlike createImage, this node has a required image socket, and ComfyUI will refuse to run the graph until you wire one - that's a feature, not a bug. Second, forgetting that width/height overrides your input's aspect ratio. Feed a 768×512 image into a 512×512 node and it gets squashed before it ever reaches the model; set the dimensions to match your input, or use the SDXL variant node which has more headroom. And honestly - you're paying per call for img2img on a model you can run locally. Great for no-GPU machines, a tax otherwise.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | CIVITAI_AIR | — | |
| image | IMAGE | Either A URL, A DataURL or a Base64 string | |
| output_formatopt | COMBO | 4 options: , jpeg, png, webP | |
| image_metadataopt | STRING | External metadata that will be stored with the image | |
| negative_promptopt | STRING | — | |
| sampleropt | COMBO | 32 options: , euler, euler_ancestral, euler_cfg_pp, euler_ancestral_cfg_pp, heun, +26 | |
| scheduleropt | COMBO | 8 options: , normal, karras, exponential, sgm_uniform, simple, +2 | |
| stepsopt | INT | 301–150 | — |
| cfg_scaleopt | FLOAT | 7.000–30 | — |
| seedopt | INT | 00–4294967295 | — |
| quantityopt | INT | 11–12 | — |
| vae_modelopt | CIVITAI_AIR | — | |
| lorasopt | CIVITAI_LORAS | — | |
| clip_skipopt | INT | 20–2147483647 | — |
| control_netsopt | CIVITAI_CONTROLNETS | — | |
| widthopt | INT | 51264–1024 | — |
| heightopt | INT | 51264–1024 | — |
| denoise_strengthopt | FLOAT | 0.750–1 | — |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| errors | STRING | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |