# FLUX Pro vs Dev vs Schnell: Choosing the Right Variant

> Published 2026-08-28 · https://www.promptzone.com/florence_liu/flux-pro-vs-dev-vs-schnell-choosing-the-right-variant-31g4

By the end of this you should be able to pick a FLUX.1 variant on purpose rather than by default, set its sampler parameters correctly the first time, and know which of the three you are actually licensed to ship. The three models share an architecture but not a license, and two of them are distilled in ways that silently break settings carried over from Stable Diffusion habits.

## One architecture, three release channels

Black Forest Labs published the FLUX.1 family in August 2024: rectified flow transformers in the 12-billion-parameter class, released simultaneously in three forms. The common mistake is reading Pro, Dev and Schnell as a quality ladder. They are three different trade-offs between openness, inference cost and fidelity to the original training run.

- **FLUX.1 [pro]** is closed. You reach it through the Black Forest Labs API or a hosting partner such as Replicate or fal. There are no weights to download, so nothing loads locally.
- **FLUX.1 [dev]** ships open weights on [Hugging Face](https://huggingface.co/black-forest-labs/FLUX.1-dev) under a non-commercial license. It is a guidance-distilled derivative of pro.
- **FLUX.1 [schnell]** ships under Apache 2.0, also on [Hugging Face](https://huggingface.co/black-forest-labs/FLUX.1-schnell). Schnell is German for fast; it is timestep-distilled to land an image in a handful of steps, and its license is the permissive one.

For a commercial product the decision is often settled by that license line alone.

![A glass prism splitting a beam of white light into a colour spectrum](https://cdn.stocksnap.io/img-thumbs/960w/MCYDKCOARG.jpg)

## What distillation actually removes

Both open variants are distilled, and distillation is not free. What gets compressed away is the part of the sampling loop you used to control by hand.

Classifier-free guidance in a conventional diffusion pipeline runs the model twice per step: once on your prompt, once on the negative prompt, then pushes the result away from the negative. FLUX dev bakes a guidance value into the model as a conditioning input instead. You still get a guidance slider, but it is a learned embedding rather than a real two-pass computation, which is why negative prompts do nothing in a stock dev workflow.

Schnell goes further and distills the step count as well. It is trained so that a very short trajectory still lands on a plausible image, and it expects guidance to be off entirely.

| | FLUX.1 [pro] | FLUX.1 [dev] | FLUX.1 [schnell] |
| --- | --- | --- | --- |
| Weights | API only | Open | Open |
| License | commercial API terms | non-commercial | Apache 2.0 |
| Distillation | none published | guidance | guidance + timestep |
| Typical steps | handled by the endpoint | roughly 20-30 | 1-4 |
| Guidance | exposed by the API | embedded, around 3-4 | leave CFG at 1 |
| Negative prompt | no | no, without extra tricks | no |
| LoRA support | not locally | yes, large ecosystem | yes, smaller ecosystem |

## Settings that matter, per variant

### schnell

Set steps to 4 and stop touching it. Going to 10 or 20 does not buy detail; it tends to bake in contrast and burn highlights, because the model was never trained to spend that long on the trajectory. Set CFG to 1.0 as well; anything higher gives scorched, oversaturated output. Euler with a simple schedule is the safe pairing.

### dev

Steps in the 20-30 band, distilled guidance around 3.0 to 4.0. Lower guidance loosens composition and helps with photographic looks; higher guidance tightens prompt adherence and pushes the image toward the illustrated, over-lit default. If you are stacking [LoRAs](/tara_suzuki/best-flux-loras-in-2026-for-realism-and-how-to-stack-them-1mck), drop guidance slightly. LoRA weight and guidance compound, and the image goes plastic.

### pro

There is nothing to tune locally. What you buy is undistilled behaviour: steadier hands, better text rendering, more compositional patience on long prompts. What you give up is the whole local toolchain, plus a per-image cost that scales with volume.

![A wolf standing in tall grass with the sun low on the horizon](https://cdn.stocksnap.io/img-thumbs/960w/IQ2LORUXQB.jpg)

## A prompt worth keeping as a benchmark

When you compare variants, use one prompt that tests several things at once rather than a gallery of pretty ones. This one, which circulated on [Civitai](https://civitai.com/images/25613643), is a good example:

```plaintext
wolf wearing sheep costume, many sheep in the background, sunset, ambient lighting
```

It works as a comparison harness because it asks for three separable capabilities: a concept blend the model has to reason about rather than copy (a wolf wearing a costume, not a wolf standing next to a sheep), a countable background element, and a lighting condition. Run it on schnell and dev at the same seed. Schnell will usually give you a wolf and some sheep in the same frame; dev is more likely to actually dress the wolf. That difference, object relationships holding together under a compound instruction, is what the extra steps and real guidance are buying.

## Failure modes worth knowing before you commit

**Schnell** flattens texture. Skin, fabric and foliage come back smoother than they should be, and long multi-clause prompts lose their tail, with the last third of the sentence quietly dropped. It is good for iteration and thumbnails, and for anything where you generate hundreds of candidates and pick.

**Dev** has a recognisable house style: even lighting, smooth skin, and a facial structure that recurs across seeds often enough that people gave it a nickname. Realism LoRAs and lower guidance are the usual counters. The bigger constraint is the license. Non-commercial means non-commercial, including the output pipeline of a paid product, and that is worth reading properly rather than assuming.

**Pro** fails on cost and lock-in rather than on pixels. A workflow built on it cannot be moved to your own hardware later.

There is a hardware floor on both open variants too. The full bf16 checkpoint expects a 24 GB card; fp8 and GGUF quantisations bring it into the 8-12 GB range at some cost in fine detail, and schnell tolerates quantisation better because it does less work per image.

![A woodland trail splitting into three separate paths](https://cdn.stocksnap.io/img-thumbs/960w/ZOLTV3MKC4.jpg)

## Choosing, in four questions

1. **Are you shipping this commercially without negotiating a separate license?** If yes, schnell is the only open answer. Stop here.
2. **Do you need LoRAs, ControlNet, inpainting or a local pipeline?** If yes, you are on dev or schnell regardless of what pro can do.
3. **Is per-image quality the binding constraint at low volume?** That is the case for pro: a hero image, a client comp, a print asset.
4. **Are you still iterating on the prompt?** Draft on schnell, finish on dev. Two models in one workflow is normal, not a compromise.

## Takeaways

- License first, quality second. Apache 2.0 on schnell is the single most consequential difference between the three.
- Distilled models are not simply faster models. Negative prompts and high CFG are gone, and using them anyway degrades the output.
- Schnell at 4 steps and CFG 1; dev at 20-30 steps and guidance near 3.5. Those two defaults cover most work.
- Keep one compound benchmark prompt and re-run it whenever you change variant, quantisation or LoRA stack.

## Related reading

- [FLUX vs Ideogram: How to Compare Two Image Models](/sloane_pritchard/flux-vs-ideogram-how-to-compare-two-image-models-35om)
- [Training a FLUX LoRA: Dataset, Captions and Settings](/santiago_saleh/training-a-flux-lora-dataset-captions-and-settings-59m1)
- [Spiral Illusion Images with the QR Monster ControlNet](/quinn_saito/spiral-illusion-images-with-the-qr-monster-controlnet-1li4)
