MidjourneyやStable Diffusionなどの画像生成AIの仕組みについて
以前、「最近、人工知能による自然言語処理が爆発的に進化しているのでまとめてみた。」という記事の中で、DALL-E2、Imagen、Partiなどのテキスト(文字情報)から画像生成するAIについて解説したのですが、その後、Midjourneyや DreamStudio(Stable Diffusion)などの新しい画像生成AIが次々と公開されて、世間が盛り上がってきましたので、新しい情報を追加してまとめ直すことにしました。
1.4種類の画像生成モデル
一般的に、ディープラーニングを利用して自動的に画像を生成する画像生成モデルとしては、大きく分けて以下の4種類のモデルがあります。
(1) 変分オートエンコーダー(VAE)
VAE(Variational Auto-Encoder)は、入力データを特徴量に圧縮し、その特徴量をまた元のデータに戻すという仕組みのオートエンコーダーの一種で、この特徴量に確率分布を導入することにより、未知のデータを確率的に生成できるようにしたモデルです。
(2) 敵対的生成ネットワーク(GAN)
GAN(Generative adversarial network)は、生成器(ジェネレーター)と識別器(ディスクリミネーター)という2つのネットワークから構成されています。画像を生成する場合は、生成器が訓練データを基に本物そっくりな画像を出力し、識別器がその画像が本物か偽物かを判定します。生成器は識別器を欺こうと学習し、識別器はより正確に判定しようと学習します。GANは、このように2つのネットワークが相反する目的のために競い合うことで、生成する画像の精度を上げていくモデルです。
(3) フローベース生成モデル
フローベース生成モデル(Flow-based generative model)は、正規化フローという手法を活用し、確率分布を明示的にモデル化することによって、複雑な分布に基づいた新しいサンプルを生成できるようにしたモデルです。
(4) 拡散モデル
拡散モデル(Diffusion Model)は、元データに徐々にノイズを加えて、完全なノイズになるまでのプロセスを逆転し、ノイズを徐々に除去することによってデータを復元するプロセスをモデル化して、新しいデータの生成に利用するモデルです。
拡散モデルは、トレーニングの安定性と生成画像の品質の高さで、最近、注目されており、DALL-E 2やImagenなどの最新の画像生成モデルで採用されています。
2.GANによる画像生成
DALL-Eの発表以前に、テキストから画像を生成する画像生成モデルとして最も使われていたのは、GANを利用したモデルです。
GANは、2014年にイアン・グッドフェロー氏らによって発表された深層生成モデルで、特に画像生成の分野で大きく発展し、本物の写真と区別がつかないような実在しない人物の顔画像を自動的に生成したことなどによって、世の中を驚かせました。
以下の画像は、「This person does not exist」というサイトで公開されているStyleGANによって生成された実在しない人物の顔画像の例です。
3.DALL-E 2
DALL-E2は、OpenAIが発表した拡散モデルを使用した画像生成AIです。
OpenAIは、2015年にイーロン・マスク氏らが設立した非営利団体で、汎用言語モデルのGPT-3を開発したことで有名です。現在は、Microsoftからの出資を受け入れて、同社との結びつきを深めています。
OpenAIは、2021年1月に、これまでのテキストからの画像生成AIより格段に高性能なDALL-Eを発表し、更に今年(2022年)4月に最新版のDALL-E2を発表しました。
(1) DALL-E
初代のDALL-Eは、学習用の画像データをVAEの一種のVQ-VAEで特徴量に圧縮し、キャプション(画像の説明文)とペアにして、GPT-3で機械学習を行います。画像生成時には、テキストデータをGPT-3に渡して画像データの特徴量を生成し、そこでVQ-VAEを使って、画像を復元します。
(2) DALL-E2
DALL-E2は、CLIPと拡散モデルを使用します。CLIPは、テキストに対する画像の類似度を測ることによって画像データを分類する画像分類モデルで、初代DALL-Eと同時に2021年に発表されました。
DALL-E 2は、画像データとキャプションのペアで事前学習したモデルを利用して、入力されたテキストからCLIPの画像特徴量を生成するプライアーと、拡散モデルを利用して、この画像特徴量とテキストから、テキストの指示に合わせた画像を生成するデコーダーの2段階モデルとなっています。
なお、CLIPの画像特徴量とは、CLIPで画像を分類する際に、画像データを特徴量に圧縮したもので、DALL-E 2の場合は、逆プロセスで、この画像特徴量から画像データを生成します。この手法により、出力画像の多様性と高い解像度を両立しています。
なお、先月(2022年7月)から、DALL-E 2ベータ版が公開され、ウェイトリストに登録して、招待メールが届いたユーザーから順次利用できるようになりました。1クレジットで4枚の画像生成が可能で、初月は50クレジット、2か月目以降は毎月15クレジットが無料で付与され、それ以上利用する場合は有料となります。以下のページからウェイトリストに登録できますので、是非、試してみてください。
4.GoogleのImagenとParti
Googleは、今年(2022年)5月にImagen、今年6月にPartiという2種類の画像生成AIを発表しています。
(1) Imagen
Imagenは、拡散モデルの画像生成AIで、まず、学習済みの汎用言語モデルのT5を利用したテキストエンコーダーで、入力されたテキストを特徴量に変換します。
次に、U-Net形式の拡散モデルを利用して、このテキスト特徴量から、テキストの指示に合わせた低解像度画像を生成します。
最後に、U-Net形式の拡散モデルを更に2回通すことによって、低解像度の画像を高解像度にアップサンプリングします。
Imagenは、MS COCO(Microsoft Common Objects in Context)などの画像データセットを用いたベンチマークテストで、DALL-E 2よりも高い性能を示しました。
しかし、Googleは、Imagenが生成した画像データがとても自然で高画質なため、フェイクニュースやリベンジポルノに悪用される恐れがあり、また、差別的な主張や暴力的な表現などの倫理的に問題のあるデータが含まれる可能性が払拭できないとして、現時点では公開していません。
(2) Parti
Parti(Pathways Autoregressive Text-to-Image model)は、拡散モデルではなく、自己回帰モデルとGANを採用しています。
自己回帰モデルとは、ある時点におけるモデルの出力がそれ以前のモデルの出力に依存するような数理モデルで、GPT-3も、ある単語の次に出てくる単語を予測する自己回帰モデルです。
Partiは、自己回帰モデルと画像トークナイザーの2段階のモデルで構成されています。
画像生成の際は、最初に、事前学習済みのテキストエンコーダーを使って、入力されたテキストをテキストトークンのシーケンス(配列)に変換し、次に、自己回帰モデルで、テキストトークンのシーケンスを画像トークンのシーケンスに変換します。
最後に、画像トークナイザーを使って、画像トークンのシーケンスから画像を生成します。なお、画像トークナイザーには、画像認識モデルのVision TransformerをベースにしたViT-VQGANを使用しています。
Partiは、長く複雑なテキストがプロンプトに入力されても、忠実にテキストの指示に従った画像を生成し、写真のようなリアルな画像を描き出すことができます。
Partiの200億パラメーターモデルは、MS COCOを用いたベンチマークテストで、DALL-E 2やImagenを超える性能を示し、ファインチューニングしたバージョンでは、さらに高い性能を発揮しました。
5.Midjourney
(1) Midjourneyの概要と仕組み
先月(2020年7月)、個人が手軽に高品質な画像を作成できるMidjourneyのオープンベータ版が公開されると、瞬く間に世界中で爆発的な人気を呼び、画像生成AIのブームが巻き起こりました。
Midjourneyは、米国フロリダ出身のデイヴィッド・ホルツ氏が創設した社員わずか10人余りの小さな民間研究所が開発し、運営しています。ホルツ氏は、人の手の動きを赤外線センサーで認識するハンドトラッキングデバイスを開発・製造するLeap Motionの創業者で、2019年に同社をイギリス企業に売却しています。
Midjourneyの技術の詳細は明らかにされていませんが、ホルツ氏がインタビューで、Midjourney開発のきっかけとして、「個人的に着目したのは、CLIP誘導拡散だった。」(出典:The Registerのインタビュー記事)と発言していることから、おそらくDALL-E2やImagenと同じように、プロンプトに入力されたテキストをエンコーダーで特徴量に変換し、CLIP誘導方式の拡散モデルを利用して、このテキスト特徴量から、テキストの指示に合わせた画像を生成するような拡散モデルベースのAIを使っているのだと思います。
OpenAIが2021年に画像分類モデルのCLIPを公開した後、CLIPを反転することによって、テキストから画像を生成できることが判明し、CLIPとVAE、GAN、拡散モデルなどを組み合わせて、画像生成AIを開発することがAI技術者の間で流行しました。
Midjourneyは、チャットサービスのDiscordを通じて利用することができます。新規ユーザーは、DiscordのMidjourneyサーバーにログインし、初心者チャンネルで、描いてほしい絵のキーワード(プロンプト)を入力することによって画像を生成することができます。
無料で約25回使用することができ、さらに使用したい場合は、月額10ドル又は30ドルの有料プランに加入する必要があります。
具体的な参加方法や使い方のコツについては、以下のサイトを参考にしてください。
なお、Midjourneyの利用規約で、アダルトコンテンツやグロテスクな画像は禁止されており、一部のテキスト入力は自動的にブロックすることになっています。
(2) Midjourneyの人気の秘密
おそらく、ベンチマークテストで測定すれば、Midjourneyよりも、DALL-E2、Imagen、Partiの方が文章理解力が高く、指示通りの正確な画像を生成できるのでしょうが、Midjourneyの方が人気となった理由は、格好がよくて、ダイナミックで、現代人の好みに合った画像を生成してくれるからだと思います。また、そもそもGoogleはImagenとPartiを公開していません。
Midjourneyは、サイバーパンクやリアルファンタジー系の絵が得意で、特に画風を指定しない場合は、そちらの方向にイメージを引っ張っていきます。憂いを含んだ神秘性が感じられる情景描写は、現代人の好みに合っています。
また、DALL-E2などの大手組織の画像生成AIは、肖像権、著作権などに配慮して、訓練データから有名人の画像や著作権のある画像データを除いているようなので、皆がよく知る有名人やアニメ、映画、プロの撮った風景写真などの画像が使えないという点で不利に働きます。
さらに、人種や性別などのポリティカルコレクトネスへの配慮も、無理やり少ない参考データから画像生成しなければならなくなる場合があるなど画像の品質を下げる要因となっている可能性があります。
Midjourneyは、有名なアニメや映画、漫画家の名前などで画風を指定することもでき、どこかで見たことがあるような定番の画像になることも多く、その分、評価が高くなります。
ホルツ氏は、インタビューの中で、より美しい画像を生成するために、ユーザーの指示をそのまま画像にするよりも、少しバイアスを掛けて誘導していると発言しており、その点も、美しく好感度の高い画像を生み出す秘訣になっているようです。
実際に、Midjourneyで美しい画像を生成するためのコツとして、細かく画像の内容を説明するよりも、ある程度、大まかな内容を指示して、後はAIに作画を任せるというテクニックなどもあります。
6.DreamStudio(Stable Diffusion)
(1) Stable Diffusionの概要と仕組み
今月(2022年8月)22日に、画像生成AIのStable Diffusionのオープンベータ版オンラインサービスのDreamStudio Liteが公開されました。
また、Stable Diffusion自体もオープンソースとして、AI技術者向けコミュニティサイトのHuggingFaceやGitHubでコードやドキュメントを公開し、デモサイトも利用可能です。
DreamStudioの公開は、丁度、Midjourneyによって画像生成AIが話題になっていたところでもあり、特に人物や風景などの実写的な画像では、Midjourneyを上回るような高品質を示したため、一気に注目を浴びることになりました。
DreamStudioは、公式サイトにアクセスしてアカウント登録することにより、最初は無料で使用できます。2ポンドの無料枠があり、デフォルトの条件で画像生成すると、1枚当たり0.01ポンド、つまり200枚の画像を無料で生成できます。ただし、高品質画像になるように条件を設定すると費用が上がるなど設定条件によって費用が変わるので注意が必要です。
無料枠を使い切ると、10ポンド(約1,600円)単位で有料枠を購入して使用を続けることができます。
具体的な参加方法や使い方のコツについては、以下のサイトを参考にしてください。
また、自分のPCでStable Diffusionを動かしたい人は、以下のサイトを参考にしてください。
Stable Diffusion は、Stability AIが中心となり、ミュンヘンのルートヴィヒ・マクシミリアン大学の研究チームや非営利組織のLAIONなどの研究者や技術者の協力により開発されました。
Stability AIは、ヘッジファンドのアナリストとして活躍し、若くして財産を築いたインド系イギリス人のエマード・モスターク氏がオープンソースのAIコミュニティを育成することを目指して、ロンドンで創設したスタートアップ企業です。
Stability AIは、4,000 台の Nvidia A100 GPU をサーバーとして提供し、LAIONは、オープンソースのトレーニングデータを提供しました。
Stable Diffusionも、DALL-E2やImagenと同じように拡散モデルの画像生成AIです。
まず、学習済みのCLIPを利用したテキストエンコーダーで、入力されたプロンプトのテキストをU-Netで理解できる特徴量に変換します。
次に、このテキスト特徴量をガイドとして利用し、U-Net形式の拡散モデルでテキストの指示に合わせた画像特徴量を生成します。この作業を何十回も繰り返すことによって、生成された画像特徴量とテキストの指示との誤差を小さくしていきます。
そして、最後に、VAEのデコーダーを利用して、最終的な画像特徴量から画像を生成します。
なお、拡散モデルの欠点は、ノイズ除去プロセスを何度も繰り返すために計算量が増え、多くのメモリーを消費することですが、Stable Diffusionは、Latent diffusion(潜在拡散)という技術を導入して、画像特徴量の次元を減らし情報量を圧縮することによって、計算量とメモリーを減らしています。これにより、Stable Diffusionは、少ないメモリーでの動作と高速な処理を可能としています。
CLIPのテキスト特徴量によるガイドは、こんなイメージでしょうか。
こういう作業を何十回も続けて、生成する画像特徴量を段々テキストの指示に近づけていきます。
Stable Diffusionで生成した画像は、ライセンスを明記することにより営利・非営利を問わず使用でき、ユーザー自身が生成画像に関する権利を持ちます。
違法な画像や人に危害を加える画像、誤った情報を広める画像などの使用は禁止されており、不適切な画像を出力しないようなフィルターも実装されています。
(2) Stable Diffusionを巡る議論
Stable Diffusionは、まるで人間のアーティストが描いたような高品質の画像を生成することができるため、一般公開前の研究者限定公開のときから、一部のアーティストより、アーティストの権利を侵害しているといった批判が寄せられました。
例えば、コンセプトアーティストのRJパルマー氏は、Stable Diffusionが明らかに現在活動中のアーティストの作品で訓練されているという点を問題視しています。彼の指摘によれば、Stable Diffusionが生成した画像の中には、右下に四角い枠と文字のようなものが確認できる画像があり、これは、トレーニングに使用した画像に含まれていたアーティストのロゴをAIが再構成しようとした痕跡だということです。
そして、パルマー氏は、早急にアーティストを保護する手段を整備することを求めています。
アーティストの保護は必要ですが、現時点では、まだ画像生成AIに要求通りの絵を描かせることは難しく、また、細かいところで内容の破綻(常識的にあり得ない姿や形)などが見られるため、現時点では、画像生成AIが多くのアーティストの職を奪うようなレベルには達していないと思います。
また、ウェブ上で公開された画像をAIのトレーニングに使用すること自体は違法ではなく、最終的に生成された画像にどの程度、元の画像が反映されているかを証明することも難しいでしょう。
いずれにせよ、将来的に画像生成AIの発展を阻害しない形でアーティストの権利との調整が図られることを期待します。
Stable Diffusionも、差別的な画像や性的な画像の生成を禁止してはいますが、他の画像生成AIサービスと比較すると、フィルタリングが最小限に抑えられているため、著名人の顔を使ったフェイク画像やデマを広めるような画像などが生成できてしまうと警鐘を鳴らす人たちもいます。
これに対して、Stability AIのモスターク氏は、「一部に不愉快なことをする人たちがいるが、それは人間性の問題であり、多くの人たちがこの技術を利用するに従って、そのような害は否定されていく。」と主張しています。
こうした有害情報やフェイク画像の公表・流通を規制することは重要ですが、画像生成AIの技術が社会に与えるメリットも非常に大きいと考えられるため、将来的に画像生成AIの発展を阻害しない形で調整を図ることが望まれます。