AITuber Persona Prompt Generator
One index number in, a finished character prompt out
- character_name
- character_summary
- image_prompt
What it actually does
AITuber Persona Prompt Generator is a prompt-writing node, not an image node. It sits at the front of your workflow and hands you a finished, English image prompt for one of 195 Japanese AITuber characters. You type a character number (0–194) and a mood keyword like 春、カフェ or night, neon rain, and an LLM - reached through any OpenAI-compatible API - writes the whole prompt for you: hair, eye color, outfit, background, lighting.
For context: an "AITuber" is an AI-hosted streamer character (the VTuber idea, but the personality runs on an LLM). This pack is built around the DataPilot/AItuber-Personas-Japan dataset, which is exactly what it sounds like - concept documents for 195 of them, appearance included. So the thing this node saves you is the grunt work of translating someone's character sheet into a usable prompt. If you're making art for your own AI streamer, or you just want consistent character renders without hand-tuning a prompt block, it's a neat shortcut. If you don't care about these 195 characters at all, it's still a tidy demo of LLM-driven prompt generation.
How it works
On the first run it pulls all 195 rows from the HuggingFace datasets-server API and caches them to aituber_personas_cache.json next to the node. After that it works fully offline - no dataset download on every run, no model files to fetch.
Every run after that: it grabs the persona at your index, regex-parses the concept markdown for the character name, visual design, profile and background, then does its own gender detection - checking an explicit 性別表現 field, then first-person pronoun, then keyword scan - to fix the opening subject. The prompt always starts realistic photo of a Japanese woman/man/androgynous person/person. It also checks whether glasses are explicitly mentioned and only adds them if they are.
Then it builds a system prompt with strict rules: English only, under 160 words, comma-separated phrases, no masterpiece/best quality anime tags, hairstyle/eye color/outfit/setting/lighting always included, plus two few-shot examples to keep the format stable. It calls your LLM and strips <think>...</think> reasoning blocks, so Qwen-style reasoning models work without cleanup.
The key thing to understand: this node generates nothing itself. It's a client for whatever OpenAI-compatible server you point it at - LM Studio, Ollama, or a cloud API. No key needed for local servers; the code substitutes a dummy key when the field is empty.
Inputs and outputs
Only a few matter:
- index (0–194) - which character. There's no search in the node; it's a number, so expect to be flipping through the dataset to find who you want. (The bundled CLI can search by name.)
- keyword - mood or scene, Japanese or English, comma-separated. This is your creative input.
- api_base_url - the endpoint. The shipped default is the author's own LAN IP (
http://192.168.11.200:1234/v1), which will not work for you - change it tohttp://localhost:1234/v1for LM Studio,http://localhost:11434/v1for Ollama, or your cloud URL. - model_name - set this to whatever is actually loaded in your server. The default
qwen3.5-122b-a10bis just the author's setup. - api_key - leave empty for local LLMs.
- max_tokens (256–8192) and temperature (0–2) - the usual knobs; defaults are fine.
Three outputs: character_name (Japanese), character_summary (a profile digest), and image_prompt - the one you actually use, wired into a text encoder or positive prompt like any string you'd type yourself. Fair warning: the prompts are framed as "realistic photo of a Japanese…", so on a heavily anime-tuned checkpoint that framing may fight your style - treat the output as a draft you're free to extend with your own tags.
Install
ComfyUI Manager can do it: search for "AITuber" and hit install. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/knishika62/ComfyUI_AITuber
cd ComfyUI_AITuber
pip install -r requirements.txt
Restart ComfyUI and the node appears under the AITuber category. Dependencies are refreshingly light - openai, requests, pyyaml - and there are no model files to download. The only network need is the one-time dataset fetch.
Common issues
- Connection error on first try: nothing is listening at
api_base_url. Get LM Studio or Ollama running first - the node is just a client. - The default endpoint is a dead IP.
192.168.11.200is the author's home network. Point it at localhost and the problem vanishes. - Unknown model errors: your server will reject a
model_nameit doesn't have loaded. Match it to what's actually running. - First run needs internet for the dataset; every run after is cached and offline.
If something's misbehaving, the repo ships a CLI that runs the exact same logic without touching ComfyUI - handy for iterating on the LLM call fast: python aituber_prompt.py -i 0 -k "春、カジュアル、カフェ".
<||DSML||tool_calls> <||DSML||invoke name="bash"> <||DSML||parameter name="command" string="true">f=/home/homelab/Desktop/nq-bert-joint/comfyicu/content/node-articles/AITuberPersonaPrompt.md; wc -w "$f"; grep -c '^##' "$f"
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| index | INT | 00–194 | — |
| keyword | STRING | 春、カジュアル、カフェ | — |
| api_base_url | STRING | http://192.168.11.200:1234/v1 | — |
| model_name | STRING | qwen3.5-122b-a10b | — |
| api_key | STRING | — | |
| max_tokens | INT | 4096256–8192 | — |
| temperature | FLOAT | 0.700–2 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| character_name | STRING | — |
| character_summary | STRING | — |
| image_prompt | STRING | — |