書の間shonoma

読みもの

古書から書体をつくる
小さなパソコンで学習させたモデル

2026年11月13日と14日に行った試みの記録です。目的は、パブリックドメインの古い書物から、書の書体をつくること。技術的な作業はすべて Claude(Opus 5.5、effort は high)が行い、取捨選択は kuma が行いました。
使ったのは2020年の Mac mini(M1チップ、メモリ16GB)一台です。計算機は借りていません。

本

国立国会図書館(NDL)は、スキャンした書物をインターネットで公開しています。資料ごとの書誌に、保護期間が満了しているかどうかが示されています。選んだのは次の五点です。

なぜ千字文か

千字文は千の字からなる文章で、同じ字は二度出てきません。字の並びもわかっています。ですから字形を切り出せば、文中の位置でどの字かが決まり、字を読み取る必要がありません。

切り出し

切り出しには Python と、画像処理の無料ライブラリ OpenCV を使いました。本ごとに、難しさが違います。

字形の掃除も要ります。刷った線はまっすぐで、太さが変わりません。筆の線はそうはなりません。この違いを使えば、筆の線に触れずに罫線だけを消せます。はじめに試したもっと単純な規則は、工や直の最後の横画のような、本物のまっすぐな線まで消してしまったので、やめました。

kuma は書体ごとに一字ずつ見直し、うまくいかなかった字形に印をつけます。印の一つひとつが、修正につながります。

確認用の頁。池大雅の草書が番号つきで並ぶ
確認用の頁。字形ごとに千字文での番号がつき、番号を押すと NDL のサイトでその頁が開きます。

二色の字典

『御製草韻辨體』では、色が字形と見出しを分けています。字形は朱、見出しは藍です。Mac には、画像の中の文字を読む Vision という機能が無料で備わっています。藍の見出しを大きさを変えて三回ずつ読ませ、いちばん多かった答えを採りました。読み取った見出しは9,922、字の種類にして4,672。およそ十五に一つは読み誤りです。

御製草韻辨體の頁の一部。朱の草書と藍の見出し

書体

字形を一つずつ正方形に収めます。同じ本の字形はすべて同じ縮尺のままにするので、小さな字は大きな字の隣でも小さいままです。次に、プログラムが字形の輪郭をなぞり、無料のライブラリ opentype.js がその輪郭を書体にまとめます。

古い本に載っているのは旧字です。書体では、その字形を今の字にも使います。たとえば學の字形を、学にも当てます。

池大雅の書体で組んだ千字文の冒頭
池大雅の書体で組んだ見本。

モデル

kuma の問いはこうでした。池大雅の千字から、同じ筆で、ほかのすべての字をつくれるか。

この千字だけでは、できません。草書では、字ごとに崩し方が伝統で決まっています。草法です。一度も見たことのない字の草法を、モデルが推し量ることはできません。

そこで本を二つ使いました。草法は字典から、筆は池大雅から取ります。

両方に載っている字は689。字ごとに、池大雅の字形にいちばん近い字典の字形を、プログラムが選びます。十分に近いものがない字もあります。草法が違うか、藍の見出しの読み誤りです。そうした字を除いて、610組が残りました。一組は同じ字の二つの字形、字典のものと池大雅のものです。

そのうち100組は取りのけて、モデルには一度も見せません。モデルの出来を確かめるためです。

モデルは、2017年に発表された pix2pix という手法によります。ある画像を別の画像に変える手法で、二つの部分からなります。一方が字形を描き、もう一方が画像を部分ごとに見て、本物か作り物かを判定します。二つは一緒に学んでいきます。

ソフトは PyTorch で、Mac のグラフィックチップを働かせます。学習は510組で、夜のあいだに4時間。費用はかかっていません。

三段の比較。字典、モデル、池大雅
上が字典の字形、中がモデルの字形、下が池大雅の本当の字形。どれも、モデルが一度も見ていない字です。

結果

モデルは字典の草法を守ります。けれども線は痩せて薄く、途切れています。池大雅の墨の重さも、勢いもありません。kuma の評は、「面白い」けれど、書体の欠けた字を補うには「読めないし、使えない」。

数字もそれを裏づけます。学習に使った510組では上達しますが、取りのけた100組では上達しません。筆を学ぶのではなく、丸暗記しているのです。

原因は二つ考えられます。まず、510組では少なすぎます。次に、モデルは描いた字形を本物と一点ずつ比べます。ところが、二つの筆跡がぴったり重なることはありません。そこでモデルは平均を描き、平均は痩せてぼやけた線になります。

使ったもの

すべて Mac mini の上で動きました。

有料のソフトは使わず、計算機も借りていません。限界はメモリだけです。16GBは小さなモデルには足りますが、大きなモデルには足りません。

この先

この試みから、十七の書体ができました。

ある筆に欠けている字をつくるには、もっと大きなモデルか、すでに多くの筆を学んだモデルが要ります。

誤りや漏れは team@shonoma.com までお知らせください。