StringHasher
A Text Node That Knows When It Changed
- string
StringHasher looks like a joke. You give it a string, it gives you back... the same string. No transformation, no hashing output, no visible effect. But it exists for a very real ComfyUI annoyance: the engine decides what to re-run based on whether a node's inputs changed, and plain text widgets are easy for it to treat as "already done."
This node's trick is its IS_CHANGED hook. ComfyUI calls that hook to decide whether the node needs to re-execute, and StringHasher returns a hash of the string - so when you edit the text, the hash changes, and the node (and whatever hangs off it) re-runs. When the text stays the same, the hash is stable and it doesn't waste a pass. In other words: it's a text passthrough with honest change detection bolted on.
When you actually reach for it
The standard use case is forcing downstream re-execution. Some workflows hit the classic "I changed the prompt but the graph didn't regenerate" or a middle node caches its output so a text edit upstream never propagates. Threading your text through StringHasher gives ComfyUI a concrete signal that the input changed, so the whole chain refreshes.
It also earns its keep as a wiring trick: because it outputs a real STRING, you can tap any text node's value into the graph in a way that participates in change detection - useful for debugging "why didn't this re-run?" situations without rebuilding the workflow.
What you set
One input, string. One output, string - the identical text, unchanged. The entire behavior is the change-tracking, which is the point.
Honest caveat: this is a niche tool in an already-niche pack. If you've never hit a stale-cache text problem, you may never need it. But when you do hit one - and you will, eventually, with a big graph and an edited prompt that stubbornly refuses to regenerate - a node whose whole identity is "I noticed you changed me" is a clean, minimal fix that doesn't add any moving parts.
Install
Part of comfyui-rapidfire, zero extra dependencies. Install via ComfyUI Manager (search "comfyui-rapidfire") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Zeks/comfyui-rapidfire
then restart ComfyUI.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string | STRING | — |