Nodes/comfyui_nai_api/NovelAI Apply Vibe
ComfyUI Node

NovelAI Apply Vibe

Style transfer without touching img2img

By Creeper-MZ·Created 2 years ago·Updated 2 years ago· 0
NovelAI Apply Vibe
  • input_image
  • input_image_2
  • input_image_3
  • input_image_4
  • pre_vibe_pipe
  • VIBE_PIPE
information_extracted1.00
strength0.70
image2_information_extracted1.00
image2_strength0.70
image3_information_extracted1.00
image3_strength0.70
image4_information_extracted1.00
image4_strength0.70

This is NovelAI's Vibe Transfer feature, wired into ComfyUI. If you've used the NovelAI website, you've probably seen this: upload a reference image, and the generation borrows its feel - color palette, composition tendencies, general vibe - without literally being an img2img pass on that image. It doesn't trace edges or lock in a pose the way ControlNet does. It's closer to a style nudge than a structural constraint, and that's exactly the gap it fills: sometimes you don't want img2img's rigidity, you just want the output to lean toward a reference.

How it works

Under the hood, NAI extracts an internal image encoding from your reference and blends it into the conditioning at generation time - not pixels, an encoding. That's why it can coexist with a text prompt and even with actual img2img on the same generation: they're different mechanisms stacked on top of each other. This node's job is to build that encoding (a VIBE_PIPE) from up to four reference images and hand it to the main NovelAI node, which is the one that actually generates.

The inputs and outputs that matter

Every reference image gets the same two-knob treatment, which is literally the pair NAI's own web UI exposes for Vibe Transfer:

  • information_extracted (0–1, default 1) - how much of the reference image's encoding gets pulled out in the first place. Lower this and you're working with a vaguer, more compressed sense of the image rather than its full detail.
  • strength (0–1, default 0.7) - how hard that extracted information pushes on the final generation. This is the one you'll actually tune session to session; crank it up for an obvious style match, back it off if it's fighting your prompt.

That pair repeats for image2, image3, and image4 - this node accepts up to four reference images at once (input_image required, input_image_2/3/4 optional), each with its own extraction and strength values, so you can blend multiple references with different weights rather than being stuck with one. There's also an optional pre_vibe_pipe input, which lets you chain multiple Apply Vibe nodes together to build up a combined vibe from more references than one node's four slots allow.

The output is a single VIBE_PIPE - it does nothing on its own. Wire it into the vibe_pipe input on a NovelAI Image Generate node; that's the only place it goes.

Installing it

Same pack as every other NovelAI node here. ComfyUI Manager: search comfyui_nai_api, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Creeper-MZ/comfyui_nai_api

Restart, then set your NovelAI API key in the pack's config.py - this node calls out to NAI's API the same as the generate node does, so the key requirement applies here too even though this node doesn't produce a final image by itself.

Common issues & troubleshooting

"It's not doing anything" is the most common complaint with Vibe Transfer generally, on NAI's own platform too, not just this wrapper - and it's almost always the strength slider. At low strength with a strong prompt, the vibe barely registers. Push it up if you want a visible effect, and expect to fight it back down if it starts overriding your prompt's actual content.

Confusing it with img2img - if you wanted the output to match a reference's composition or pose, you want the input_image input on the NovelAI node itself, not this one. Vibe Transfer is a style lean, not a structural lock; don't expect pose or layout fidelity from it.

Auth failures trace back to the same config.py key as every node in this pack - if this node errors before it even reaches the main generate node, check the key first.

Stacking too many strong vibes - four references at high strength each can produce a muddy, over-averaged result rather than a clean blend. Start with one reference at a moderate strength, confirm it's doing what you expect, then add more.

CategoryNovelAI

Inputs (13)

NameTypeDefaultDescription
input_imageIMAGE
information_extractedFLOAT1.000–1
strengthFLOAT0.700–1
image2_information_extractedFLOAT1.000–1
image2_strengthFLOAT0.700–1
image3_information_extractedFLOAT1.000–1
image3_strengthFLOAT0.700–1
image4_information_extractedFLOAT1.000–1
image4_strengthFLOAT0.700–1
input_image_2optIMAGE
input_image_3optIMAGE
input_image_4optIMAGE
pre_vibe_pipeoptVIBE_PIPE

Outputs (1)

NameTypeDescription
VIBE_PIPEVIBE_PIPE