sue@blog ~ /posts/ai-image-japanese-variant-kanji
$ cd ../
$ cat post.metadata

画像生成AIは異体字・旧字体を別の字に“正規化”する — 「髙」が「高」になる話

date: 2026-06-16 生成AI 異体字 実験
2つ目は、漢字の崩れと似て非なる現象。難しい字が“崩れる”のではなく、希少な字体がよく見る字体に勝手に寄せられる(正規化される)。人名で起きると地味に失礼な事故になる。
「周辺日本語トラブル」編(全8回)
画像内: A 和欧混植B 異体字・旧字体(この記事)C 濁点・小書き・長音D 縦書きE 擬似日本語の湧き | 画像の外: F OCRG LLMトークナイザH TTS
漢字崩れの本編は ① 症状と対処② なぜ崩れる③ 実装対策④ 崩れやすい字リスト

先に結論


1. 何が起きるか

「髙田」と「高田」は別の字だ。髙(はしごだか)は人名でよく使う異体字。これを並べて「髙田と高田のちがい」と描かせて、ちゃんと別の字として出るかを見た。

弱経路で『髙田と高田』が両方『高田』になっている
gpt-image-1.5 / 透過 / low。髙が高に正規化され、2つとも「高田」に。
gpt-image-2で『髙田と高田』が描き分けられている
gpt-image-2 / 不透明 / low。髙(はしごだか)と高を描き分けた。

弱経路は2つの「田」をどちらも常用の「高」で描き、肝心の“ちがい”が消えた。gpt-image-2 は先頭を髙(はしごだか)、2つ目をで描き分けた。旧字体でも同じ傾向が出る。

弱経路で旧字体『圖書館と賣店』が粗く崩れている
gpt-image-1.5 / 透過 / low。圖・賣がつぶれて粗い別形に。
gpt-image-2で旧字体『圖書館と賣店』が正確に出ている
gpt-image-2 / 不透明 / low。旧字「圖・賣」をきれいに描画。

「旧字体で圖書館と賣店」も、弱経路は圖・賣がつぶれて粗い別形になり、gpt-image-2 は旧字をきれいに描いた。


2. なぜ“別の字”になるのか

これは本編②「なぜ崩れるのか」の長尾分布の話そのもの。学習データに大量に出てくるのは常用字体(高・図・売)で、異体字(髙・圖・賣)はずっと少ない。モデルは「だいたいこの字」のもっとも確からしい形を出すので、希少な字体は多数派の字体に吸い込まれる。補助平面(4バイト)の漢字が崩れやすいのと地続きで、“コードポイントの珍しさ”が効く(→ 崩れやすい字リスト)。

人名・社名は要注意
髙橋・吉田/𠮷田・山﨑・德永・廣瀬・齋藤/齊藤/斎藤/斉藤 など、異体字が正式表記のケースは多い。生成任せだと勝手に常用字体へ直されて、本人の名前が誤字になる。賞状・名刺・式典バナー・会員証のように“その人の正しい字”が要る場面では生成に任せない。

3. 対策

本命:異体字はフォント合成で固定する

正式表記が決まっている固有名詞は確定テキスト。本編③のとおり文字なし背景+フォント合成なら、髙でも﨑でも𠮷でもそのコードポイントの字形をそのまま置ける(フォントがそのグリフを持っていれば確実)。異体字対応の和文フォント(源ノ角ゴシック/Noto Sans JP 等)を使う。合成の具体的なやり方とグリフ被覆の落とし穴(𠮷 が豆腐になる例)は 実践編「狙ったフォントを画像に入れる」 で実機検証している。

次善:gpt-image-2・不透明に寄せる

モデルに描かせるなら gpt-image-2・不透明。今回は髙の描き分けも旧字も通った。ただし“描けた”と“常に正しい”は別なので、人名は必ず目視か OCR 照合を入れる。

やらないこと


まとめ

異体字・旧字体は「崩れ」ではなく常用字体への正規化として現れる。原因は長尾分布で、gpt-image-2なら描き分けられるが、人名・社名は誤字が致命的なのでフォント合成で字形を固定するのが安全。次はかなの微細トラブル(濁点・小書き・長音は本当に崩れる?)へ。

シリーズ
周辺トラブル編: A 和欧混植B(この記事)C 濁点・小書き・長音D 縦書きE 擬似日本語の湧きF OCRG LLMトークナイザH TTS | 本編: ① 症状と対処② なぜ崩れる③ 実装対策④ 崩れやすい字リスト
sue@blog ~ $ _