Flux Dev (TOGETHER)
The 'Flux Dev' Node That's Secretly Running Schnell — for Free
- IMAGE
Let's get the elephant out of the room first: this node is named "Flux Dev" but it does not call FLUX.1-dev. Look at the source and the FluxDev.generate_image method hits model="black-forest-labs/FLUX.1-schnell-Free" - the free tier of FLUX.1-schnell on Together.ai's API. The name is a lie, but it's a free lie, and once you know what you're actually getting it's a perfectly good way to test an API-backed ComfyUI workflow without spending a cent.
What it actually is
This is one of three nodes in ComfyUI-FLUX-TOGETHER-API by BZcreativ (adapted from the older ComfyUI-FLUX-BFL-API). It's a hosted, API-based node: you type a prompt, it phones home to Together.ai, and the model runs on their GPUs, not yours. No 12B transformer download, no T5-XXL in your RAM, no VRAM juggling with fp8 or GGUF. If you've been fighting to fit FLUX locally, this is the "I just want the image" escape hatch - the KB's FLUX notes say the full fp16 stack exceeds most consumer cards, so for a lot of people that's a genuinely appealing trade.
Schnell, for context, is FLUX's step-distilled tier: Apache-2.0 licensed, runs in 1–4 steps, and at 4 steps quality gets close to Dev. The "Free" in the model name means it costs zero Together credits. The catch is the same one the whole Flux 1 family has: it's a mid-2026 legacy model, and the only reason to run it instead of a newer local model is that this one is free and needs no GPU.
How it works
The node reads your API key from a config.ini file into the TOGETHER_API_KEY environment variable at import time, then uses the official together Python SDK. Your prompt, size, and steps get sent to images.generate(), the response comes back as base64, and the node decodes it into a PIL image, then a numpy array, then a standard ComfyUI IMAGE tensor. It's the only node in the pack with tenacity retry wired in - three attempts with exponential backoff before it gives up. If the request eventually fails, it quietly returns a black 512×512 image instead of throwing. Keep that in mind: a black image is the node's failure mode, so when you see one, check the ComfyUI console for Error generating image:.
The inputs that matter
- prompt - multiline, and FLUX likes natural language over tag soup (the T5 encoder is what made sentence-style prompting the norm).
- steps - locked to 1–4, default 4. Don't crank it; schnell is a distilled few-step model and 4 is the ceiling for a reason.
- guidance - 0.1–10, default 3.0. FLUX's community guidance default is widely called too high at 3.5; you can't set CFG here, only this knob.
- prompt_upsampling - boolean, on by default; lets the API expand your prompt before generating. Usually leave it.
- safety_tolerance - 1–6, default "2". Together's moderation strictness.
- width / height - 256–1440, and the code enforces multiples of 32. The README's old "multiple of 8" talk is stale; keep them at 1024×1024 unless you have a reason.
- seed - optional, default -1 = random. Set it to reproduce a result.
Output is a single IMAGE tensor, so it wires straight into a SaveImage or anything else that eats images - upscalers, detailers, you name it.
Install
The pack installs normally, but there's a key-name trap in the docs. Do this:
cd ComfyUI/custom_nodes
git clone https://github.com/BZcreativ/ComfyUI-FLUX-TOGETHER-API.git
cd ComfyUI-FLUX-TOGETHER-API
pip install -r requirements.txt
Then create config.ini next to the README with:
[API]
API_KEY = your_key_here
Where people get burned: the README tells you to copy config.ini.example, but that file uses the key name together_api_key, while the code reads API_KEY from the [API] section. Copy the format above, not the example, and restart ComfyUI - the key is read once at import. ComfyUI Manager also has it if you search "ComfyUI-FLUX-TOGETHER-API". No model files download at all; the heavy dependency is just the together SDK.
Troubleshooting
- Black output → the API call failed. Check console, confirm the key is set, confirm you have network.
- "Width must be multiples of 32" → resize those dims.
- It's "free" → that's the one real advantage of this node over its paid siblings in the same pack. If your first test render comes back, you can decide whether the Pro nodes (which cost credits) are worth it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| width | INT | 1024256–1440 | — |
| height | INT | 1024256–1440 | — |
| steps | INT | 41–4 | — |
| prompt_upsampling | BOOLEAN | true | — |
| safety_tolerance | COMBO | 2 | 6 options: 1, 2, 3, 4, 5, 6 |
| guidance | FLOAT | 3.000.1–10 | — |
| seedopt | INT | -1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |