Nodes/4A NovelAI/NAI Reference Resources
ComfyUI Node

NAI Reference Resources

Vibe and Precise Reference cards, minus the website

By tsukino4a·Created 20 days ago·Updated 7 days ago· 5
NAI Reference Resources
    • references
    config_json{"mode":"vibe","encode_model":"V4.5 Full","vibe_items":[],"precise_items":[]}

    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&style is 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.

    Category4A NovelAI

    Inputs (1)

    NameTypeDefaultDescription
    config_jsonSTRING{"mode":"vibe","encode_model":"V4.5 Full","vibe_items":[],"precise_items":[]}

    Outputs (1)

    NameTypeDescription
    referencesNAI_REFERENCES