【AnyText】文字も生成できる画像生成AIを動かしてみる
今回はAlibabaの研究チームによって開発された英語以外の文字を生成できるAIモデル、AnyTextを動かしてみます。
AnyTextとは
Alibabaグループによって開発された、文字も生成できる画像生成モデルです。Stable Diffusion 1.5をベースに作られていて、プロンプトで指示をすれば英語、中国語、韓国語、日本語で文字を生成できるのが特徴です。下のような画像たちが生成できるそうです。
この図はAnyTextの仕組みです。この研究とStable Diffusion 1.5の繋ぎこみは図中のText Control Netによって行われているようです。
動かしてみる
Huggingfaceデモ
Huggingfaceに公式がデモを用意してくれているのでそれを触ってみます。
プロンプトを書いて、
今回は「日本語学習中」と書かれた黒板の前に立つアライグマを生成してみます
文字が描画されて欲しいところを塗って「Run」を押すと画像生成が始まります。
できました。自信がなさそうで可愛いですね。
結局中身はStable Diffusion + ControlNetなので 768x512など正方形以外の画像も生成できます。
Debugモードにするとここに文字を生成してね、という風なControlNetであることがわかります。
ひらがな、カタカナも試してみます。
喉渇いた | のどかわいた | ノドカワイタ |
中国語が得意ということで漢字の生成は上手で画数の多いものかなり正確ですが、ひらがなカタカナの生成結果は微妙ですね。
Google Colab
Google Colabでも動かせます。より速い生成を試したいときはこちらの方が良いです。
camenduruさんのコードをお借りしました。
%cd /content
!git clone -b dev https://github.com/camenduru/studio_anytext-ms
%cd /content/studio_anytext-ms
!pip install -q modelscope omegaconf pytorch-lightning sentencepiece gradio==3.50.2 open-clip-torch sacremoses subword_nmt
!pip install -q https://download.pytorch.org/whl/cu121/xformers-0.0.22.post7-cp310-cp310-manylinux2014_x86_64.whl
!python app.py
文字生成ができる他のモデルとの比較
論文で紹介されている事例は下のようになってます。
DALL・E 3との比較だけやってみます。
AnyText | DALL・E 3 |
AnyTextまとめ
AnyTextは英語と中国語に関してはかなり高精度に文字入りの画像を生成できます。日本語も一応できますが、そこまで重きを持って学習はされてないようです。ControlNetに関する工夫なので学習させれば日本語での生成もできそうですね。
SDXLやDALL・E3と比べると英語以外の言語が生成できるというのはポイントです。
Discussion