Put schnell on the fast product tier and reserve dev for premium finals once a composition is selected.
“Luxury solid ceramic perfume bottle, completely opaque matte lilac glaze, rectangular modern flacon, matching ceramic stopper, thin polished chrome collar, warm travertine plinth, soft peach studio backdrop, commercial product photography, portrait composition”
FLUX Dev · premium · 960 × 1472Define the product decision each tier serves
Schnell earns its place by making generation cheap and responsive enough to explore. Dev earns its place when additional fidelity, prompt adherence, or finish increases the chance that a selected image ships. Without those distinct decisions, a tier label is merely pricing decoration.
A typical flow produces several fast concepts, captures a shortlist, then renders one or two premium candidates. The user can always keep the accepted draft. This avoids forcing premium spend and avoids presenting the second model as a guaranteed enhancement.
| Dimension | FLUX schnell | FLUX dev |
|---|---|---|
| Product stage | Draft and iterate | Refine selected work |
| Runware ID | runware:100@1 | runware:101@1 |
| Internal 960×1472 cost* | $0.0006 | $0.0070 |
| Default quality value | fast | premium |
Run a blinded test on your acceptance rubric
Collect representative prompts and randomize output labels. Review prompt adherence, composition, visual artifacts, anatomy, text handling, brand suitability, editing minutes, and overall acceptance. Record latency and provider cost separately.
The internal portrait cost ratio between the two Runware routes is roughly 11.7 at the supplied settings. Dev does not need to be eleven times ‘better’; it needs to create enough extra value on the small promoted subset to improve the total workflow.
- Use identical prompts and dimensions
- Separate aesthetic preference from task success
- Measure editing time to an approved asset
- Include failure and moderation outcomes
- Repeat after model or provider changes
Make promotion explicit in the API and interface
The API uses quality=fast or quality=premium. This is clearer than exposing an ever-changing model menu to every end user. Advanced clients can pin a provider and exact ID, but ordinary workflows should express the desired service level.
A promotion operation should receive a new idempotency key because the request is different. Carry forward the prompt-template version and chosen controls. Where seed behavior differs, warn that composition may change.
premium_payload = {**draft_payload, "quality": "premium"}
result = client.generate(
premium_payload,
operation_id=f"asset:{asset_id}:premium:v1",
)Preserve the requested tier during provider failover
Fast and premium use separate candidate orders. A premium timeout should move to an eligible premium implementation, not silently return a fast image. If no reviewed premium fallback is configured, returning an honest temporary failure is better than violating the product promise.
Expose the provider and model used in metadata. When a fallback changes visual behavior, support and evaluation teams need to know which route produced the asset.
Questions about FLUX schnell vs dev API
Is FLUX dev always higher quality?
It is positioned as the premium route, but quality is task-specific. Validate the difference on a blinded acceptance test.
How much more did dev cost in the internal benchmark?
At 960×1472 on the supplied Runware measurements, $0.007 versus $0.0006, or roughly 11.7 times. These values are not guaranteed prices.
Can I use the same seed across tiers?
You can pass it where supported, but identical composition is not guaranteed across models or providers.
Will premium ever fall back to schnell?
Not in the default architecture. Premium and fast have separate eligible routes.