RS AI Prompt Writer (Korean / English → Prompt)
2.5 GB, no API key, no excuses
- prompt
The name is a lie in the best way: there's no writing assistant, no API key, no account. RS AI Prompt Writer is a local Qwen3-4B sitting in your graph, taking a Korean or English description and handing you back either a clean English tag line or one English paragraph.
What it's for
Two jobs. First, translating intent: you know what you want - "a woman in a white shirt and blue skirt standing in a park" - and you want a prompt that preserves the scene instead of inventing a different one. Second, and this is the pack's own framing, it's the alternative to the pack's TIPO nodes when detail preservation matters. TIPO is a tag expander; it can drop or change requested details even with firmer instructions. This node uses an instruction-tuned chat model instead, and the author is honest about the trade: the writer keeps the scene, TIPO produces better booru tag texture.
That places it in the mainstream pattern of an LLM-as-a-node - a small model doing short, structured rewriting upstream of the sampler. It's free per call, offline after the first download, and uncensored in the sense that nobody is filtering you, which is why people run local 4B-to-8B models for this instead of an API. The whole third-party-API-vs-local argument is covered in LLM nodes in ComfyUI; the short version is that this job doesn't need a frontier model, it needs one that follows a format and stops.
Worth saying out loud: this pack has essentially no community footprint - searching the big ComfyUI subreddits for "Gemma TIPO" or the author's handle returns nothing at all. So there's no crowd-sourced verdict to lean on. What you get instead is unusually candid documentation, including the author's own list of failures (balanced mode can add weather you never mentioned; prose can contain fragments).
How it works
Under the hood it's llama-cpp-python loading a quantized GGUF and running a chat completion with a system message that encodes your creativity and length choices, then a cleanup pass. Tag output gets a comma-tag tidy-up; prose output gets stripped of code fences and stray quotes.
Some real mechanics worth knowing, because they change how you tune it:
lengthis not just an instruction - it sets the token budget too:short≈ 10–20 tags / 30–50 words capped at 256 tokens,medium≈ 20–35 tags / 60–100 words capped at 512,long≈ 35–55 tags / 100–160 words capped at 900.- Sampling is pinned: top_p 0.8, top_k 20, repeat penalty 1.05. Temperature and seed are yours; the seed is masked down internally, so don't expect a 64-bit seed to behave like one.
modellists whatever.gguffiles you've dropped intoComfyUI/models/gguf/, plus(auto: Qwen3-4B-Instruct-2507). Auto is the default and pulls a ~2.50 GB Qwen3-4B-Instruct-2507 Q4_K_M from Unsloth on first use, at a pinned revision with a SHA-256 check. Importing the node downloads nothing.- Errors are loud by design: a generation failure raises and stops the node rather than silently handing back your input. That's the right call - silent fallback is how you end up debugging a prompt that was never rewritten.
The inputs you set
prompt (multiline, and happy to take the Seasonal node's string output), output_format (tags for a comma-separated English prompt, natural_language for one paragraph), creativity, length, temperature (0.6 is the sane default), seed.
creativity is the one that decides whether you'll like the result:
faithful- translate and reorganise what you gave it, explicitly told not to invent.balanced- keep your details, add compatible lighting, atmosphere and composition.creative- elaborate the unspecified parts while retaining explicit requirements.
Two optional integers deserve a mention because they're where GPU setups go wrong. gpu_layers defaults to -1 (all layers on GPU) and there is no automatic CPU fallback - if your llama-cpp-python is a CPU-only build, the node fails rather than quietly crawling. 0 means CPU, deliberately. cpu_threads defaults to 2 and is capped at 8; keeping it low is the difference between a usable desktop and a frozen one.
One output: prompt. Text preview, or straight into your positive prompt.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/raspie10032/RS-Seasonal-Prompt-Generator
Restart. Then the important part - this node, unlike the two native Gemma nodes, is on the legacy path and needs the legacy requirements:
python -m pip install -r ComfyUI/custom_nodes/RS-Seasonal-Prompt-Generator/requirements-legacy.txt
That's llama-cpp-python>=0.3.23. And here's the trap the README spells out: a plain pip install llama-cpp-python will happily give you a CPU wheel, or worse, start a source build. For GPU inference you want a matching CUDA wheel for your Python and driver, installed into the same interpreter ComfyUI runs on. If you only want the category formatter used by the legacy TIPO node, there's a one-liner for that (python -m pip install --no-deps tipo-kgen), but that's a different thing - this node needs the runtime.
The main requirements.txt in this pack is just a GGUF parser for the native nodes, and it will not make this one work.
Where people get burned
GPU wheel mismatch. The classic: gpu_layers=-1, a wheel built for another CUDA version, and a runtime error about failing to load a library. Fix the wheel, not the node. RS_TIPO_FORCE_CPU=1 forces CPU across the pack's nodes but can't repair a broken wheel.
Multiple GPUs. Set CUDA_VISIBLE_DEVICES to the UUID of the card you want before starting ComfyUI. It applies to the whole process, so it's a restart-and-set decision, not a per-node one.
Balanced mode adding things you didn't ask for. Documented by the author: mention an umbrella and it may add rain. Read the output; these are model instructions, not semantics.
Expecting tag texture from a 4B chat model. It writes tidy English. It is not going to reproduce the weird specificity of a real Danbooru tag set the way a TIPO-style expander does. If your model is Illustrious-family and your output feels flat, that's the mismatch, not a bug.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | COMBO | (auto: Qwen3-4B-Instruct-2507) | 1 options: (auto: Qwen3-4B-Instruct-2507) |
| output_format | COMBO | tags | 2 options: tags, natural_language |
| creativity | COMBO | balanced | 3 options: faithful, balanced, creative |
| length | COMBO | medium | 3 options: short, medium, long |
| temperature | FLOAT | 0.600.1–1.5 | — |
| seed | INT | 00–18446744073709550000 | — |
| gpu_layersopt | INT | -1-1–100 | -1 = all GPU layers (default); 0 = explicit CPU mode. A GPU build is required; no automatic CPU fallback. |
| cpu_threadsopt | INT | 21–8 | CPU helper threads, including prompt processing. Keep low to preserve desktop responsiveness. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |