β¨π· Groq VLM API
Groq VLM API β ComfyUI Node Guide
- image
- api_response
- success
- status_code
Same idea as this pack's Groq LLM API node, but pointed at images instead of text - feed it a picture, get a description or answer back, powered by Groq's hosted vision-language models rather than a local VLM eating your GPU. That's a genuinely useful trade for anything caption-adjacent: this pack's own author has separately built and shared local captioning tools (a batch JoyCaption script, among others), so a hosted-VLM node fits naturally alongside the rest of that captioning workflow - sometimes you want a fast, free, no-VRAM-cost caption instead of running a local model.
The realistic use cases: auto-captioning a folder of images for a LoRA training dataset, generating alt-text or descriptive prompts from reference images instead of writing them by hand, or building a "describe this and use the description as my prompt" pipeline where the VLM's output feeds straight into your next node.
What you're setting: model is a short list - currently Llama 4's Maverick and Scout vision variants via Groq. preset picks the behavior: use your own system_message/user_input pair, get a straight description of the attached image following your user_input instruction, or add your own to UserPrompts.json if none of the built-ins fit. image is the picture you're sending - this is the one required input that makes this node different from its LLM sibling. temperature, top_p, max_tokens, seed, max_retries, and stop behave exactly as they do on the LLM node: lower temperature for consistent descriptions, max_tokens to cap response length, max_retries to survive a flaky call. json_mode has the same rule as its sibling node - it only reliably works if your prompt literally contains the word "JSON."
Outputs: api_response is the model's description of your image - this is the field you're routing downstream, most often straight into a text node or a save-caption workflow. success and status_code are the same pass/fail pair as the LLM node; check them before trusting a response in an unattended batch run, since a failed call still returns some value in api_response that you don't want to mistake for a real caption.
Installing and configuring: identical to every Groq node in this pack, and it's the one extra step beyond the pack's normal install. Copy .env.example to .env in the pack's own root folder (not ComfyUI's root), add your Groq API key, save. Then install normally - ComfyUI Manager, search "ComfyUI-mnemic-nodes," or git clone https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes into custom_nodes, restart ComfyUI.
Common failure points: the .env step is the one people skip, and it fails silently enough that checking success/status_code first is genuinely the fastest way to debug a blank response. Beyond that, Groq's vision models are still general-purpose LLMs describing what they see, not a purpose-built captioning model - for a large batch of images destined for LoRA training, compare a handful of outputs against what you'd get from a dedicated captioner before committing this to the whole dataset, since instruction-following VLMs and captioning-trained models don't always converge on the same style of description. And as with the LLM node, this rides a free API tier, so a big batch run may hit throttling that a paid endpoint wouldn't.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Select the Vision-Language Model (VLM) to use. | |
| preset | COMBO | Select a preset prompt or use a custom prompt for the model. | |
| system_message | STRING | Optional system message to guide model behavior. | |
| user_input | STRING | User input or prompt for the model to generate a response. | |
| image | IMAGE | Upload an image for processing by the VLM model. | |
| temperature | FLOAT | 0.850.1β2 | Controls randomness in responses. A higher temperature makes the model take more risks, leading to more creative or varied answers. A lower temperature (closer to 0.1) makes the model more focused and predictable. |
| max_tokens | INT | 10241β131072 | Maximum number of tokens to generate in the output. |
| top_p | FLOAT | 1.000.1β1 | Limits the pool of words the model can choose from based on their combined probability. Set it closer to 1 to allow more variety in output. Lowering this (e.g., 0.9) will restrict the output to the most likely words, making responses more focused. |
| seed | INT | 420β4294967295 | Seed for random number generation, ensuring reproducibility. |
| max_retries | INT | 21β10 | Maximum number of retries in case of failures. |
| stop | STRING | Stop generation when the specified sequence is encountered. | |
| json_mode | BOOLEAN | false | Enable JSON mode for structured output. IMPORTANT: Requires you to use the word 'JSON' in the prompt. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| api_response | STRING | The API response. This is the description of your input image generated by the model |
| success | BOOLEAN | Whether the request was successful |
| status_code | STRING | The status code of the request |