Nodes/comfyui-kisekae/๐Ÿ‘˜ Kisekae Prompt
ComfyUI Node

๐Ÿ‘˜ Kisekae Prompt

One node, two prompt strings, and three ways to load a LoRA

By KagejitsuยทCreated 11 days agoยทUpdated 10 days agoยท 0
๐Ÿ‘˜ Kisekae Prompt
  • char
  • positive
  • negative
  • LORA_STACK
  • lora_syntax
  • trigger_words
  • char
โ—„templateโ–พโ–บ
โ—„template_textโ–บ
โ—„escape_parenstrueโ–บ
โ—„dedupetrueโ–บ
โ—„include_triggerstrueโ–บ

This is the node the rest of the chain exists for. Everything upstream - identity, hair, outfit, scene - is data. ๐Ÿ‘˜ Kisekae Prompt turns that data into the two strings your CLIP Text Encode nodes want, plus the LoRA wiring, in one shot.

How it works

It renders the character through a template. The template decides order and line breaks, and one template line becomes one prompt line, with empty placeholders and stray commas stripped out:

{style.quality}, {scene.composition}, {scene.lighting}
{triggers}, {identity}, {hair}, {head}, {body}
{outfit}
{style}, {pose}
{pose.prose}
{scene}, {head.expression}

Three placeholder forms do the work: {hair} prints every field of a section in schema order, {head.expression} prints one field and removes it from {head} so nothing appears twice, and {!pose.prose} leaves a field out entirely. Misspell one and you get an error naming the valid fields, not a silently empty prompt.

Two render-time behaviours are worth knowing because they fix things you'd otherwise fix by hand. Bracket escaping turns menacing (jojo) into menacing \(jojo\) so ComfyUI doesn't read it as emphasis, while genuine weights like (tag:1.2) are left alone. And dedupe drops exact repeated tags, keeping the first - which matters when your character preset and your scene preset both want to say solo focus.

Negatives come from three places - the whole preset, a section, and individual fields (the companion negatives that travel with dropdown picks) - and any negative that also appears in the positive gets dropped, because a tag fighting itself is worse than a missing negative. Debug Prompt lists exactly what got dropped.

The inputs and outputs

char is required; everything else you'll touch is the layout:

  • template - the shipped anima-mixed or illustrious-tags. Drop your own .txt files in ComfyUI/user/default/kisekae/templates/.
  • template_text - a custom layout typed straight into the node. Non-empty wins over the dropdown, so it overrides rather than blends.
  • escape_parens, dedupe, include_triggers - all on by default, all worth leaving on unless you have a reason.

Six outputs, and the LoRA ones are where people get burned. positive and negative go to your CLIP Text Encode text inputs. LORA_STACK is a standard (file, model_strength, clip_strength) list that LoRA Manager's loader and other stack appliers (Easy-Use's Apply LoraStack, for instance) accept. lora_syntax is <lora:aoi:0.8> text for LoRA Text Loader. trigger_words is the joined triggers if you'd rather insert them manually. And char passes through, so you can attach a Debug node after this.

Use one of LORA_STACK or lora_syntax, never both. That's a double LoRA application and it'll show up as an overcooked, crunchy render that you'll blame on the checkpoint. lora_syntax drops the folder path and keeps the basename, and includes clip strength as a third number only when it differs from model strength.

Install

ComfyUI Manager โ†’ search kisekae (Registry: comfyui-kisekae), or:

cd ComfyUI/custom_nodes
git clone https://github.com/Kagejitsu/comfyui-kisekae

Restart. The pack has no Python dependencies, so there's no install step beyond the clone. For the outputs here you'll want a stack loader: LoRA Manager is the one the pack's example workflow uses, and it's optional - the nodes don't import it.

Common issues

LoRAs aren't applying. Check Debug Prompt's LoRA section. A missing file is left out of the stack with a warning on the node display (the workflow still runs), which is quiet enough to miss. Preset paths are relative to your loras folder, and a same-named file elsewhere is substituted if the original moved.

The render looks burnt after I added LoRA Manager. You've probably wired both lora_syntax and LORA_STACK. Pick one.

Tags are appearing twice. Leave dedupe on. If they still duplicate, they differ by punctuation or spacing somewhere upstream - Debug Prompt's "duplicates removed" section shows what it considers a duplicate.

(something) tags lost their emphasis. That's escape_parens, and it's usually what you want on a booru model: brackets in tags are literal more often than they're deliberate weights. Turn it off if you're hand-writing weights.

Template errors. {!hair} with no field, or an unknown section, raises with the valid names - read the message, it's specific. Templates live in Tansu's Templates page if you'd rather edit with a live preview.

Categorykisekae

Inputs (6)

NameTypeDefaultDescription
charKISEKAE_CHARโ€”
templateCOMBOPrompt layout. Add your own .txt files in user/default/kisekae/templates/
template_textSTRINGโ€”
escape_parensBOOLEANtrueEscape brackets inside tags, e.g. menacing \(jojo\), so ComfyUI doesn't read them as emphasis. (tag:1.2) weights are kept.
dedupeBOOLEANtrueRemove exact repeated tags (first one kept)
include_triggersBOOLEANtrueFill {triggers} with LoRA trigger words

Outputs (6)

NameTypeDescription
positiveSTRINGPositive prompt
negativeSTRINGNegative prompt
LORA_STACKLORA_STACKStandard LoRA stack: LoraManager's Lora Loader (lora_stack input) and other stack loaders accept it
lora_syntaxSTRING<lora:name:strength> text for LoraManager's LoRA Text Loader
trigger_wordsSTRINGLoRA trigger words
charKISEKAE_CHARThe character, unchanged