L'image

à consulter, pas à lire d'affilée. Un relevé de la littérature, pas une mesure d'ici.

Un jeton d'image n'est presque jamais un numéro de ligne dans une table. Dans tout ce qui comprend une image, c'est un vecteur. Cette seule distinction commande le vocabulaire, la facture et ce qu'on perd.

1. Deux chemins, et ils ne se ressemblent pas

COMPRENDRE — patchs continus GÉNÉRER en discret — quantification l'image découpée en carrés de 28 px un carré = un jeton la même découpe, la même grille aplatir, puis projection linéaire apprise encodeur, puis plus proche voisin 0,12 · −0,84 · 0,31 · … · 0,07 dictionnaire appris : 8 192 entrées le jeton EST ce vecteur. 4127 un numéro parmi 8 192 aucun vocabulaire aucun numéro, aucun arrondi : la seule perte est celle du carré lui-même. l'arrondi est définitif
À gauche, le chemin de tous les modèles de compréhension déployés. À droite, celui qu'impose une tête qui prédit le jeton suivant par softmax : un softmax choisit dans une liste finie, il lui faut donc un vocabulaire fini.

« Patchification » serait le mot juste

On découpe, on aplatit, on projette. Rien n'est cherché dans une table, donc rien n'est arrondi. Chez Claude les carrés font 28 px, chez OpenAI 32 px, et Qwen3-VL arrive au même 32 par des patchs de 16 px fusionnés 2×2. Il n'y a donc pas de « convergence sur 28 px » : Claude y reste seul, Gemini a quitté le pixel. C'est la taille du carré qui varie, jamais la nature : le jeton reste un vecteur. Le son se lit pareil — Whisper n'a aucun livre de codes.

Claude — platform.claude.com/docs · vision · OpenAI — developers.openai.com · images-vision · Qwen3-VL — huggingface.co · config.json

Ce n'est pas une loi, c'est un défaut économique. Chameleon, Emu3 et LongCat-Next discrétisent aussi l'entrée et le paient environ 1 % de performance sur OCRBench, DocVQA et MathVista. Leur contrepartie est architecturale : un seul espace, un seul softmax, et la génération devient possible plus tard sans refonte.

arxiv.org/html/2603.27538v1

2. Ce que coûte une image, en 2026

Quatre modèles, trois arithmétiques différentes, et un piège : un chiffre donné en exemple par la documentation et un chiffre dérivé de la formule publiée n'ont pas le même statut. Les cases vides sont des cases où rien n'est publié — et tout ce tableau donne des conventions de facturation, pas des spécifications de tokeniseur : aucun fournisseur ne publie le sien. Pour ramener ces jetons à une page de texte ou à une seconde de vidéo, le calculateur de budget les met dans la même monnaie.

modèlela règle publiée200×2001024×1024
Claude⌈l/28⌉ × ⌈h/28⌉64 publié1 369 dérivé
GPT-5.4patchs de 32 px, barème par cas—1 229 publié
Gemini 3forfait par média, hors dimensions1 120 défaut1 120 défaut
Qwen3-VLpatch 16 px + fusion 2×2—1 024 dérivé

Gemini 3 ne regarde plus les pixels

C'est un forfait par média et par niveau : 280, 560, 1 120 ou 2 240 jetons selon media_resolution, défaut 1 120. Le levier de budget n'est plus « redimensionner avant d'envoyer », c'est « choisir le niveau », réglable partie par partie dans un même prompt. Corollaire dérivé : la même image coûte 1 120 jetons envoyée comme image et 70 comme trame vidéo — un facteur 16, à mesurer soi-même plutôt qu'à croire.

Google — ai.google.dev · media-resolution

Les plafonds, qu'on découvre trop tard. Claude : 1 568 jetons en palier standard, 4 784 en haute résolution depuis Claude 4.7. OpenAI redimensionne au-delà d'un budget de 2 500 patchs, ce qui plafonne une image à environ 3 000 jetons — le seuil de 30 000 patchs est un seuil de rejet, pas de facturation. Et la méthode ne suit pas la génération du modèle : gpt-5 et gpt-5.1 sont en tuiles, gpt-5-mini et gpt-5-nano en patchs.

platform.claude.com · vision · developers.openai.com · images-vision

3. La famille discrète, et son dictionnaire qui s'évapore

Quand il faut un vocabulaire fini, deux façons de l'obtenir. Un dictionnaire explicite : une table de vecteurs apprise, dans laquelle on cherche le plus proche voisin. Un dictionnaire implicite : on arrondit chaque dimension du vecteur sur une petite grille de niveaux fixes, et le « vocabulaire » n'est plus qu'un décompte — le produit de ces niveaux. Rien n'est stocké, rien n'est appris.

étapece qu'elle ajoutele vocabulaire
VQ-VAEplus proche voisin dans un dictionnaire appris en même temps que le modèleexplicite
VQGANon ajoute un juge qui distingue vrai et reconstruit : le décodeur produit des textures nettes au lieu du flouexplicite — 8 192 chez Chameleon
FSQarrondi de chaque dimension sur des niveaux fixesimplicite — (8,8,8,5,5,5) = 64 000
LFQon ne garde que le signe de chaque canalimplicite — 2¹⁸ = 262 144
BSQprojection sur une hypersphère, puis binarisation par axeimplicite — aucune table à stocker

Le mur du codebook, et comment on l'a contourné

Un dictionnaire explicite ne se remplit pas : au-delà de 2¹¹ codes, un VQ classique tombe sous 50 % d'utilisation et n'exploite jamais plus de 2¹⁰ mots utiles — le reste est mort. FSQ tient près de 100 % et égale VQ en qualité : FID d'échantillonnage MaskGIT sur ImageNet 256, 4,534 contre 4,509, moins de 1 % d'écart (le FID compare deux ensembles d'images, plus bas est meilleur). Et il y arrive sans les béquilles du VQ — ni perte d'engagement, ni re-seeding, ni pénalité d'entropie. Les tokeniseurs discrets de NVIDIA Cosmos sont en FSQ (8,8,8,5,5,5).

arxiv.org/html/2309.15505v2 · huggingface.co · Cosmos-Tokenizer

4. Ce que la quantification fait perdre

TokBench prend des images qui contiennent du texte, les fait passer par un tokeniseur puis par son décodeur, et mesure quelle part de ce texte reste lisible dans l'image reconstruite. Toutes tailles de texte confondues :

tokeniseurnaturetexte encore lisible
VQGANdiscret8,22 %
Chameleon f16discret12,08 %
Open-MAGVIT2discret20,99 %
VAE de FLUXcontinu86,42 %

Un facteur d'environ 10, et jusqu'à 16 sur le petit texte

Meta l'écrit pour Chameleon : « A core weakness of our tokenizer is in reconstructing images with a large amount of text, therefore upper bounding the capability of our models ». Ce que le décodeur reconstruit n'est pas ce qu'il y avait : c'est du faux texte plausible, puisqu'il a été entraîné à produire des textures crédibles. La conclusion tient en une ligne — ne construis pas un modèle OCR sur un tokeniseur VQ.

TokBench · arxiv.org/pdf/2505.18142v2 · Chameleon · arxiv.org/html/2405.09818v1

5. Descendre à trente-deux jetons

TiTok recherche

La grille 2D est redondante : des carrés voisins encodent la même chose. TiTok la jette et fait passer l'image dans quelques vecteurs appris, en nombre fixé d'avance, qui deviennent la séquence. Une image 256×256 tient en 32 jetons discrets, contre plusieurs centaines pour une grille classique.

Le prix est là : le nombre de jetons ne dépend plus du contenu, et surtout aucun jeton ne correspond plus à un endroit de l'image — donc ni recadrage, ni édition locale, ni masque dans l'espace des jetons.

arxiv.org/abs/2406.07550

Troisième voie : générer en jetons continus, softmax remplacé par une tête de diffusion. C'est MAR recherche — les chiffres, et la nuance qu'on gomme toujours, sont à la question 2 de l'arbre de décision.