Seasonal Fashion Prompt Generator
Seasonal fashion/scene prompts and local AI prompt writing for ComfyUI, with optional TIPO text/image tag expansion.
Nodes (11)
Tags and prose from the same scene
The tag-only half, and why it's often the one you want
TIPO-style tags without the TIPO install dance — text in, full Danbooru tag list out
2.5 GB, no API key, no excuses
A random seasonal outfit generator with zero dependencies — and one very specific coffee joke
You're not supposed to add this node — and that's the point
The memory that follows your folder while it grows
An explicit write node, so treat it like one
VRS Native Memory Loader is the reproducibility half
Your own images as a tag suggestion engine
319 MiB of eyes, borrowed from Gemma
RS-Seasonal-Prompt-Generator
English | 한국어
Create image-generation prompt ideas from seasonal CSVs, descriptions, or your own reference images and tags. This repository contains eleven user-facing ComfyUI nodes (plus an internal folder-import node) and the standalone VRS-INT command-line tool.
VRS-INT ships code, documentation, and fictional examples only. No starter memory, collected Danbooru images/tags, feature vectors, recommendation results, or model weights are included. You choose the material and build your own memory. Artist, character, and series names are retained as core information.
New: TIPO Image 30K — choose tipo_lora=image-30k for image-tag assistance.
Compute-heavy: tested on 16GB NVIDIA GPUs. Outputs may be wrong or not match your taste.
Korean edits, names and appearance remain unreliable. Read the setup, resource costs and evaluation before downloading.
Choose a starting point
Native runtime requirements: ComfyUI must support Gemma 4 generation/vision, with
the required model files, supported PyTorch operations and sufficient RAM/VRAM.
Native TIPO/VRS need no separate llama.cpp CUDA wheel or C++ compiler; they reuse
ComfyUI's PyTorch. Starting ComfyUI alone does not guarantee model compatibility.
NVIDIA inference and VRS CPU encoding have been checked; AMD/Intel/Apple full-model
execution is unverified. VRS CPU inference requires explicit use_cpu consent.
| What you want | Use | Requirements |
| --- | --- | --- |
| Random seasonal clothing and scene prompts | Seasonal Fashion Prompt Generator | ComfyUI; no model or extra packages |
| Expand text/image context into tags and natural-language instructions | Gemma Prompt Expander Native | Built-in Q4 or connected native Gemma 4 CLIP; optional personal tag dictionary |
| Expand text/image prompts using ComfyUI PyTorch | Gemma TIPO Native | Gemma 4 capable ComfyUI; built-in Q4 GGUF or native safetensors |
| Write English tags or prose from Korean/English requests | RS AI Prompt Writer | ComfyUI + a separate Qwen Writer, distinct from Gemma TIPO |
| Expand Korean/English descriptions or tags | Gemma TIPO, text mode | ComfyUI + GGUF runtime/model; GPU-capable runtime plus gpu_layers=-1 enables GPU offload |
| Generate prompt tags inspired by an image | Gemma TIPO, image mode | ComfyUI + GGUF + matching mmproj + llama.cpp vision runtime |
| Retrieve tags and names from your own reference collection | VRS-INT | Native: ComfyUI PyTorch accelerator + Gemma vision support; CLI: Python 3.11+ / CUDA. Personal image/tag pairs required. |
VRS-INT retrieves creative reference material. It does not train the encoder, reliably identify an image's author, or write a finished natural-language prompt. Use its tags in your image prompt or a separate prompt writer. This public version includes four native VRS nodes for building, loading and recalling personal experience into the native Gemma Prompt Expander.
Optional TIPO LoRA: choose tipo_lora inside either native Gemma node;
first use downloads a ~45.3MiB experimental adapter. A base is required: built-in
Q4 (~3.22GiB text, ~4.14GiB with vision) or connected BF16 (~9.57GiB). Default
is none; no extra loader node. See Q4 setup.
See base setup, downloads and limitations.
- ComfyUI: follow installation, then the node guides below.
- VRS-INT only: start with the complete VRS-INT guide. ComfyUI and the full Gemma language model are unnecessary.
- Data preparation: follow the image/text pair walkthrough.
- 한국어: 전체 사용법 · VRS-INT · 쌍 구성 예제.
Install for ComfyUI
1. Install under custom_nodes
From your ComfyUI directory:
git clone https://github.com/raspie10032/RS-Seasonal-Prompt-Generator.git custom_nodes/RS-Seasonal-Prompt-Generator
Alternatively, extract the repository ZIP with this layout. Avoid an extra nested folder.
ComfyUI/
custom_nodes/
RS-Seasonal-Prompt-Generator/
__init__.py
seasonal_fashion_prompt_node.py
gemma_tipo_node.py
data/
Restart ComfyUI. Find the nodes under prompt or search by display name.
Prompt-generation nodes return STRING; native VRS nodes also return typed
encoder, memory and generation-state connections. To connect a string to a text encoder, convert the encoder's
prompt/text widget to an input when required by your ComfyUI version. A text
preview node lets you inspect the string before generating an image.
2. Prepare Gemma TIPO Native (recommended)
For built-in Q4, install requirements.txt with ComfyUI's Python. It adds the
pure Python gguf parser. Select model_source=heretic_ara_q4, disconnect clip,
and keep paths empty for automatic downloads. Full Q4 setup and example.
No llama.cpp, C++ compilation, CUDA wheels or replacement torch are needed.
For an existing full native safetensors, use model_source=connected_clip (default):
- Use ComfyUI with Gemma 4 and
CLIP.generatesupport. - Put a ComfyUI-format Gemma 4 E2B safetensors in
ComfyUI/models/text_encoders/. - Select it in
Load CLIP, withtype=stable_diffusion,device=default. - Connect its
CLIPto Gemma TIPO Native and enter a request. The image input is optional. - Connect
tagstoPreview as Textor your image-generation text input.
Matching Gemma 4 E2B GGUF + mmproj can use the built-in Q4 path. If you have the fine-tuned full HF safetensors, use the model preparation/conversion guide to retain its trained language and vision projector together. A generic base Gemma is not the existing TIPO fine-tune. Repackaging does not require training.
Native setup, Windows commands and troubleshooting · API workflow example
The legacy Gemma TIPO GGUF node and RS AI Prompt Writer remain optional.
Only those paths use requirements-legacy.txt. Select a matching llama-cpp-python
GPU build first for GPU inference: a plain pip install can select CPU wheels or
start a source build. To install only the category formatter, use ComfyUI's
Python: python -m pip install --no-deps tipo-kgen. VRS-INT setup is separate.
Legacy vision prefers Vulkan on Windows/Linux to reduce separate CUDA runtime downloads.
Set RS_TIPO_VISION_BACKEND=auto|vulkan|cuda|metal|cpu to select a backend explicitly.
The CUDA prebuilt selector supports Windows x64 only. Vulkan still needs a compatible
GPU driver and loader; loader detection does not prove full model compatibility.
This setting affects legacy image TIPO only. Native TIPO and VRS follow ComfyUI's device settings.
gpu_layers=0 and RS_TIPO_FORCE_CPU=1 retain their existing CPU meaning.
Seasonal Fashion Prompt Generator
- Add Seasonal Fashion Prompt Generator.
- Choose a season, leave clothing at
random, and setbackground_toggle=on. - Connect the output to a text preview or your image model's positive text input.
- Run the workflow. Optionally connect it to Gemma TIPO.prompt for expansion.
| Input | Meaning |
| --- | --- |
| season | random, spring, summer, autumn, winter |
| background_toggle | on: seasonal scene; off: omit background block; simple: plain white/grey/black background |
| weather_toggle, time_toggle | random, off, or listed value; used when background is on |
| top_toggle, bottom_toggle, one_piece_toggle | Clothing choices; random or off |
| accessory_toggle, hat_toggle, shoes_toggle, socks_toggle | Random accessory/hat/shoes/socks or turn off |
| composition_toggle, gaze_toggle, pose_toggle, body_direction_toggle | random, off, or listed value |
| additional_situation_toggle | Add CSV situation details when background/weather/time conditions match |
| wanna_shot | Yes: special café/coffee/tumbler scene instead of the normal scene path |
| seed | Reproducible selection, including seed 0 |
The same seed and inputs reproduce the selection, including seed 0, without
changing the global random state. Top and bottom toggles work independently.
When both separates and a one-piece are available, one outfit type is selected.
Customize CSVs
Edit UTF-8 files in data/, preserve headers/columns, and restart
ComfyUI to reload cached data. Back up personal changes before updating code.
Rows missing required values are skipped: clothing/backgrounds need three
columns, weather/time need two. Single-column pose and composition lists remain valid.
| Files | Contents |
| --- | --- |
| seasonal_fashion.csv | Season, category, item. Categories: top, bottom, one_piece, accessory, hat, shoes, socks |
| seasonal_backgrounds.csv | Season, background classification, description |
| seasonal_weather.csv, seasonal_times.csv | Weather and time choices by season |
| general_composition.csv, gaze_direction.csv, poses.csv, body_directions.csv | Composition, gaze, pose, and body-direction choices |
| additional_situations.csv | Situation, \|-separated matching alternatives, description |
Quote CSV fields containing commas. Situation conditions support | for OR
and & for AND, for example misty & lakeside|foggy & lakeside.
AI prompt writing
For descriptions such as “a woman in a white shirt and blue skirt standing in a park,” use RS AI Prompt Writer (Korean / English → Prompt). It uses an instruction-tuned model to preserve the requested scene while writing a coherent prompt. The older TIPO model remains available for tag expansion and images; it can omit or change requested details, even with stronger instructions.
- Add RS AI Prompt Writer from the
promptcategory. - Enter a Korean/English description in
prompt, or connect Seasonal Fashion Prompt Generator'sSTRINGoutput to this input. - Keep
modelat automatic. First use downloads approximately 2.50 GB of Qwen3-4B-Instruct-2507 Q4_K_M from Unsloth. The revision is pinned and its SHA-256 is checked. It runs locally without an API key or a paid API call. - Choose
tagsfor a comma-separated English prompt, ornatural_languagefor one English paragraph. The output connects to Preview as Text or the positive prompt input of your image model's text encoder. - Start with
creativity=balanced,length=medium,temperature=0.6.
| Setting | Behavior |
| --- | --- |
| faithful | Translate/reorganize supplied details; instruct the model not to invent details. |
| balanced | Preserve specified details and add compatible lighting, atmosphere and composition. |
| creative | Elaborate unspecified details while retaining explicit requirements. |
| length | Short / medium / long target; detail preservation has priority. |
| seed | Repeatable sampling on the same model/backend; hardware/builds can differ. |
| gpu_layers | -1 (default): all GPU layers, requiring a compatible llama-cpp-python GPU build. 0: explicitly select CPU. No automatic CPU retry. |
| cpu_threads | 2 (default): CPU helper threads for both generation and prompt processing. Keep low to preserve desktop responsiveness. |
These are model instructions, not a guarantee of semantic correctness. Review
important requirements in the output. Additional GPU checks found that balanced
mode can still add unspecified weather (for example, rain when an umbrella was
mentioned), and prose can contain fragments or minor grammatical errors.
This node accepts text; image input remains
in Gemma TIPO. Custom models belong in ComfyUI/models/gguf/; use an instruction-
tuned language model with a chat template. Importing the nodes never downloads
models. Generation errors stop the writer node with a visible error instead of
silently returning the input. If an installed CUDA wheel cannot load its runtime,
use a matching GPU runtime in the same Python environment as ComfyUI.
RS_TIPO_FORCE_CPU=1 also applies to the writer, but cannot repair a broken wheel.
CPU-only builds are rejected before downloading the writer model when GPU is
requested. Select gpu_layers=0 explicitly if CPU execution is intended.
With multiple GPUs, set CUDA_VISIBLE_DEVICES to the intended GPU's UUID before
starting the Python process. This applies to the entire ComfyUI process.
Default model provenance: Qwen original model,
Unsloth GGUF, Apache-2.0;
revision a06e946bb6b655725eafa393f4a9745d460374c9, file
Qwen3-4B-Instruct-2507-Q4_K_M.gguf, SHA-256
3605803b982cb64aead44f6c1b2ae36e3acdb41d8e46c8a94c6533bc4c67e597.
Gemma TIPO: text or image to prompt tags
This section describes the legacy GGUF node. For installation without llama.cpp, use Gemma TIPO Native.
One unified node. Connect an image → vision mode (the image is
captioned via Gemma-4 vision = llama.cpp mtmd with the auto-downloaded
co-trained vision model + mmproj; set gpu_layers=-1 to use an available GPU).
No image → text mode (the prompt, Korean/English NL or tags, is
expanded in-process via llama-cpp-python). Either way the output runs
through the same kgen.formatter post-processing (sort / dedup /
drop-redundant / count-conflict).
⚠️ Vision mode is TIPO-style, not a strict 1:1 labeler. With the co-trained vision model + mmproj it draws the image's main content from the picture, but it then plausibly expands that into a fuller Danbooru tag set (TIPO creative upsampling): expect some added tags that aren't literally in the image, and run-to-run variation with the
seed. Great for turning a reference image into varied text-to-image prompts — for exact, faithful labeling use a dedicated tagger instead.
Text mode accepts Korean or English natural language, not just tags:
| Input | Output (example) |
| --- | --- |
| spring, white blouse, pleated skirt, park | spring, white blouse, pleated skirt, park, outdoors, school uniform, long sleeves, sitting, solo, … |
| 빨간 원피스, 밀짚모자, 해변 (Korean) | straw hat, red one-piece swimsuit, sun hat, beach, ocean, swimsuit, outdoors, … |
Inputs:
prompt: text to convert (Korean/English NL or tags).model: a dropdown of the*.gguffiles found inComfyUI/models/gguf/. Pick(auto: download default)to fetch the default model (gemma4-tipo-ko-v2-Q4_K_M.gguffromraspie/gemma4-tipo-ko-gguf) into that folder on first use — a progress bar shows on the node while it downloads (reused afterward, never re-downloaded); or drop your own.ggufintoComfyUI/models/gguf/and select it (reload the node list to see new files).tag_length: target verbosity (very_short…very_long).sort: prompt-ordering preset applied bykgen.formatter(tags are categorized special/characters/copyrights/artist/general/quality/meta/rating):danbooru(default): artist, rating, special, characters, copyrights, general, quality, meta.quality_first: quality tags lead.artist_first: artist/character lead.general_only: keep only special + characters + general tags.simple: only special, rating, general.
temperature: sampling temperature.ban_tags: comma-separated tags to strip from the result.seed: changes the expansion for variation.- (optional)
image: connect a ComfyUI IMAGE to switch to vision mode (image → tags). Fully automatic — first vision use auto-downloads the prebuilt llama.cpp mtmd binary for your OS/arch and GPU (Windows/Linux → Vulkan preferred; Windows without Vulkan → compatible CUDA + cudart; macOS → Metal; otherwise CPU — no build) and the trained vision model + mmproj. Nothing to install or configure by hand. - (optional, vision only)
mmproj_path: leave empty — the trained vision mmproj is auto-downloaded (paired with the vision model). Only set this to point at your own mmproj. - (optional, both modes)
gpu_layers:0= CPU (default and saved workflow compatibility),-1= GPU auto/all layers, positive values = layer count. Text mode requires a GPU-enabledllama-cpp-pythonbuild. If GPU offload is unavailable, text mode logs the error and returns the original prompt before downloading a model; it does not silently run the request on CPU. Vision retries on CPU if GPU initialization or inference fails.RS_TIPO_FORCE_CPU=1forces CPU in both modes;LLAMA_MTMD_CLIselects a local binary. CPU mode also disables vision-projector offload.
Notes:
- Longer / more detailed descriptions yield more and more accurate tags.
- Korean descriptions are not mixed into successful tag output. Existing comma-separated English input tags are preserved before cleanup.
- Ban matching ignores case and space/underscore differences. Ban filtering and deduplication still work if the optional category formatter is unavailable.
- Redundant general tags are dropped to save tokens: if a more specific tag
with the same head noun exists (e.g.
white skirt), the bareskirtis removed. Distinct tags likedress/dress shirtare kept. - Conflicting person-count tags are collapsed per group: with
1girlpresent,4girls/multiple girlsare removed (1girl+1boyis kept — groups are independent). - On model/dependency/inference failure, text returns the original prompt;
vision returns an empty string. Check the
[TIPO]/[TIPO-V]console log to distinguish fallback from generated output. Vision accepts one image; select one batch item before connecting a batch. - Downloads use temporary files and reject empty/truncated transfers. This checks transfer completeness, not cryptographic model integrity.
Supported environment & requirements
| | |
| --- | --- |
| OS | Windows / Linux / macOS — anywhere ComfyUI runs and a llama-cpp-python wheel exists (x86-64, Apple Silicon/arm64) |
| Node 1 (Seasonal) | Any ComfyUI install. Zero dependencies, no model. |
| Node 2 (Gemma TIPO) | Vision: optional GPU auto-selection (gpu_layers=-1, CUDA / Vulkan / Metal) with CPU fallback. Text: CPU by default (GPU via a CUDA llama-cpp-python build). |
| RAM | min ~8 GB (≈5 GB used for the 4-bit model) · 16 GB+ recommended |
| Disk | text ~4 GB (3.2 GB GGUF + deps); vision adds ~3.2 GB vision GGUF + ~1 GB mmproj + the GPU prebuilt (fetched once on first vision use) |
| Speed | Vision can offload to GPU with gpu_layers=-1; speed depends on hardware. Text runs in-process via the explicitly installed llama-cpp-python backend; GPU acceleration requires a compatible GPU build. |
| Python | ComfyUI's embedded env; llama-cpp-python >= 0.3.23 (legacy text only, explicitly installed by the user) |
Install (Node 2 only)
Generation never installs or upgrades Python packages. Prefer
Gemma TIPO Native / native Q4 to avoid separate CUDA inference wheels.
Only legacy text TIPO and Qwen Writer need an explicitly installed compatible
llama-cpp-python >= 0.3.23. Missing or broken backends produce guidance;
legacy text TIPO preserves its input and Writer raises an error.
Without tipo-kgen, basic tag cleanup still works; category sorting is skipped.
For optional sorting, use ComfyUI's Python: python -m pip install --no-deps tipo-kgen.
Install only if retaining legacy inference. Use ComfyUI's Python and explicitly select a matching GPU build when needed; the generic command below can select a CPU build or start a source build.
pip install -r requirements-legacy.txt
If the prebuilt llama-cpp-python wheel install can't find a wheel for your
platform/Python, install it yourself once:
pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
VRS-INT: personal reference memory
Run locally on your own PC: personal data is never uploaded or synced to an external repository by this extension. See local data and privacy for download behaviour and the scope of Git exclusion guards.
Your images + categorized tags → existing vision encoder → versioned personal memory
New reference image → same vision encoder → neighbor tags + name candidates
- Set up Python, CUDA, and the vision-only encoder.
- Prepare JSONL or image-sidecar pairs.
- Check, build, and recommend.
- Append or correct a batch.
- Back up, transfer, and roll back.
VRS-INT uses a separate Gemma E2B vision tower, not the language model or
mmproj.gguf. Explicit artist/character/series names survive even with one
occurrence. Captions and original tags remain audit metadata; a caption alone
cannot build a searchable tag memory.
Keep personal material outside the repository or in ignored vrs-int-data/ and
vrs-int-models/. Compressed memories retain tags and source metadata after
decoding; compression is not anonymization. No automatic collection, upload, or
shared-memory synchronization is performed.
Gemma checkpoint and experience inputs
See Gemma 4 TIPO runtime for the vision FP16 / PLE Q4 candidate, explicit model selection and measured limits. Text layers and vocabulary remain intact. This candidate is not a newly completed TIPO fine-tune. Internal FFN computation replay is not part of this checkpoint.
- Generated image metadata and optional tagging
- Korean text knowledge and translation dictionary
- VRS reference state → TIPO expansion
The state connection is available through the CLI and native VRS nodes. Negation and scene constraints still need output review. Vision TIPO exits its process after each call; legacy text TIPO caches one model shared with the legacy Prompt Writer. Changing its model or execution settings releases the previous model after generation finishes and before loading the replacement. Both use two CPU helper threads by default.
Troubleshooting
| Symptom | What to check |
| --- | --- |
| Nodes missing | Folder nesting, restart, startup import errors; search prompt or VRS Native. See native VRS requirements. |
| TIPO returns original text | Dependency/model/inference failure can cause fallback. Read [TIPO] console messages. |
| Vision output empty | Read [TIPO-V] logs. Check model/projector pairing, executable libraries, input image, and 600-second inference timeout. |
| unknown model architecture: gemma4 | Check Gemma4-capable llama-cpp-python ≥0.3.23 in ComfyUI's interpreter; restart after upgrading. |
| CPU remains busy | Check TIPO gpu_layers=-1 and a GPU-capable runtime. Legacy vision can retry CPU after GPU failure; inspect logs. VRS-INT settings are separate. |
| Installed package still missing | Use ComfyUI's Python, not an unrelated system/venv interpreter. |
| Model download failure | Check URL, network, disk, and console logs. Downloads reject empty or truncated transfers; verify custom files separately. |
| VRS-INT errors | See VRS-INT troubleshooting. |
Updates and validation
For an unmodified Git installation, from the repository directory:
git pull --ff-only
Restart ComfyUI if using nodes. Preserve local CSV/code edits before updating. Code updates do not fetch a corpus or migrate/activate personal memories. Record your exact snapshot hash and encoder provenance.
The public offline suite uses fictional fixtures and substitute encoders:
python -m pip install numpy Pillow
python -m unittest discover -s tests -v
python scripts/check_code_only.py
It checks inputs, metadata, snapshots, updates, packages, and publication rules. CI covers Linux/Windows/macOS and Python 3.11/3.13. This is not GPU inference or recommendation-quality validation. The publication checker reads indexed Git blobs, including staged changes; review the diff too. Historical node changelogs: English / 한국어.
License and credits
Code: Apache-2.0. Model weights, datasets, and images retain their own terms; the code license does not relicense them.
| Project | Contribution | | --- | --- | | KGen / TIPO, z-tipo-extension | Prompt expansion concept, formatter, TIPO training-data lineage | | llama.cpp, llama-cpp-python | GGUF inference | | Gemma | Base family; separate model terms | | raspie/gemma4-tipo-ko-gguf | Default Korean TIPO model | | unsloth/gemma-4-E2B-it-GGUF | Earlier base projector source; current vision defaults use the paired trained projector | | p-e-w/gemma-4-E2B-it-heretic-ara | TIPO base lineage and source of VRS-INT's separately prepared vision tower |
Originally created with ChatGPT, then developed with Claude Code and Codex.
VRS inside ComfyUI / VRS 네이티브 구축·검색: 설치·연결·API 예제
Folder ingestion: VRS Folders registers image folders and ComfyUI
output, preserves embedded prompts and indexes new files in small batches when the
generation queue is idle. Includes start/stop/resume and a latest-search-ready memory node.
Originals stay unchanged. Optional PixAI fallback tags images without usable metadata locally;
VRS Save Image preserves final runtime prompts. The panel can add a connected VRS → TIPO workflow
and optionally resume collection after restart. See the folder guide for dependencies and model costs.
Use Check folders & setup before starting. It samples local metadata and checks setup
without loading or downloading models; sample counts are not the full folder total.
The panel shows saved and search-ready experiences separately.
Search data persists across restarts and reuses unchanged experiences when snapshots advance. Folder ingestion prepares search on idle CPU time and retains the previous ready snapshot meanwhile. See cache location, capacity, recovery and measurements. Voting documents are compressed automatically. For optional lossless source compaction inside ComfyUI, use VRS Native Compact Memory; it creates a separate copy with unchanged vector values and source records, requiring this version or newer.
VRS vision defaults to automatic standalone FP16 vision preparation (319.3 MiB) from
the public vision repository.
No full language base or GGUF parser is needed for this file; a verified cached TIPO mmproj can still be reused.
Recall's request and image outputs connect directly to the Expander, alongside
vrs_state. See automatic setup and compatibility.
Use RS_MODELS_OFFLINE=1 to forbid missing native model/LoRA/vision downloads.