Seed 1.6 Chat
A multimodal LLM that lives in your graph
- image_1
- image_2
- image_3
- image_4
- response
- full_conversation
- session_status
ComfyUI is usually about generating images and video, but a growing number of workflows want an LLM in the middle of the graph - to write a prompt from an idea, to critique a result, to act as a multimodal judge. That's what SeedChat is for. It wraps ByteDance's Seed 1.6 chat models (the seed-1-6-250615 and faster seed-1-6-flash-250715) as a ComfyUI node, and because the underlying API accepts images, this one node is simultaneously a chat node and a vision node: attach up to four images and it'll analyze what it sees. ByteDance's chat line is another of its closed, API-only products, so think of this as renting the model per call rather than running it.
The genuinely nice part for a ComfyUI user is session memory. The node keeps a conversation in memory keyed by a session_id, so you can run the graph repeatedly and it remembers what came before - the start of a genuinely agentic workflow where a later node asks follow-up questions about an earlier result.
How it works
Each run sends a chat completion request to /chat/completions with your message history, thinking mode, and reasoning effort. Images are base64-encoded inline with a detail level. Session state lives in a class-level dictionary, so it survives across graph runs but not across ComfyUI restarts. Sessions auto-trim to the last 20 messages to stop memory bloat, and clear_session or a fresh ComfyUI session resets things.
Inputs and outputs that matter
- user_message - what you ask this run.
- model -
seed-1-6-250615for quality,seed-1-6-flash-250715for speed (the default). - session_id - name the conversation; same ID = same memory.
- use_session_memory - keep context across runs or treat each run as one-shot.
- system_message - role/format setup; changing it resets the session's system prompt.
- image_1 through image_4 and image_detail (auto/high/low) - the vision side.
- thinking_mode and reasoning_effort - the reasoning dials.
- external_history - paste a "User:/Assistant:" transcript to import context.
Outputs: response (the answer), full_conversation (formatted history, great for saving), and session_status (memory state and message count).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/FloyoAI/ComfyUI-Seed-API
cd ComfyUI-Seed-API
pip install -r requirements.txt
Restart, set your BytePlus API key in config.ini or BYTEPLUS_API_KEY. Manager: search "ComfyUI Seed API Integration".
Where people get burned
The trap is assuming session memory works across ComfyUI restarts - it doesn't; it's in-process, so a restart wipes your threads. Re-run with use_session_memory off if you want deterministic single-shot answers (the model is chat, not a pure function, so outputs vary run to run). Also, thinking mode adds latency and cost; the flash model with thinking off is the snappy combo for simple prompt-writing. And yes, this is paid usage on a BytePlus account - for heavy prompt-critiquing loops, that line item adds up faster than you'd expect.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | seed-1-6-flash-250715 | 2 options: seed-1-6-250615, seed-1-6-flash-250715 |
| user_message | STRING | — | |
| session_id | STRING | default | Unique identifier for conversation session |
| use_session_memory | BOOLEAN | false | Keep conversation context in memory |
| system_messageopt | STRING | — | |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_detailopt | COMBO | auto | 3 options: auto, high, low |
| thinking_modeopt | COMBO | enabled | 2 options: enabled, disabled |
| reasoning_effortopt | COMBO | medium | 3 options: low, medium, high |
| clear_sessionopt | BOOLEAN | false | Clear conversation memory for this session |
| external_historyopt | STRING | Import external conversation history |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| response | STRING | — |
| full_conversation | STRING | — |
| session_status | STRING | — |