Nodes/ComfyUI_NAIDGenerator/Emotion βœ’οΈπŸ…πŸ…πŸ…˜
ComfyUI Node

Emotion βœ’οΈπŸ…πŸ…πŸ…˜

Retarget a character's expression with NovelAI's hosted emotion tool

By bedovyyΒ·Created 3 years agoΒ·Updated 5 days agoΒ· 114
Emotion βœ’οΈπŸ…πŸ…πŸ…˜
  • image
  • IMAGE
β—„limit_opus_freetrueβ–Ί
β—„ignore_errorsfalseβ–Ί
β—„moodneutralβ–Ί
β—„strengthnormalβ–Ί
β—„promptβ–Ί

EmotionNAID does something most local tools make you fight for: it takes an existing character image and changes the facial expression, keeping the identity intact. That's the whole point of NovelAI's hosted emotion tool, and this node is the ComfyUI front-end for it. Feed it a neutral portrait, pick "happy" or "confused," and the returned image shows the same character wearing that mood - no prompt gymnastics, no img2img luck-of-the-draw.

The inputs do the heavy lifting, and this is the most opinionated node in the director-tool family:

  • image - the character to re-express.
  • mood - 24 options, from neutral, happy, sad, angry, scared, surprised, tired, excited, nervous, thinking, confused, shy, through to smug, bored, laughing, embarrassed, love, hurt, playful, and more. This is the setting you'll actually change between runs.
  • strength - a six-step ladder: normal, slightly_weak, weak, even_weaker, very_weak, weakest. normal is the full effect; the weaker rungs are for when the model's "happy" reads as a grimace and you want a dialed-back take.
  • prompt - optional text, default empty. It's appended to steer the emotion - "gentle smile" alongside happy, for instance. You can usually leave it empty and get the stock interpretation.
  • Plus the usual limit_opus_free (on) and ignore_errors (off).

Output is an IMAGE, autosaved to output/NAI_autosave/. Behind the scenes the node sends req_type: "emotion" and folds your choices into the request options: the mood becomes the first part of the prompt string (happy;; + your extra prompt), and your strength pick is converted to a 0–5 defry value by its position in the ladder. So "strength" here isn't a separate API field - it's your index into NovelAI's defry scale, which is why the ladder only goes one direction.

Workflow-wise this is the director tool with the most immediate payoff: animate a character's expressions across a series of generations by varying only the mood, use the results as character-reference images for consistency, or run a loop that walks through all 24 moods for an expression sheet. It's tuned for anime illustration like the rest of the pack, and each run is a paid API call - expression-sheet sweeps get pricey fast, so plan the shoot before you press run.

Install is pack-standard (Manager β†’ "ComfyUI_NAIDGenerator", or clone into custom_nodes/ and restart), with NAI_ACCESS_TOKEN in a .env in the ComfyUI root. Blank output with ignore_errors on means a swallowed API error - check the console, and don't forget the token is the usual 401 culprit.

CategoryNovelAI/director_tools

Inputs (6)

NameTypeDefaultDescription
imageIMAGEβ€”
limit_opus_freeBOOLEANtrueLimit image size and steps for free generation by Opus.
ignore_errorsBOOLEANfalseβ€”
moodCOMBOneutral24 options: neutral, happy, sad, angry, scared, surprised, +18
strengthCOMBOnormal6 options: normal, slightly_weak, weak, even_weaker, very_weak, weakest
promptSTRINGβ€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”