Font matching
in browser
Finds the closest font families to any line of text.
Recognition is experimental.
Source
Model
Matches
Catalog
How it works
The crop is split into up to three small grayscale windows. A small neural network scores every font for each window, and the scores are averaged into the ranking.
Trained in PyTorch on Google Fonts rendered by Pillow and Chromium; the repository has everything to reproduce it.
- Model
- –
- Input
- Up to 3 grayscale windows, at most 128 × 48 px
- Catalog
- –
- Runs on
- Starting…
- First download
- –
| Characters | Clean | All views |
|---|
Accuracy
- 1st result
- –
- Top 5
- –
Speed
- WebGPU
- –
- CPU
- –
Why did it miss my font?
The model is still improving. It learned from clean rendered text, so photos, blur, perspective, outlines and textures throw it off, as do one or two letters, mixed fonts and look-alike families. Or the catalogs lack the font.
Can it tell weight, italic or width?
Weight and italic, yes: each match names its closest face. Width only between families, such as Roboto and Roboto Condensed.
Can it find commercial fonts?
Only the ones you own. Commercial libraries’ terms mostly forbid collecting their fonts, so the catalogs hold openly licensed ones, and a commercial font gets its closest open look-alikes. Index your own collection to find the font itself.
Does it work beyond Latin?
Yes, less reliably. In the top 5: Latin –, Cyrillic –, Arabic –, Chinese –, measured on few non-Latin families so far. Fonts without the detected script’s subset are left out.
Does it support handwriting, icons, non-fonts?
Not yet. Real handwriting, lettering and logos get only loose matches, and icons and symbols aren’t indexed. Handwriting fonts match like any other font.
Do new fonts need retraining?
No. A new font needs only its 128-number style vector, and fonts it never saw match as well as fonts it trained on. Styles unlike the training data match less well.
Can I add my own fonts?
Yes: index them on Catalogs, then choose My fonts in the catalog menu. They stay in your browser.
Can I use it from code?
Yes, in the browser or Node: npm install gpu-font. The README shows the API.
Alternatives
| Font finder | Fonts | Your fonts | Styles | Subsets | Runs on | Open source | Cost |
|---|---|---|---|---|---|---|---|
| WhatFontIsWhatFontIs Com SRL | 1,200,000+Free and commercial, many vendors | – | – | Latin | Server | No | 5 a day free, paid PRO |
| WhatTheFontMyFonts | 400,000+MyFonts | – | – | – | Server, web and apps | No | Free |
| Font FinderOwner not stated | 50,000+Web, system and commercial fonts | – | – | – | Windows app, server | No | Free |
| Photoshop Match FontAdobe | 30,000+Adobe Fonts | Installed | – | Latin, Japanese | Desktop app | No | Subscription |
| LensMixfont | 5,000+Google Fonts and other open fonts | – | Weight, italic | – | Local Python, or hosted | Non‑commercial | Free non‑commercial, paid API |
| What the Google FontSerbyte Development | 2,000+Google Fonts families | – | – | – | Server, web and Chrome extension | No | Free, unlimited |
| MatcheratorFont Squirrel | Not statedFont Squirrel, Fontspring, MyFonts | – | – | – | Server | No | Free |
| gpu-fontdy | –Google Fonts, Debian, Fontshare and more | Installed, folders | Weight, italic | – | Browser, WebGPU or CPU | MIT | Free |
Licenses
No font files ship here: previews load from Google Fonts under each family’s license, and the catalogs hold only names, links and style numbers.
A match is not a license: check a font’s terms with its foundry. Font names are their owners’ trademarks; gpu-font isn’t affiliated with them.
The code is MIT-licensed and comes without warranty.