DeepSeek Illustrious Prompt - v1.8
A DeepSeek prompt writer for Illustrious
- llm_config
- positive_prompt
- positive_prompt_chinese
- negative_prompt
- raw_response
The one-sentence pitch
You type "校园午后,一个白发少女坐在窗边,午后阳光穿过窗户" into a box, this node calls the DeepSeek API, and a second later it hands you a cleaned, deduplicated Illustrious-compatible tag list (1girl, white hair, school uniform, sitting, sunlight through window, …) plus a Chinese translation you can sanity-check. It's the classic LLM-in-the-graph prompt enhancer, aimed squarely at the Illustrious / Danbooru anime family.
Two things to know up front so nothing surprises you. First, this is a cloud node, not a local one. There's no model file to download, no VRAM cost - it's an HTTP client carrying your DeepSeek API key, and every run costs a little money per call. Second, the name is honest: it's built for Chinese in, English tags out, because the author's framing and the shipped system prompt are written for exactly that. If you're an English speaker you can still use it; you're just not the primary audience.
How it works
The node builds a request to DeepSeek's Chat Completions endpoint with your description plus a system prompt that tells the model to act as a "storyboard director" and answer in one strict JSON shape: {"positive_prompt": "...", "positive_prompt_chinese": "..."}. It forces response_format={"type": "json_object"}, streams the reply, and on top of that the author leans on DeepSeek's thinking mode (enable_thinking, with a reasoning_effort of high/medium/low) so the model does its "director's checklist" in the reasoning channel and only the clean tags land in the content.
Then the glue. The negative prompt is never AI-generated - it comes straight from the node's base_negative_prompt widget, which ships with a long SDXL-style blacklist (worst quality, low quality, bad hands…). That's the right call: on Illustrious, which is still SDXL-lineage with the old CLIP encoder, negative prompts and (tag:1.2) weight syntax genuinely still work - unlike the LLM-encoded 2026 models where both are inert. And the final positive is assembled by hand: quality_style_lora_prompt + base_positive_prompt + the AI's content tags, joined, deduped, and run through an attention-weight cleaner that flattens ((tag)) → tag and strips the thinking output.
The inputs you'll actually touch
Most of the widget soup you can leave alone, but these matter:
description- required, and it errors if empty. This is where your scene goes.style_preset- a dropdown populated from your config file, defaulting tostoryboard-director. Switch it and the frontend auto-fills the matchingsystem_prompt.quality_style_lora_prompt- prepended to the final prompt, defaulting to quality words plus a handful of artist/LoRA trigger strings. This is deliberately the model's only source of quality words; the system prompt forbids the AI from inventing any.model_name-deepseek-v4-flashby default,deepseek-v4-pro, orcustomif you point at your own.temperature(0.2 default),max_tokens,enable_thinking/reasoning_effort- the knobs that control cost and verbosity.
It outputs four strings: positive_prompt (what you encode), positive_prompt_chinese (the translation, for eyeballing only), negative_prompt, and raw_response (including the reasoning, for debugging). If you have the ComfyUI-LLMs-Toolkit pack, you can skip the config file entirely and feed its llm_config into the optional input - the plugin accepts that as higher priority than its own config.
Install and the key
cd ComfyUI/custom_nodes
git clone https://github.com/1456745460/deepseek-comfyui-Illustrious-prompt-plugin
Then restart ComfyUI (or use ComfyUI Manager and search "DeepSeek Illustrious"). Unusually for a custom node there's no pip install step and no requirements.txt - the pack uses Python's stdlib urllib for the API calls. The one thing you must do is put a real key in:
# custom_nodes/deepseek-comfyui-Illustrious-prompt-plugin/config/deepseek_config.ini
[deepseek]
api_key = sk-your-real-key-here
Where people get burned
The node sets IS_CHANGED to always re-run, so every queue execution calls the API again even if you changed nothing. Preview a workflow ten times and you've paid for ten generations of tags. Second, max_tokens defaults to a high 8192 partly because thinking mode eats output tokens - the node auto-boosts it on truncated replies and writes the real value back to the widget, so don't be alarmed when it moves. Third, the model name must actually exist on the DeepSeek API you're hitting; if you're using a proxy or a different account, that's what custom_model and base_url are for.
One honest caveat: it's a small pack by a single author sending your text and an uncensored system prompt to a third-party API - the shipped storyboard-director preset is explicitly written for NSFW tag production and tells the model to ignore content restrictions, which is exactly why the anime/NSFW crowd installs it. That also means: don't put anything in description you wouldn't hand to DeepSeek, and since a network-carrying node is the shape of thing this ecosystem has been burned by once, it's worth a skim of the source before you trust it with a real key.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | deepseek-v4-flash | 3 options: deepseek-v4-flash, deepseek-v4-pro, custom |
| custom_model | STRING | — | |
| system_prompt | STRING | — | |
| quality_style_lora_prompt | STRING | masterpiece, best quality, high quality, absurdres,(toosaka asagi:0.3),(ask_(askzy):0.5),painterly rendering,(matte skin:1.1),(matte style:1.1),Clear lines,manai,Jeddtl02,s1_dram,nsfw | — |
| base_positive_prompt | STRING | — | |
| base_negative_prompt | STRING | worst quality, low quality, lowres, photorealistic, raw photo, 3d, cgi, plastic render, oil painting, impasto, thick brush strokes, rough brushwork, watercolor, sketch, lineart, hard cel shading, harsh outlines, oversaturated, strong contrast, crushed blacks, harsh lighting, sharp specular highlights, wet skin, oily skin, sweaty skin, plastic skin, excessive skin pores, hyper-detailed skin, heavy film grain, noisy image, gritty texture, excessive bloom, glowing skin, blurry, foggy, cluttered background, bad anatomy, bad hands, extra fingers, deformed legs, fused legs, bed, glasses | — |
| description | STRING | — | |
| style_preset | COMBO | storyboard-director | 1 options: storyboard-director |
| json_retry_count | INT | 30–10 | — |
| temperature | FLOAT | 0.200–1.5 | — |
| max_tokens | INT | 8192128–8192 | — |
| enable_thinking | BOOLEAN | true | 开启 DeepSeek 思考模式(thinking),对应 extra_body.thinking.type=enabled |
| reasoning_effort | COMBO | high | 思考强度 reasoning_effort(仅 enable_thinking 开启时生效) |
| base_urlopt | STRING | https://api.deepseek.com/v1 | — |
| llm_configopt | LLM_CONFIG | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| positive_prompt_chinese | STRING | — |
| negative_prompt | STRING | — |
| raw_response | STRING | — |