Building my own small tools I've been stuck on the same question more than once: one capability, three quality tiers, one button in the UI. Which tier is the default? My first instinct was always that users don't want to think, so give them the best one. I've since changed that, because the best tier is the most expensive one on first use, and the person paying that cost hasn't decided whether to use your tool yet. My answer now is the middle-to-small tier, and the rest of this is how I got there.
I've been poking at ImgIng's three matting tiers as a worked example: fast is ISNet INT8 at about 42 MB, pro is BEN2 FP16 at about 219 MB, max is BiRefNet HR-Matting FP16 at about 447 MB. The one marked "recommended" in the UI is the smallest.
Running one hand-held product photo through all three, there is a difference, but not the "each one a bit more refined" kind. The fast tier drops the hand entirely and keeps only the bottle. Pro and max both keep the hand, and separating those two means zooming into local regions. So 42 MB to 219 MB buys a clear capability jump, while 219 MB to 447 MB buys finer edges and more complete semi-transparent transitions — and on most jobs you won't see the second one.
Ten times the size splits into two separate bills. Picking a tier for the first time downloads the model, and 447 MB on ordinary home bandwidth starts at tens of seconds. After that it lives in browser cache and isn't fetched again unless the user clears site data or opens a private window. So "expensive" is only true once. The problem is that the once is the run that decides whether they come back.
The obvious counterargument is that if it's only expensive once, why not default to the biggest? Because a default's cost isn't spread evenly. Existing users already have theirs cached and are unaffected by the choice. New users get a tool that makes them wait tens of seconds before they've seen it do anything, at the exact moment their trust in it is zero. Making the heaviest tier the default charges the least patient group for the benefit of the most demanding one.
What ImgIng does is lay all three out, mark the smallest "recommended", and put size plus suitable material under each of the other two — hair, mesh, glass, semi-transparent edges. I think the information density is right: the default makes one decision for the user without hiding it, so anyone who needs the heavier option can see both that it exists and why they'd want it.
My rule for defaults now has two conditions: good enough for most tasks, and cheapest possible first run. Only the tier satisfying both gets to be default; the strongest one should be an opt-in. This also explains why "sort by quality, take the first" is wrong — quality ranking is for people who have already decided to use the thing, and a default is for people who haven't. Different audiences.
One last note on cost, since it's the part solo devs like hearing. Pushing this work onto the client kills my server bill, which genuinely matters when it's just me. But that cost didn't evaporate, it turned into download, memory and waiting on the user's machine. Own that when you pick a default. Don't enjoy zero server cost while quietly making every new visitor fetch 447 MB.

Top comments (0)