ComfyUI Node
Feature Dictionary
Run ~220 diverse prompts through the text encoder + SAE to discover what each feature responds to. Saves a JSON dictionary mapping feature indices to top-activating prompts. Run once per SAE, takes ~1–2 minutes.
Feature Dictionary
- dict_path
- summary
◄sae_path►
◄save_path/tmp/ComfyUI/custom_nodes/ComfyUI-ConceptSteer/sae/feature_dict.json►
◄layer22►
◄sae_expansion8►
◄top_prompts5►
◄n_extra_prompts300►
◄encoder_path►
◄protect_existingtrue►
CategoryConcept Steer/Features
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| sae_path | STRING | Path to the trained SAE weights (.pt) | |
| save_path | STRING | /tmp/ComfyUI/custom_nodes/ComfyUI-ConceptSteer/sae/feature_dict.json | Where to save the feature dictionary JSON. Pass this path to Feature Map's dict_path input. |
| layer | INT | 221–36 | Transformer layer (must match SAE training) |
| sae_expansion | INT | 82–16 | SAE expansion factor (must match SAE training) |
| top_prompts | INT | 51–20 | How many top-activating prompts to store per feature |
| n_extra_prompts | INT | 3000–1000 | Extra generated prompts beyond the built-in ~120. More = better coverage and more discriminative labels. Uses diverse templates to avoid formulaic patterns. |
| encoder_path | STRING | Path to Qwen encoder safetensors (or set env var) | |
| protect_existing | BOOLEAN | true | If the save path already exists, auto-rename to _v2, _v3, … instead of overwriting. Disable only when intentionally replacing. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| dict_path | STRING | — |
| summary | STRING | — |