NAI Reference Resources
Vibe and Precise Reference cards, minus the website
- references
NovelAI's Vibe and Precise Reference features are how you steer the model with images instead of just words - a Vibe for general style and mood, Precise Reference for pinning a specific character or art style. NAI Reference Resources brings both into ComfyUI as one multi-card interface, so you can drop in reference images the same way you would on the website, and have them ride along with the rest of your workflow. If you've been trying to keep a consistent character across generations, this is the node that makes that possible without leaving ComfyUI.
How it works
The node's single input, config_json, holds the whole state - the mode, which model the encodings target, and the lists of cards. The default shape is {"mode":"vibe","encode_model":"V4.5 Full","vibe_items":[],"precise_items":[]}. You don't type that by hand; the pack's UI renders it as cards you can add to and edit. Its one output, references, is a typed NAI_REFERENCES value that plugs into NAI Sampler's optional references input.
Two important structural rules:
- Vibe and Precise Reference are mutually exclusive. One interface manages both, but it's either/or - you don't mix modes in one run.
- Precise Reference cards can target character, style, or both (
character&styleis the default), with per-card strength and fidelity values. That's the difference between "this style" and "this character, in a new style."
Vibe cards come from images or from official .naiv4vibe files you drop in - that's what the pack's msgpack dependency is for, reading NovelAI's official Vibe file format. When you drop a Vibe, the pack checks its local cache for a matching encoding first.
The Anlas honesty rule
This is the part that separates this pack from a sloppy wrapper: a missing encoding is never purchased silently. Encoding a Vibe costs Anlas on your NovelAI account, so it requires an explicit Encode and save action plus a confirmation. The README is blunt about it - "A missing encoding is never purchased silently" - and it's the single most important thing to know before you start building reference-heavy workflows. Vibe encoding, Precise Reference, and more than four Vibes are all sent only once (never auto-retried) per the pack's retry policy, precisely because they're paid operations.
The V5 trap
If you're on NovelAI Diffusion V5, connected reference resources are silently ignored. The README calls this out as matching the intended V5 workflow, but "silently" means you'll get zero warning when your style cards stop mattering. V4.5 uses the configured Vibe or Precise Reference cards; V5 doesn't. If your references suddenly have no effect, check which model your NAI Model Loader is set to before you suspect the cards.
Install
Standard pack install: ComfyUI Manager (search 4A NovelAI) or
cd ComfyUI/custom_nodes
git clone https://github.com/tsukino4a/ComfyUI-4A-NovelAI.git ComfyUI-4A-NovelAI
cd ComfyUI-4A-NovelAI
python install.py
Restart ComfyUI. msgpack is required for reading official Vibe files; everything else is supplied by ComfyUI. No model files to download. And remember: references ride on paid generations, so it's worth testing your cards on a cheap small generation before you commit Anlas to a big batch.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| config_json | STRING | {"mode":"vibe","encode_model":"V4.5 Full","vibe_items":[],"precise_items":[]} | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| references | NAI_REFERENCES | — |