Groq Chat
Groq Chat — the LLM node that answers before you finish dragging it in
- image_input
- response
- status
- help
Groq's whole thing is speed. Their LPU hardware runs Llama 3.3 70B at roughly 280 tokens per second and the smaller 8B model at over twice that - so an in-workflow LLM stops feeling like a waiting room and starts feeling like part of the graph. If you're generating prompts per-image in a batch or rewriting a caption on every run, Groq Chat is the node that makes that loop tolerable. The OpenRouter Chat node in the same pack is the generalist; this one is the specialist for "I want it fast, from a single provider, for free-ish."
The other real difference: Groq's model list is fetched live from their API (cached for five minutes, same Refresh-to-update dance as its sibling), and it's categorized into Featured, Production, and Preview tiers. That matters because Groq ships preview models that can vanish on short notice - the node's own docs tell you to treat anything not labeled Production as evaluation-only. Don't build a workflow you depend on around a preview.
How it works
Same architecture as OpenRouter Chat, different phone number: it POSTs to Groq's OpenAI-compatible endpoint at https://api.groq.com/openai/v1/chat/completions. Messages are assembled in the standard OpenAI format, vision images get base64-encoded into the user message, and the response comes back as plain text or JSON. There's an automatic retry loop with exponential backoff for rate limits and transient 5xx errors (max_retries, 0–5), plus a debug_mode that surfaces the actual request error instead of a shrug.
One genuine Groq quirk: vision models in this node (Llama-4 Scout and Maverick) reject system prompts. The README and the tooltips both say it, and it bites everyone once - if your request 400s on a vision run, flip send_system to "no" and it'll go through.
The inputs that matter
api_key- from console.groq.com/keys. Required, and - same warning as its sibling - plain-text visible in the workflow. Clean it out of anything you share.model- dropdown fetched live from Groq, defaulting tollama-3.3-70b-versatile. "Manual Input" +manual_modelfor custom ids.user_prompt- required; for vision, this is the question about your image.send_system- yes/no toggle. Set to "no" for vision models (see above).max_completion_tokens- caps response length; Groq models differ wildly here, check the model card rather than trusting the 131,072 ceiling.response_format-textorjson_object.temperature- 0.7 default; 0.0–0.3 for deterministic, 0.7–2.0 for variety.
Outputs are response (the generated text/JSON), status (model used, seed, token counts - this is how you watch cost on the free tier), and help (static usage text).
Installing it
It ships in the same pack as OpenRouter Chat, so it's the same one-time install. ComfyUI Manager: search ComfyUI-EACloudNodes. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/EnragedAntelope/ComfyUI-EACloudNodes
cd ComfyUI-EACloudNodes
pip install -r requirements.txt
Restart, and both chat nodes plus OpenRouter Models appear. The dependencies (Pillow, requests, torch, torchvision) are things every ComfyUI install already has, and there are no model files to fetch. It works in cloud-hosted ComfyUI too, which is the pack's stated design goal - the node only needs outbound HTTPS and a key.
Common issues
- Vision 400 errors - almost always the system prompt.
send_systemto "no". - "Model not found" on the dropdown - a preview model got pulled. Switch to a Production-tier model.
- Rate limits on the free tier - Groq throttles hard.
max_retrieswill retry recoverable ones; for the rest, wait or pick a faster (smaller) model. - Key hygiene - as with any of these cloud nodes, the key lives in the workflow. It's a third-party pack running unsandboxed Python; check the source before you trust it with a key, the way you should with every custom node.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | ⚠️ Your Groq API key from https://console.groq.com/keys (Note: key will be visible - take care when sharing workflows) | |
| model | COMBO | llama-3.3-70b-versatile | Select a Groq model or choose 'Manual Input'. Categories: Featured, Production (stable), Preview (evaluation). Use ComfyUI Refresh to update model list from Groq API. |
| manual_model | STRING | Enter a custom model identifier (only used when 'Manual Input' is selected above). Leave empty if using dropdown selection. | |
| system_prompt | STRING | You are a helpful AI assistant. Please provide clear, accurate, and ethical responses. | Optional system prompt to set the AI's behavior and context. Note: Vision models may not support system prompts - toggle 'send_system' to 'no' if needed. |
| user_prompt | STRING | Main prompt or question for the model. For vision tasks, describe what you want to know about the image. | |
| send_system | COMBO | yes | Toggle system prompt sending. Set to 'no' for vision models that don't accept system prompts (e.g., Llama-4 vision models). |
| temperature | FLOAT | 0.700–2 | Controls response randomness and creativity. Lower values (0.0-0.3) = more focused and deterministic. Higher values (0.7-2.0) = more creative and varied. |
| top_p | FLOAT | 0.700–1 | Nucleus sampling threshold. Controls diversity of word choices. Lower values (0.0-0.3) = more focused vocabulary. Higher values (0.7-1.0) = more diverse word selection. |
| max_completion_tokens | INT | 10001–131072 | Maximum number of tokens to generate in the response. Note: actual limit varies by model (check model documentation). Range: 1-131,072. |
| frequency_penalty | FLOAT | 0.00-2–2 | Penalizes tokens based on their frequency in the output. Positive values reduce repetition. Range: -2.0 to 2.0. Note: not all models support this parameter. |
| presence_penalty | FLOAT | 0.00-2–2 | Penalizes tokens that have already appeared in the output. Positive values encourage topic diversity. Range: -2.0 to 2.0. Note: not all models support this parameter. |
| response_format | COMBO | text | Response format: 'text' for natural language, 'json_object' for structured JSON output. When using JSON, instruct the model in your prompt to output JSON. |
| seed_mode | COMBO | random | Seed behavior control: 'fixed' uses the seed_value below, 'random' generates new seed each time, 'increment' increases by 1, 'decrement' decreases by 1. |
| seed_value | INT | 00–9007199254740991 | Seed value for reproducibility when seed_mode is 'fixed'. Use same seed + parameters for identical outputs. Valid range: 0-9007199254740991 (JavaScript safe integer limit). |
| max_retries | INT | 30–5 | Maximum number of automatic retry attempts for recoverable errors (rate limits, temporary server issues). 0 disables retries. Range: 0-5. |
| debug_mode | COMBO | off | Enable detailed error messages and request debugging information. Useful for troubleshooting API issues or parameter problems. |
| image_inputopt | IMAGE | Optional image input for vision-capable models. Currently supported: meta-llama/llama-4-scout-17b-16e-instruct. Maximum size: 2048x2048. | |
| additional_paramsopt | STRING | Additional Groq API parameters in JSON format. Example: {"stop": ["\n"], "min_p": 0.1}. Use for advanced model-specific parameters not exposed in the UI. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| response | STRING | — |
| status | STRING | — |
| help | STRING | — |