UniCalli: A Unified Diffusion Framework for Column-Level Generation and Recognition of Chinese Calligraphy

Tianshuo Xu, Kai Wang, Zhifei Chen, Leyi Wu, Tianshui Wen +2 more
10/15/2025
cs.CV

Official code: EnVision-Research/UniCalli (225 stars, last commit 2026-03-15).

Abstract

Computational replication of Chinese calligraphy remains challenging. Existing methods falter, either creating high-quality isolated characters while ignoring page-level aesthetics like ligatures and spacing, or attempting page synthesis at the expense of calligraphic correctness. We introduce \textbf{UniCalli}, a unified diffusion framework for column-level recognition and generation. Training both tasks jointly is deliberate: recognition constrains the generator to preserve character structure, while generation provides style and layout priors. This synergy fosters concept-level abstractions that improve both tasks, especially in limited-data regimes. We curated a dataset of over 8,000 digitized pieces, with ~4,000 densely annotated. UniCalli employs asymmetric noising and a rasterized box map for spatial priors, trained on a mix of synthetic, labeled, and unlabeled data. The model achieves state-of-the-art generative quality with superior ligature continuity and layout fidelity, alongside stronger recognition. The framework successfully extends to other ancient scripts, including Oracle bone inscriptions and Egyptian hieroglyphs. Code and data can be viewed in \href{https://github.com/EnVision-Research/UniCalli}{this URL}.

View on arXivView PDF

Code Implementations(1)

Official implementation of UniCalli: A Unified Diffusion Framework for Column-Level Generation and Recognition of Chinese Calligraphy

22521C++, JavaSep 26, 20257 months ago

Similar Papers

Cite this paper

@article{xu2025unicalli,
  title  = {UniCalli: A Unified Diffusion Framework for Column-Level Generation and Recognition of Chinese Calligraphy},
  author = {Tianshuo Xu and Kai Wang and Zhifei Chen and Leyi Wu and Tianshui Wen and Fei Chao and Ying-Cong Chen},
  year   = {2025},
  eprint = {2510.13745},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2510.13745v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2510.13745.svg)](https://codeofpaper.com/paper/2510.13745)

Discussion