AnyText - アリババのオープンソース画像テキスト生成・編集モデル
AnyTextは、アリババ知能コンピューティング研究所が開発した、拡散ベースの多言語ビジュアルテキスト生成・編集モデルです。画像内で正確かつ一貫性のあるテキストをレンダリングすることに重点を置いています。AnyTextは主に2つの要素で構成されています...
AnyTextとは何ですか?
AnyTextは、アリババ知能コンピューティング研究所が開発した、拡散ベースの多言語ビジュアルテキスト生成・編集モデルです。画像内で正確かつ一貫性のあるテキストを生成することに重点を置いています。AnyTextは、補助潜在モジュールとテキスト埋め込みモジュールの2つの主要要素からなる拡散パイプラインで構成されています。前者は、テキストグリフ、位置、マスク画像などの入力を使用して、テキスト生成または編集のための潜在特徴を生成します。後者は、OCRモデルを使用してストロークデータをエンコードし、これを単語分割器からの画像キャプション埋め込みと組み合わせることで、背景にシームレスに溶け込むテキストを生成します。この技術は、画像内のテキスト領域を生成する際に、ぼやけた、判読不能な、または誤ったテキストを合成するという課題に対処し、画像内のテキスト書き込みの精度を向上させます。
GitHubプロジェクト:https://github.com/tyxsspa/AnyText
論文の宛先:https://arxiv.org/abs/2311.03054
ModelScope:https://modelscope.cn/studios/damo/studio_anytext
Hugging Face:https://huggingface.co/spaces/modelscope/AnyText
AnyTextの機能
- 多言語対応:AnyTextは、中国語、英語、日本語、韓国語など、複数の言語でテキストを生成できます。
- 複数行テキスト生成:ユーザーは画像上の複数の場所にテキストを生成できます。
- 変形した領域に文字を書く:AnyText水平方向、垂直方向、さらには曲線や不規則な形状の領域にもテキストを生成できます。
- テキスト編集機能:AnyTextこの機能により、画像内の指定された位置にあるテキストコンテンツを、周囲のテキストのスタイルとの一貫性を保ちながら変更することが可能になります。
- プラグアンドプレイ:AnyTextは既存の拡散モデルにシームレスに統合でき、テキスト生成機能を提供します。
AnyTextの仕組み
AnyTextは、以下のモジュールの連携により、背景とのシームレスな統合を維持しながら、画像内の多言語テキストを正確に生成および編集できます。詳細は以下のとおりです。
- テキスト制御拡散パイプライン:
- AnyTextは、変分オートエンコーダー(VAE)を使用して入力画像をエンコードし、潜在表現を生成します。
- 次に、拡散アルゴリズムを用いてこの潜在表現に徐々にノイズを加え、時間ステップごとに一連のノイズを含む潜在画像を生成する。
- AnyTextは、各タイムステップにおいて、テキスト生成を制御するためにノイズポテンシャル画像に追加すべきノイズを予測するネットワーク(TextControlNet)を適用します。
- 補助潜在モジュール:
- このモジュールは、テキストのグリフ、位置、およびマスクされた画像を入力として受け取り、補助的な潜在特徴マップを生成します。
- グリフ情報は、テキストを画像上にレンダリングすることによって生成され、位置情報は画像内のテキストの位置を示し、マスク画像は拡散処理中に保持すべき画像領域を示します。
- テキスト埋め込みモジュール:
- このモジュールは、事前学習済みのOCRモデル(PP-OCRv3など)を使用して、テキストからストローク情報を抽出し、それを埋め込みとしてエンコードします。
- これらの埋め込み表現は、トークナイザーからの画像タイトル埋め込み表現と組み合わされて融合中間表現が生成され、その後、クロスアテンションメカニズムを介してUNetの中間層にマッピングされます。
- 文字認識障害:
- トレーニング中、AnyTextはテキスト認識損失を用いてテキスト生成の精度をさらに向上させます。
- この損失は、生成された画像と元の画像のテキスト領域を比較し、テキスト自体の正確さのみに焦点を当て、背景、文字位置のずれ、色、フォントスタイルなどの要素を除外することによって達成されます。
- トレーニングと最適化:
- AnyTextのトレーニング目標は、テキスト制御拡散損失とテキスト知覚損失の加重和を最小化することである。
- トレーニング中、モデルは重み比(λ)を調整することで、これら2つの損失のバランスを取ります。
AnyTextを使用してテキストを生成する方法
- Access AnyTextモデルスコープ空間またはHugging Face demo
- プロンプトとなる単語を入力し、次にテキストを挿入したい場所を選択してください。
- 最後に「実行」をクリックし、画像とテキストが生成されるまで待ちます。