Nodes/danbot-comfy-node/Danbot V2408 Pipeline
ComfyUI Node

Danbot V2408 Pipeline

The one node that does the whole translate-and-extend dance

By p1atdev·Created 2 years ago·Updated about a year ago· 35
Danbot V2408 Pipeline
  • danbot_model
  • translation_template_config
  • extension_template_config
  • generation_config
  • generated_tags
  • translated_tags
  • extended_tags
  • raw_output
text_prompt
seed0
ban_tags

This is the node that made me install the pack. Danbot V2408 Pipeline takes a natural-language sentence - Japanese or English - and in a single node runs the full two-stage process: translate it to Danbooru tags, then extend that list with extra tags the model thinks belong. Out the other side you get four outputs: the merged final tag list, the translated tags alone, the extension tags alone, and the raw model output. One node, done, no formatter-extractor spaghetti.

The README shows exactly what this buys you. Feed it 猫耳で黒髪ロング、制服を着ており... and you get back 1girl, solo, blue background, halftone background, looking at viewer, animal ears... then a second list that adds shirt, skirt, very long hair, pleated skirt, white collar.... That second column is the extension pass doing its thing - filling in the gaps your sentence never mentioned. This is the "huh, that's genuinely useful" moment.

How it works

Two passes internally, both sharing your seed so they're reproducible:

  1. Translate. It builds the translation template from the translation_template_config (or a sensible default: tall / general / very_short), runs the model, and pulls out the copyright/character/translation buckets via the same regex logic the Extractor nodes use.
  2. Extend. It builds the extension template, splices the just-extracted copyright and character tags back in as context, and runs the model again to produce the extension list. The final generated_tags output is the buckets joined back together in order: copyright, character, translation, extension.

Two details worth knowing. First, the translation pass is deliberately run greedy (do_sample=false) - deterministic gist first, creative padding second. The generation_config you supply only drives the extension pass, which is where randomness is welcome. Second, the pipeline's defaults are general rating, tall aspect, very_short length for translation and long for extension - the exact recipe the README's sample outputs were tuned with. And a warning that applies if you hand it template configs: the rating dropdown offers auto, but the underlying token map has no auto entry, so a config carrying auto crashes with a KeyError. Use general.

Inputs and outputs

Required: danbot_model, text_prompt, seed. Optional: ban_tags, translation_template_config, extension_template_config, generation_config - all of which you've seen on their own nodes. Outputs: generated_tags (the merged list - this is your prompt), translated_tags, extended_tags, and raw_output (special tokens included, for debugging or further extraction).

A note on the seed: it's a real set_seed call, so the same sentence + same seed + same config reproduces the same tag list. Lean on it.

Install

ComfyUI Manager → danbot-comfy-node, or:

cd ComfyUI/custom_nodes
git clone https://github.com/p1atdev/danbot-comfy-node
cd danbot-comfy-node
pip install -r requirements.txt

(portable: ../../../python_embeded/python.exe -s -m pip install -r requirements.txt.) Restart, and remember the model downloads from HuggingFace on first load - the pipeline will look frozen for a minute before it starts.

Categoryprompt/Danbooru Tags Translator

Inputs (7)

NameTypeDefaultDescription
danbot_modelDANBOT_MODEL
text_promptSTRINGNatural language prompt. English and Japanese are supported.
seedINT00–4294967295
ban_tagsoptSTRINGTags to ban during generation
translation_template_configoptDANBOT_TEMPLATE_CONFIG
extension_template_configoptDANBOT_TEMPLATE_CONFIG
generation_configoptDANBOT_GENERATION_CONFIGGeneration configuration for the upmsapling tags

Outputs (4)

NameTypeDescription
generated_tagsSTRING
translated_tagsSTRING
extended_tagsSTRING
raw_outputSTRING