Img2ImgOption βοΈπ π π
Img2img against NovelAI, where your source image becomes a starting point
- image
- NAID_OPTION
Img2ImgOptionNAID is how you turn GenerateNAID from a txt2img box into an img2img box. Connect it to the option input on GenerateNAID, feed it a source IMAGE, and the Generate node changes its API action from generate to img2img - the source image gets sent up to NovelAI's servers and your prompt reimagines it instead of drawing from noise.
Three inputs, and honestly only one of them is where you'll spend your time:
- image - the source. It gets resized to whatever width/height you set on
GenerateNAID, so don't fret about exact source dimensions; match the aspect ratio you want the result to have. - strength - 0.7 default, 0.01 to 0.99. This is the classic img2img denoise dial: low strength keeps the source mostly intact, high strength lets the prompt take over. 0.7 is a reasonable "keep composition, change the details" starting point; go lower for color/style tweaks, higher for a reimagining.
- noise - 0 default, up to 0.99. Added noise on top of the source before generation. Leave it at zero unless you're deliberately trying to break the input up - cranking it is how you get "same image, but with detail texture applied" territory.
That's the entire interface: this node has no option input, so it's a terminal node in the option chain - the settings dict it builds (img2img: (image, strength, noise)) is the only thing Generate sees from that branch. You can still chain a ModelOptionNAID or VibeTransferOptionNAID in front of it if you want, because Generate reads model and vibe keys out of the same merged dict.
Mechanically the pack base64-encodes your resized source and stuffs it into the request parameters alongside strength and noise; NovelAI's API does the img2img math on their GPU. Your local GPU never sees the diffusion pass - it's all paid in Anlas. Because it's a full API round-trip and the source uploads with the request, this is a "few, deliberate" node rather than a "spam generations" one; every run costs like a fresh generation, not a local inpainting pass.
Setup is the pack standard: Manager β "ComfyUI_NAIDGenerator", or clone into custom_nodes/ and restart. Have the NAI_ACCESS_TOKEN in a .env in the ComfyUI root or you'll hit a 401 before any of this matters. The output is the usual IMAGE tensor, autosaved to output/NAI_autosave/ with original metadata intact - so if you're chaining img2img into another img2img and want clean intermediates, you know where to find them.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| strength | FLOAT | 0.700.01β0.99 | β |
| noise | FLOAT | 0.000β0.99 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| NAID_OPTION | NAID_OPTION | β |