EcoHash LLM
A prompt-enhancer LLM inside ComfyUI that never touches your VRAM
- STRING
An LLM in the graph is no longer a gimmick - prompt enhancement is the most common text job in ComfyUI, and it has been mainstream for a while. EcoHash LLM is that node with a twist: the model runs on EcoHash's servers, not your GPU. You type "a cat astronaut floating above the moon," it hands back a fully-fleshed, image-prompt-ready paragraph, and that STRING output plugs straight into a prompt widget - this pack's Image Generate node or any local sampler.
The modes are the whole point
The node ships four canned modes rather than making you build your own system prompts:
- prompt_enhance (the default) - rewrites your rough idea into one detailed English image prompt: subject, style, lighting, composition, quality tags. The system prompt is baked into the source and ends with "Output only the prompt," which is the right design - it stops the model from wrapping your prompt in chat scaffolding ("Here is your enhanced prompt:") that then leaks into your conditioning. That dirty-chat-output failure is the #1 thing that makes LLM prompt nodes worse than no node at all, and this one sidesteps it.
- translate_to_english - turns non-English text into natural English that works as a generation prompt.
- chat - plain chat, no system prompt. Useful for general text work in the graph.
- custom - uses the
system_promptinput you supply. Only mode where that input matters.
How it works
Under the hood it's a POST /chat/completions with the mode's system prompt prepended and your text as the user message. The model dropdown is a live catalog list - right now 18 hosted options including llama-3.1-8b-instruct, gemma-4-31b-it, DeepSeek-V4-Flash/Pro, GLM-5.2, gpt-oss-20b, and assorted Qwen3 variants. That's the real argument for the API version: a 31B Gemma or a frontier-class DeepSeek run server-side, and prompt rewriting is so token-cheap it's nearly free. The honest counterpoint is that for most enhancement a small local model is enough and costs nothing per call - you reach for the API when you want the big hosted models without paying for the hardware to run them.
The inputs that matter
- mode -
prompt_enhancedefault; switch tochat/translate_to_english/custom. - text - your input. Multiline.
- temperature - 0–2, default 0.7. Lower for more consistent rewrites.
- max_tokens - default 1024, up to 16384. See the gotcha below.
- system_prompt - only read in
custommode.
Output is a single STRING, which you can also drop into a text node, a PreviewAny, or feed onward into another LLM.
Where people get burned
- Reasoning models return empty. GLM-* and Qwen3.5/3.6-* variants think before they talk, and they can spend the entire
max_tokensbudget on internal reasoning and return nothing. The node raises a specific, helpful error for exactly this - raisemax_tokens(try 1024+) and retry. Default is already 1024, so you're mostly safe unless you lowered it. - The cache strikes again. Identical graph, no new call. Bump any input to force a fresh completion.
- 401 / 402 - invalid key, or credit ran out. Same for every node in this pack.
- Filters. The hosted models enforce their own moderation. If the enhancement you want trips a refusal, there's no local abliterated fallback here - that's the permanent trade for running the big models via API.
Install
ComfyUI Manager: search EcoHash, install "ComfyUI-EcoHash", restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/ecohash-ai/ComfyUI-EcoHash.git
cd ComfyUI-EcoHash
pip install -r requirements.txt # just `requests` - no torch, no transformers
Get a key at ecohash.com (free starter credit) and set it via the ECOHASH_API_KEY env var or a config.ini copied from config.ini.example. No key widget exists on any node, by design, so shared workflow JSONs stay clean. Chain it into Image Generate with mode = prompt_enhance and you've got the pack's headline workflow. The pack is brand new with zero community track record yet, so treat it like any fresh custom node: it's MIT-licensed and the source is right there to skim, but you're sending prompts to a service you just met.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | 18 options: llama-3.1-8b-instruct, gemma-4-31b-it, qwen3.5-35b-a3b, DeepSeek-V4-Flash, DeepSeek-V4-Pro, qwen3-omni-30b-a3b-instruct, +12 | |
| mode | COMBO | prompt_enhance | 4 options: chat, prompt_enhance, translate_to_english, custom |
| text | STRING | — | |
| system_prompt | STRING | Used when mode = custom | |
| temperature | FLOAT | 0.700–2 | — |
| max_tokens | INT | 10241–16384 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |