UDiffTextによる画像内の高品質なテキスト合成

UDiffTextによる画像内の高品質なテキスト合成 ツール

「画像内に違和感なく文字を追加したい」
「画像内の文字を修正したい」

このような場合には、UDiffTextがオススメです。
この記事では、UDiffTextについて解説しています。

本記事の内容

  • UDiffTextとは?
  • UDiffTextのシステム要件
  • UDiffTextのインストール
  • UDiffTextの動作確認

それでは、上記に沿って解説していきます。

UDiffTextとは?

UDiffTextは、画像内で高品質なテキスト合成を実現するための技術になります。
これは、Stable Diffusion v2.0を基にしています。

画像内の文字編集機能と捉えれば、わかりやすいかもしれません。
編集と言っていますが、新規で文字を追加することもできます。

一応、デモが公開はされているようです。

UDiffText - a Hugging Face Space by ZYMPKU
Discover amazing ML apps made by the community

ただ、このデモはダウンロードして利用可能です。
このダウンロードしたデモを利用して、インストールや動作確認まで行います。

UDiffTextのシステム要件

UDiffTextは、基本的にはPyTorchが動けば大丈夫のようです。
OSは、Windowsでの動作は確認できています。

もちろん、Linuxは問題なく動くでしょう。
macは、わかりません。

それぐらい、公式に情報が不足しています。
とにかく、PyTorchのGPU版はインストール必須です。

おそらく、最新版をインストールしても大丈夫でしょう。

UDiffTextのインストール

UDiffTextのインストールは、Python仮想環境の利用がオススです。

まず、UDiffTextのデモ環境をダウンロードしましょう。

git clone https://huggingface.co/spaces/ZYMPKU/UDiffText

モデルも同時にダウンロードするため、時間はそこそこかかります。
ダウンロードできたら、リポジトリルートへ移動しておきます。

cd UDiffText

ここで次のファイルを確認できます。

requirements.txt

colorlover==0.3.0
einops==0.6.1
gradio==3.41.0
imageio==2.31.2
img2dataset==1.42.0
kornia==0.6.9
lpips==0.1.4
matplotlib==3.7.2
numpy==1.25.1
omegaconf==2.3.0
open-clip-torch==2.20.0
opencv-python==4.6.0.66
Pillow==9.5.0
pytorch-fid==0.3.0
pytorch-lightning==2.0.1
safetensors==0.3.1
scikit-learn==1.3.0
scipy==1.11.1
seaborn==0.12.2
tensorboard==2.14.0
timm==0.9.2
tokenizers==0.13.3
torch==2.1.0 
torchvision==0.16.0 
tqdm==4.65.0
transformers==4.30.2
xformers==0.0.22.post7 

ここでは、つぎのように変更を加えます。

#torch==2.1.0  
#torchvision==0.16.0
#xformers==0.0.22.post7
xformers

PyTorchは、事前にインストール済みとします。
あと、xFormersはバージョン指定すると面倒なことが多くなりがちです。

変更できたら、次のコマンドで一括インストールを行います。

pip install -r requirements.txt

処理が終わったら、UDiffTextのインストールは完了です。

UDiffTextの動作確認

デモの起動は、以下のコマンドで行います。

python app.py

起動に成功したら、コンソールに次のように表示されます。

Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

ブラウザで「http://127.0.0.1:7860」にアクセスすると、次のような画面が確認できるはずです。

範囲をマーキングして、プロンプトを入力します。
そして、「Run」ボタンをクリックすれば次のような結果となります。

ちなみに、これは1発目の結果です。
今まで、これほどまで文字を精度高く表示できるモノはなかったですね。

ただ、このデモは正方形の画像が対象になります。
正方形にカットされて出力されてしまうのです。

この辺が解消されれば、本当に素晴らしいのですけどね。
もしかしたら、UDiffTextはFooocusに実装されるかもしれませんね。

期待しておきましょう。

タイトルとURLをコピーしました