TextVerifier: Seeing Beyond Recognition to Verify Chinese Text Rendering
Organizations: State Key Laboratory of General Artificial Intelligence, Peking University, Beijing, China · Alibaba Group · State Key Lab of CAD&CG, Zhejiang University
Abstract
Text-to-image models increasingly generate readable Chinese text that still contains local rendering defects, such as a character with an extra or missing stroke or a malformed component. Such errors are invisible to OCR and vision-language models, which are trained for recognition and are therefore invariant to the very structural deviations that define a rendering error. We formalize text rendering verification as a target-conditioned problem: given a target character and an image crop, decide whether the crop is a correct rendering of that character. Our verifier TEXTVERIFIER feeds the text tower a character's Ideographic Description Sequence (IDS) rather than a single-character symbol, and is trained on 12.7M crop-IDS pairs plus label-free "same-character, different-quality" hard pairs sampled from the training trajectory of a text-region inpainting model. To evaluate this ability we build TEXTRENDERBENCH-ZH, the first per-character benchmark for generated Chinese text, annotating position, identity, and correctness for 7,358 characters. TEXTVERIFIER reaches an F1 of 0.844, far above OCR confidence (0.526), a general VLM (0.329), and TextPecker (0.590). Used as a per-character reward for Flow-GRPO post-training, it further reduces rendering errors, showing that its score can both detect and correct errors.
Figures & tables
| Method | TP↑ | FP↓ | FN↓ | TN↑ | P↑ | R↑ | F1↑ | Params | Inf.(ms)↓ |
| PP-OCRv6 (thr ) ( Zhang et al., 2026a ) | 223 | 140 | 419 | 6576 | 0.614 | 0.347 | 0.444 | 0.06B | 17.2 |
| PP-OCRv6 (best thr) ( Zhang et al., 2026a ) | 400 | 479 | 242 | 6237 | 0.455 | 0.623 | 0.526 | ||
| Qwen3.8-Max ( Qwen Team, 2026 ) | 78 | 66 | 564 | 6650 | 0.542 | 0.121 | 0.198 | — | — |
| GPT-5.6-sol ( OpenAI, 2026b ) | 37 | 57 | 605 | 6659 | 0.394 | 0.058 | 0.101 | — | — |
| Gemini 3.7 Flash ( Google DeepMind, 2026b ) | 347 | 1122 | 295 | 5594 | 0.236 | 0.540 | 0.329 | — | — |
| TextPecker (Qwen3-VL-8B) ( Zhu et al., 2026 ) | 491 | 531 | 151 | 6185 | 0.480 | 0.765 | 0.590 | 8.29B | 320.4 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Setting |
|---|---|
| Image tower | ViT-L/16, input , patch ( patch tokens, mean-pooled); M params |
| Text tower | DeBERTa-v2 large, trained from scratch; IDS vocabulary ( operators, components, special) |
| Projection | per-tower MLP head to a -d, -normalized shared space |
| Epochs | Stage 1 / 2 / 3 / / |
| Batch per step | threshold units, replay samples, hard pairs |
| Loss hyperparams | ; , , , ; , |
| P | R | F1 | TP/FP/FN/TN | ||
|---|---|---|---|---|---|
| 1 | 0.0408 | 0.775 | 0.804 | 0.789 | 516/150/126/6566 |
| 2 | 0.0346 | 0.803 | 0.799 | 0.801 | 513/126/129/6590 |
| 4 | 0.0284 | 0.836 | 0.815 | 0.825 | 523/103/119/6613 |
| 6 | 0.0253 | 0.813 | 0.827 | 0.820 | 531/122/111/6594 |
| 8 | 0.0231 | 0.827 | 0.847 | 0.837 | 544/114/98/6602 |
| 10 | 0.0214 | 0.830 | 0.858 | 0.844 | 551/113/91/6603 |