画像生成AI「Stable Diffusion」をGoogle Colab上で利用~モデルや追加学習データ(LoRA)反映

最近生成系AIに興味があり各AIツールを色々試しています。

今回は無料で使える画像生成AI「Stable Diffusion」をGoogle Colab上で利用しました。モデルや追加学習データ(LoRA)を反映し画像を生成します。

画像生成サービス

テキストから画像を生成するサービスは下記が有名です。

  • Midjourney
  • Stable Diffusion
  • DALL・E2(Bing Image Creator)
  • Leonardo.Ai

ただ、Leonardo.Aiは10日前に利用申込したけどまだ承認中の状態。Midjourneyは無料利用不可(2023年4月現在)。DALL・E2は電話番号認証が必要など色々制限があります。

Stable Diffusion

Stable Diffusionはオープンソースで公開されている無料で使える画像生成AIです。

自分のPCにインストールして利用したり、Stable Diffusionを採用したアプリやWebサービスを経由して利用します。

Google Colab上で動作

今回はGoogleが提供している無料で使える機械学習環境「Google Colab」上でStable Diffusionを動作させます。下記をDL・設定。※設定方法はネット検索すると出てくるので割愛。

■UI

  • Stable Diffusion web UI:Stable Diffusionを簡単に扱うためのツール

■モデル(checkpoint)

  • ChilloutMix:写真のようなリアルなイラストを作るのが得意なモデル

■追加学習データ(LoRA)

  • japanesedolllikeness:日本人で学習したデータ
  • koreanDollLikeness:韓国人で学習したデータ
  • hanfu:漢服の学習データ

Stable Diffusionデフォルトの状態で生成される画像は他のサービスと比べるとあまり品質が良くないです。そのため目的に沿ったモデルや追加学習データを別途取り込みます。

テキストから画像生成(ChilloutMixモデル)

環境設定が完了すると「Stable Diffusion web UI」が開きます。

プロンプトに「生成したい内容」、ネガティブプロンプトに「生成したくない内容」をコンマ区切りで英語で入力し画像を生成します。高品質の画像を生成するにはコツがあるので「Stable Diffusion プロンプト」でネット検索して公開されているのをコピペ。

※注意 人物画像を生成する際にプロンプトに何も指定しないと服を着ていないアダルト画像を生成することがあります。回避するにはネガティブプロンプトに「nsfw」(Not Safe for work contents。職場で見るには不適切なコンテンツ。)「nude」等のワードを追加します。

「Perfect Face」なショートカットの日本人女性と入力し生成。

▼「ChilloutMix」モデルでの出力結果

写真のようなリアルなイラストが生成されましたが、あまり日本人っぽく無い気がします。Google Clabの無料GPU環境で4枚(解像度512×768)生成するのに約50秒かかりました。

追加学習データ(LoRA)の反映

追加学習データ(LoRA)の「japanesedolllikeness」を重み0.7で取り込みます。先程のプロンプトに<lora:japanesedolllikenessV1_v15:0.7>を追加

▼「ChilloutMix」+「japanesedolllikeness」

日本人っぽくなりました。ただ、ランダムに4枚生成した画像はどれも似たような顔です。

韓国人の追加学習データ<lora:koreanDollLikeness_v15:0.7>に変更します。

▼「ChilloutMix」+「koreanDollLikeness」

あまり韓国人っぽくは見えません。

次に漢服の学習データを反映します。

プロンプトに<lora:hanfu_v30Song:0.75>,(hanfu, song style outfits, 1girl, green short shan, (white pleated skirt and green purse:1.2), (red songmo: 1.1))を追加。

緑色の宋時代の漢服に白のスカート、緑の手提げ袋を指定

▼「ChilloutMix」+「koreanDollLikeness」+「hanfu」

漢服はリアルに生成出来ていますが、顔の生成に失敗することも。複数のLoRAを組み合わせる際には「重み」のバランス調整が難しいです。

AI生成画像の著作権

日本のAI生成画像に関する著作権については下のサイトが参考になります。

ネット上の画像のクローリングは著作権法違反?機械学習の法的問題を解説 | モノリス法律事務所

機械学習のために画像(著作物)を収集・加工・利用することはもちろん、収集した学習用データを第三者に提供(販売・譲渡など)することは、著作権法第30条の4第2号において認められています。

合成画像は、合成の過程で関数に変数をインプットした結果として新たに生成された画像であるため、元となる画像のデータとは全く別のものといえます。たとえ機械学習の結果として、元の画像と類似した画像が合成されたとしても、それは元となる学習データの複製・翻案・改変にはあたらないと考えられます。

そのため、このようにAIが機械学習して生成した合成画像は、機械学習の元の画像の著作権を侵害していないといえます。

日本は「機械学習天国」と言われるほど生成AIに関する著作権がゆるく、今後規制が強化される可能性もあります。また、現時点でも例外があるので生成する際には要注意です。

まとめ

Stable DiffusionをGoogle Colab上で実行しました。

今回は「Stable Diffusion」のモデルの中でも人気があるChilloutMixとそれに関連するLoRAを使って人物画像を生成しました。他にも「アニメに特化したモデル」や「SF風映像のモデル」等様々な物が公開されています。それぞれのモデルやLoRAには利用規約(商用利用可否など)があるので要確認です。

今後は自分で機械学習を行って、LoRAファイル作成してみようと思います。

また「Stable Diffusion」には他にも色々な機能(image to image、ControlNet等)があります。長くなるので機会があれば別途記事にまとめます。

数日前、AI生成画像が国際的な写真コンテストのクリエイティブ部門の最優秀賞を受賞しました。今後は映像の分野でも人間はAIに敵わなくなりそうです。