Installing OCR, three model tiers side by side, the reflex is "pick the biggest, it's most accurate". Reading what the tiers actually say, the 20x size gap doesn't buy one single thing. ImgIng uses PP-OCRv6 in three tiers. Here's what separates them: Tier Size Languages Fast ~6.0 MB Chinese, English + Latin scripts (de/es/pt/fr) Pro (default) ~31.2 MB above + Japanese Ultra ~138.8 MB above + Japanese Look at the language column first. Fast reads Chinese, English and the Latin scripts; Pro and Ultra add Japanese. So going 6 MB → 31 MB, a big chunk of those extra 25 MB is "the whole Japanese character set and its recognition" — thousands of kanji plus two kana syllabaries, a whole class of characters to learn, and the size can't stay small. Now 31 MB → 138 MB. The languages don't grow, it's the same set. That extra hundred-plus MB buys accuracy on harder samples in those same languages — Ultra's positioning says it plainly: desktop, complex, small text. The same Chinese line, printed large and clean, all three probably get right; shrink it to a blurry small-font table screenshot and the gap opens. So this segment isn't "reads more characters", it's "gets the hard-to-read characters right". Which gives the rule: size isn't a monotonic accuracy dial — it buys language coverage first, then hard-case accuracy. Answer "what languages" before "how hard is the image". Chinese and English only, image clean? The 6 MB tier is enough, no reason to drag down 138 MB. I ran one for real: a dense Chinese UI screenshot, Pro tier, recognised 69 lines / 605 characters, about 20.9 seconds on desktop Chromium, WebGPU backend. On boundaries, from the layer I actually work on — the OCR model itself isn't mine, PP-OCRv6 is integrated; I handle its download-verification and Worker scheduling. From there: all three tiers use a fixed model name, size and SHA-256, and won't silently swap at runtime. That's a hard guard against "you think you loaded Ultra, you actually got something else". A few tens to hundreds of MB, one bad chunk mid-download and the output is garbage — better to block it. Two more boundaries worth knowing before you pick a tier. One, the current unified model doesn't read Korean — a Korean UI says so honestly; don't expect a bigger tier to fix it, that's coverage, not precision. Two, handwriting, the semantics of math formulas, and arbitrarily complex table relationships are outside the current version's scope — not "the tier's too small", but the boundary of OCR itself. So the order is reversed from instinct: not size first, but whether your language is in this tier's coverage, then how hard the image is. On mobile you don't even choose — only the fast tier is exposed, to keep WeChat or Safari from being killed by memory pressure. Tool is ImgIng (imging.ai).