NAI 图片 Vibe 编码器
Steal the 'vibe' of a reference image and bake it into the pipe
- nai_pipe
- image
- mask
- nai_pipe
- 编码摘要
NovelAI's "Vibe Transfer" is their style-reference feature: instead of describing a style in words, you give the API a reference image and it extracts the essence of that image - palette, lighting, composition, mood - as a reusable embedding called a Vibe. NAI 图片 Vibe 编码器 (Image Vibe Encoder) is the node that makes that happen inside ComfyUI. It's the closest thing in this pack to a LoRA loader: feed it an image, it produces a Vibe, and you can stack several of them up the pipe like stacked LoRAs to blend multiple style references.
The flow: NAI 模型加载器 → NAI 图片 Vibe 编码器 → 采样器. The encoder takes the pipe, an IMAGE, and a couple of knobs, then hands back an updated NAI_PIPE with the Vibe appended. One pipe can carry up to 16 Vibes.
The inputs
- information_extracted - default 0.7. How much of the reference image's information to pull into the Vibe. Higher = stronger stylistic imprint; this is the main dial.
- strength - default 0.6, range −1 to 1. How hard the Vibe is applied at sampling time. Negative strengths are allowed and do interesting things, but start positive.
- use_cache - default on. Encoded Vibes are cached keyed on image + model + information_extracted + mask. This is the money saver: a cache hit costs 0 Anlas.
- paid_encode - the one that trips everyone up. Encoding is a paid API call (usually ~2 Anlas), so the pack won't just fire one when your workflow runs. You click an "编码并加载 Vibe" button on the node to authorize the charge. If you run the graph without doing that and there's no cache, it errors with a message telling you to hit the button.
- vibe_name - default auto (image hash); set it to give the Vibe a readable name, which matters if you also save it as a file.
- save_vibe_file - default on; writes the encoded Vibe to a
.naiv4vibefile inComfyUI/input/novelai_vibes/so you can reload it later without re-encoding. - force_reencode - bypass the cache and re-encode anyway (and re-charge).
- mask (optional) - a
MASKinput so you can limit what the Vibe extracts from the image.
The model catch, read this before you get excited
V5 does not support Vibe transfer yet. NovelAI hasn't opened the feature to V5, and the node checks before sending any paid request: on a V5 pipe it raises a clear error instead of quietly charging you for something the model will ignore. Vibes work on V4, V4.5, Anime V3 and Furry V3. Also, Vibes and precise reference can't both be active at once, and the pipe enforces that with an error too. If your Vibe node suddenly refuses to run, check which model the loader is on.
Outputs
The updated nai_pipe (wire it onward to a sampler or a Vibe file saver) and an 编码摘要 string that tells you whether you hit cache (0 Anlas) or actually encoded, and how many Vibes are now in the pipe.
Install
Search ComfyUI-NovelAI-GENYTOOLS in ComfyUI Manager or git clone https://github.com/XTOGENY/ComfyUI-NovelAI-GENYTOOLS.git into custom_nodes, install requirements.txt, set your Persistent API Token. It's a very new pack with little community write-up yet, so the README's Vibe workflow examples are your best guide - load one and confirm the model and cache before spending on paid encodes.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| nai_pipe | NAI_PIPE | — | |
| image | IMAGE | — | |
| information_extracted | FLOAT | 0.700–1 | — |
| strength | FLOAT | 0.60-1–1 | — |
| use_cache | BOOLEAN | true | — |
| vibe_name | STRING | 自动(图片哈希) | — |
| save_vibe_file | BOOLEAN | true | — |
| paid_encode | BOOLEAN | false | — |
| force_reencode | BOOLEAN | false | — |
| maskopt | MASK | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| nai_pipe | NAI_PIPE | — |
| 编码摘要 | STRING | — |