Nodes/ComfyUI-Dart/Dart Compose Prompt
ComfyUI Node

Dart Compose Prompt

Dart Compose Prompt (DanbooruTagsTransformerComposePrompt) — ComfyUI node guide

By nkchocoai·Created 2 years ago·Updated about a year ago· 33
Dart Compose Prompt
    • STRING
    rating
    copyright
    character
    lengthlong
    general1girl

    Dart Compose Prompt is the form you fill out instead of hand-typing the special-token soup that Dart Generate actually wants. That default prompt string on the Generate node - <|bos|><rating>rating:sfw, rating:general</rating><copyright>original</copyright>...<|input_end|> - isn't something you're meant to write by hand. This node builds it for you from plain fields, and it's specifically the v1 builder: use it when Dart Load has dart-v1-sft selected. If you've loaded a v2 model, you want Dart Compose Prompt V2 instead - the README is explicit that this node outputs the prompt "of Dart Generate node (dart-v1)," and the two prompt formats aren't interchangeable.

    What it's actually doing

    Danbooru's own tagging system is categorical - rating, copyright, character, general tags, and so on - and the Dart model was trained on prompts structured the same way, with each category wrapped in its own marker tags. This node just gives you normal input fields for those categories and handles the wrapping and the special tokens itself, so you never have to remember the exact syntax the model expects.

    The fields that matter

    rating is an enum with four choices, taken straight from Danbooru's own rating-tag format: rating:general, rating:sensitive, rating:questionable, rating:explicit. This is the actual tag syntax used on the board itself, not a paraphrase - so if you already know Danbooru's rating tiers, this will look familiar.

    copyright and character are free-text fields (single line) for the series/franchise and the character name, if you're targeting a specific one - leave them blank for an original character with no series attachment.

    length controls roughly how many general tags the model generates, with five choices from very_short to very_long (default long). Longer isn't strictly better: a shorter length gets you a tighter, more focused tag set, while very_long gives the model more room to add secondary details you might not have asked for. general is the multiline field where you seed the actual content - it defaults to 1girl, and this is where you'd put any tags you already know you want (a pose, an outfit, a setting) before letting the model fill in the rest around them.

    The single STRING output wires straight into Dart Generate's prompt input.

    Installing it

    Install through ComfyUI Manager (search "ComfyUI-Dart") or clone manually: cd ComfyUI/custom_nodes && git clone https://github.com/nkchocoai/ComfyUI-Dart.git, then restart. This node ships with the rest of the pack - nothing extra to install, and no model download of its own; it's pure string assembly, no inference happens here.

    Where this goes wrong

    The one mistake that actually matters: pairing this node with the wrong model. This is the v1 prompt builder. If Dart Load has dart-v2-sft or dart-v2-moe-sft selected, this node's output won't be in the format that model was trained on - you'll either get an outright error from the tokenizer, or a "successful" generation that reads as noise because the model is trying to complete a prompt shape it's never seen. Match dart-v1-sft with this node, and everything else (dart-v2-sft, dart-v2-moe-sft) with Dart Compose Prompt V2.

    The other thing worth knowing: if you want to steer aspect ratio or lean harder on a specific character identity, those knobs don't exist here - they're V2-only fields (aspect_ratio, identity). This node is the simpler of the two on purpose, matching the simpler v1 model it feeds.

    CategoryDart

    Inputs (5)

    NameTypeDefaultDescription
    ratingCOMBO4 options: rating:general, rating:sensitive, rating:questionable, rating:explicit
    copyrightSTRING
    characterSTRING
    lengthCOMBOlong4 options: very_short, short, long, very_long
    generalSTRING1girl

    Outputs (1)

    NameTypeDescription
    STRINGSTRING