Doubao API Assistant (PixNodes)
ByteDance's LLM with vision, inside ComfyUI
- images
- text_response
- history
Doubao is ByteDance's family of LLMs, served through Volcano Ark (火山方舟), and Pix_DoubaoApiNode puts it in your graph with one feature most of the pack's LLM nodes lack: vision input. Wire an image into the images port, pick the vision model, and the node asks the model to describe what it sees - image captioning, prompt reverse-engineering, composition critique, all inside ComfyUI. That makes this the most capable of the PixNodes LLM trio, and the one with the most moving parts.
Inputs mirror Pix_DeepSeekApiNode - api_key, base_url (default https://ark.cn-beijing.volces.com/api/v3), model, prompt, system_instruction, seed, and the auto-style max_tokens/temperature, plus optional top_p, history, input_file_text - with the addition of images (IMAGE tensor). The model menu is four entries covering the current seed line: two doubao-seed text models, a code-preview model, and doubao-seed-1-6-vision-250815 for vision. Picking the wrong model for your task is the most common mistake - the text models will happily ignore the images input, so match model to job.
Vision is handled by encoding the image tensor to base64 PNG in memory and sending it as a data:image/png;base64,... URL in the OpenAI-compatible message format. One image at a time, no file on disk, no VRAM - the whole thing is a network call to Ark. The history output feeds back into the history input for multi-turn, same as the DeepSeek node, and the same IS_CHANGED hashing means it re-runs whenever inputs change (with images excluded from the hash - deliberate, so a new queue pass doesn't necessarily re-send a big image).
Key handling is the pack standard: enter once, saved to ComfyUI/user/PixNodes/api_key.json, blank on later runs. Auth failure returns "Error: API Key invalid." as a string output rather than crashing.
Getting a key is the friction point. Volcano Ark is ByteDance's cloud platform with a real onboarding flow - you create a project, get an API key, and (for some models) need an endpoint ID rather than just a model name. The default base_url is the standard Ark v3 endpoint; if you're using a custom endpoint, that field is why it's editable. This is a China-ecosystem service, so if you're outside that region, expect the account setup to be the hardest part of the whole node - the node itself is simple once the key exists.
Install is the standard PixNodes path - ComfyUI Manager, search PixNodes, restart - or:
cd ComfyUI/custom_nodes
git clone https://github.com/pixixai/Comfyui-PixNodes
cd Comfyui-PixNodes
pip install -r requirements.txt
then restart. The openai dependency is what this node (and the DeepSeek sibling) needs; PIL/numpy are already in ComfyUI.
Honest take: if you're already in the ByteDance ecosystem this is a strong choice - cheap, fast, vision-capable. If you're not, the account onboarding may not be worth it just for one node; the DeepSeek node is the lower-friction entry point, and for local vision captioning the KB's lineup (JoyCaption, Florence-2) beats any API on cost and privacy.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| base_url | STRING | https://ark.cn-beijing.volces.com/api/v3 | — |
| model | COMBO | doubao-seed-1-6-flash-250828 | 4 options: doubao-seed-1-6-flash-250828, doubao-seed-1-8-251215, doubao-seed-code-preview-251028, doubao-seed-1-6-vision-250815 |
| prompt | STRING | — | |
| system_instruction | STRING | You are a helpful assistant. | — |
| seed | INT | 00–18446744073709550000 | — |
| max_tokens | STRING | auto | — |
| temperature | STRING | auto | — |
| top_popt | STRING | auto | — |
| historyopt | STRING | — | |
| input_file_textopt | STRING | — | |
| imagesopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| text_response | STRING | — |
| history | STRING | — |