Nodes/Concept Steer/Feature Probe
ComfyUI Node

Feature Probe

Inject one SAE feature and finally see what it actually does

By Nynxz·Created 6 months ago·Updated 6 months ago· 4
Feature Probe
  • conditioning
  • CONDITIONING
  • PROBE_INFO
sae_path
feature_indices0
probe_strength1.0
inject_modeadd
replace_blend0.00
sae_expansion8
transcoder_repo

Every SAE feature is a unit direction in the encoder's hidden space - a direction that, per the Linear Representation Hypothesis, encodes some concept. Feature Probe is how you find out which. It takes a feature index, adds that feature's decoder direction to your conditioning, and lets the sampler draw you a picture of the concept. One feature might turn out to be "warm golden lighting," another "wet street reflections," another "fingers." You won't know until you see it, and this node is the seeing.

How it works

Unlike Feature Gate - which only adjusts features already active in your prompt - Probe injects the feature direction regardless of whether the feature is currently firing. That's deliberate: it forces the concept into the image so you can observe what the decoder column encodes. probe_strength × conditioning_magnitude scales the direction; at 1.0 that's a moderate ~30% effect, and 2.0–5.0 dominates.

Two inject modes:

  • add (default) - adds the feature direction on top of your existing conditioning. The prompt still matters; the feature's concept gets layered over it.
  • replace - replaces conditioning with the pure feature direction, showing the raw concept with no prompt influence. Use it to see a feature completely unmixed.

And sweep mode is the killer feature: give it a comma-separated list of indices and it outputs one conditioning per feature as a batch. Wire that into a batch-aware KSampler and you get a grid showing what each feature does side-by-side - the fastest way to build an intuition for a whole SAE.

The inputs that matter

  • conditioning - from your text encoder.
  • sae_path - must match the SAE used in Feature Map.
  • feature_indices - single index → one conditioning; comma-separated list → batch output, one per feature.
  • probe_strength - start at 1.0, raise until the concept is visible.
  • inject_mode - add or replace.
  • replace_blend - only in replace mode; blend between pure feature (0.0) and original conditioning (1.0).
  • sae_expansion / transcoder_repo - match your SAE, or use a transcoder repo.

Outputs: CONDITIONING (steered) and PROBE_INFO (a string describing what was injected).

Installing

Standard for the pack - ComfyUI Manager search "Concept Steer", or clone https://github.com/Nynxz/ComfyUI-ConceptSteer into custom_nodes/ and restart. Requires a trained SAE (or a pretrained transcoder repo) and transformers/safetensors. No extra model downloads beyond that.

Common gotchas

  • This is the verification step the rest of the pack assumes. Feature Dictionary labels are hints from text; Probe is ground truth from pixels. When a label and a probe disagree, trust the probe.
  • Sweep mode needs a batch-aware KSampler. If your sampler only takes one conditioning, you'll only ever see the first feature. Reach for a sampler that handles batch conditionings or a LatentBatch.
  • Strength 1.0 is a starting point, not a promise. Some features encode faint concepts that need 3–5 to become visible; others explode. The tooltip's advice - start at 1.0 and increase until visible - is exactly right.
  • Keep the SAE consistent. Same file, layer, and expansion as your Feature Map, or the indices refer to nothing.
CategoryConcept Steer/Features

Inputs (8)

NameTypeDefaultDescription
conditioningCONDITIONING
sae_pathSTRINGAbsolute path to SAE weights (.pt file). Must match the SAE used in Feature Map.
feature_indicesSTRING0Feature index or comma-separated list of indices. Single index → one output conditioning. Multiple indices → batch output (one per feature). Get indices from the Feature Map node.
probe_strengthFLOAT1.00–10How strongly to inject the feature direction. 1.0 = moderate effect (~30% of conditioning norm). 2.0-5.0 = strong effect, dominates the image. Start at 1.0 and increase until the concept is visible.
inject_modeCOMBOadd'add' = adds feature direction to existing conditioning. The prompt still matters, feature concept is layered on. 'replace' = replaces conditioning with pure feature direction. Shows the raw concept with no prompt influence.
replace_blendFLOAT0.000–1Only used in 'replace' mode. Blend between pure feature direction (0.0) and original conditioning (1.0). 0.0 = pure feature, 0.5 = half-and-half, 1.0 = no change.
sae_expansionINT82–128SAE expansion factor (auto-detected for transcoders). 8x for trained SAEs, 64x for pretrained transcoders.
transcoder_repoSTRINGHuggingFace repo for pretrained transcoders (e.g. 'mwhanna/qwen3-4b-transcoders'). Auto-downloads on first use. Leave empty to use sae_path instead.

Outputs (2)

NameTypeDescription
CONDITIONINGCONDITIONING
PROBE_INFOSTRING