EmAySee Deep Reasoning Connector
The same reasoning LLM connector, now with a seed you can actually fix
- answer
- thinking
- full_raw
This is EmAySee_DeepReasoningConnector with one field added: a seed input that actually gets sent to the backend. Same three outputs (answer, thinking, full_raw), same auto-continue loop that re-posts when the model hits its token cap, same think-tag parsing that peels the chain-of-thought out of the reply. If you've read that article, you know the mechanics. The question here is only whether the seed earns its keep.
What the seed does (and doesn't)
The non-seeded connector's seed is a prop - this one isn't. The node passes seed straight into the payload, so a backend that honors it (text-generation-webui does) will produce a reproducible generation for a given prompt and seed. That's the real value: for prompt-engineering, where you want to A/B the same instruction across seeds, or for logging where a run should be reproducible later, a fixed seed turns "LLM said something random" into "LLM said this, and here's how to get it again."
Two caveats, both worth knowing before you trust it:
- The backend has to honor the field. Many OpenAI-compatible proxies and some llama.cpp setups ignore an incoming
seedor only apply it if sampling is enabled. If your output still varies with seed fixed, that's your server, not the node. control_after_generateis on by default. ComfyUI will advance/randomize the seed widget after every run. To actually reproduce a result you must turn that control off and lock the seed. The node sends the seed faithfully; it doesn't fight the UI over it.
Inputs and outputs
Everything from the sibling node carries over: prompt, system_prompt, api_url (default is again the author's LAN http://10.0.0.71:5000/v1/chat/completions - change it), api_key, model_name, reasoning_effort, the textgen sampler knobs, auto_continue/max_continues, stop_on_error. The addition is seed, an INT 0–2^64. Outputs: answer, thinking, full_raw - the same three ports, wired into text displays or downstream text-processing.
Install
Same pack, same path: ComfyUI Manager → search "EmAySee", or
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
then restart. No extra dependencies - requests ships with ComfyUI - and no model downloads. The model itself lives in your local text-generation-webui / llama.cpp server, which the node reaches over HTTP.
The honest take
If you want reproducible LLM output in ComfyUI, this is the version to reach for - the plain connector's seed is decorative and this one isn't. Just remember reproducibility here is best-effort: local samplers with XTC/DRY/min-p active are deliberately stochastic, and a "reproducible" run mostly means "same starting point, same dice." Good enough for A/B testing prompt wording, which is what most people actually need it for.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Enter prompt here | — |
| system_prompt | STRING | You are a helpful assistant. | — |
| api_url | STRING | http://10.0.0.71:5000/v1/chat/completions | — |
| api_key | STRING | supersecretkey | — |
| model_name | STRING | default | — |
| seed | INT | 00–18446744073709550000 | — |
| max_tokens_per_call | INT | 40961–8192 | — |
| truncation_length | INT | 327680–131072 | — |
| temperature | FLOAT | 0.600–2 | — |
| top_p | FLOAT | 0.950–1 | — |
| min_p | FLOAT | 0.500–1 | — |
| top_k | INT | 200–200 | — |
| repetition_penalty | FLOAT | 1.151–2 | — |
| repetition_penalty_range | INT | 20480–8192 | — |
| reasoning_effort | COMBO | low | 3 options: low, medium, high |
| xtc_threshold | FLOAT | 0.100–1 | — |
| xtc_probability | FLOAT | 0.000–1 | — |
| dry_multiplier | FLOAT | 0.80–2 | — |
| dry_base | FLOAT | 1.751–5 | — |
| dry_allowed_length | INT | 10–20 | — |
| auto_continue | BOOLEAN | true | — |
| max_continues | INT | 31–10 | — |
| stop_on_error | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| answer | STRING | — |
| thinking | STRING | — |
| full_raw | STRING | — |