AIを使った画像生成と動画生成をやってみる

はじめに

 AIを使った画像の生成や動画の作成技術の進歩がめざましく凄いことになっている!

 何が凄いかは、下のYouTubeをご覧下さい。

 写っているのは管理人がAIに作らせた架空の少女です。さらに、その画像を使ってAIに動画作成させました。今回の記事では、その方法をざっくりとご紹介します。

 (再生できない場合は、YouTubeでご覧下さい。)

 AIの画像作成は、結構手間がかかります。作り方はネットで探せば見つかると思います。

 今回、web上でできる二つの画像生成ソフトを試してみました。どちらも、想像を超える品質に驚きっぱなし。こんなことができるようになったんだと、つくづく感じます。

 でも、他人が作った作品を見ているだけでは物足りない。やはり自分が同じことをできないと単なる傍観者になってしまう。そこで、二つの無料ソフトの使い方を覚えることにしました。その結果が上のYouTubeです。綺麗に仕上がっていると思います。

 動画は、Photoshopでコマのリバースを入れています。

 今回の少女の画像は、AIが生成したものをそのまま使っています。通常であれば多少なりとも修正が必要になるのですが、その必要性を感じないほどのできばえに今回のAIソフトの優秀さを感じます。

 無料で作業しているので、いくつか制約があります。そこら辺がよく分からないので、分かった時点で使い方についても書こうかと思います。なかなか手強いですが。

AIを使って画像生成する「Stable Diffusion」と「Midjourney」

 AIを使って画像生成するプログラムとして「Stable Diffusion」と「Midjourney」が有名なようです。ネット上で見かけるとても綺麗な画像もこれらのどちらかのプログラムを使って生成しているケースをよく目にするようになりました。

 どちらも無料で使えるのですが、たくさんの機能があり、それ故、どう使ったら良いのか分かりません。

 そこで、ターゲットを絞って使い方を覚えていくことにしましょう。

ターゲットとする画像

 まずは、目標とする画像を決めます。

 今回目標とするのは、下の画像です。

 この画像は、最初、「オリジナルゲーム.com」さんの記事で見つけたものですが、今回、おなじものを作ってみました。

 さらに、同じキャラクターの別バージョンについても作ってみます。

画像生成AI「Stable Diffusion」をノートパソコンで使う

 上の画像は、「Stable Diffusion」を使って作っています。もっと詳しく書くと「Stable Diffusion web UI(AUTOMATIC111版)」のうち、テキストから画像を生成する「txt2img」です。

 Stable Diffusion web UI(AUTOMATIC1111版)を使うには、NVIDIA製GPUが必要となりますが、管理人のノートパソコンには専用のGPUがないので使えません。そこで、Googleが提供するPythonを実装したウェブプラットフォーム「Google Colab」を使ってStable Diffusionをインストールすることで、NVIDIA製GPUなしの環境でも利用可能となります。

 具体的な方法については、上で紹介した「オリジナルゲーム.com」さんのサイトに詳しく書かれているので、そちらを参照して下さい。

 手順としては、Googleアカウントにログイン ⇒ 「Google Colab」を開く ⇒ 「Google Colab」に「Stable Diffusion」をインストール、という流れになります。

 大体、5分程度、混んでいる場合は、10分から30分程度の時間がかかる場合があります。

 上記の設定が終わり、Stable Diffusion の画面からの説明となります。

 最初に、[Settings]タブを開き、①[Stable Diffusion] の② [SD VAE] を [Automatic] ⇒ [vae-ft-mse-840000-ema-pruned.safetensors] に変更します。

 次に、③[Clip skip] を[1] ⇒ [2] に変更します。

 最後に、④[Apply settings] をクリックして設定完了です。[txt2img] タブに戻ります。

 最初の [txt2img]タブに戻ります。

 最初の空欄[Prompt]欄で、ここに、生成したい画像の特徴を英語で記載します。

 人物を生成したいのであれば、顔の向き、年齢、服装、背景、髪の色、顔の表情などの詳細を記入します。

 今回の目的は、上で示した画像の再生成 なので、以下のように設定します。この設定が少しでも異なると別の画像が生成されます。完全に一致させます。

 設定が終わったら、右上の[Generate] ボタンをクリック。生成が開始します。

 ボタンをクリックしても数秒、何の反応も無いこともあります。

 生成が終わると上の画像のようにサムネイルが表示されます。このサムネイルを右クリックして別ページで開くと、高画質画像を閲覧できます。気に入ったらダウンロードします。

 以上のように、完全に同じ設定をすることで、同じ画像が生成されることがわかりました。

 次のステップに進みます。

バリエーションを作る

 気に入った画像が生成できたとき、そのバリエーションも欲しくなります。

 [Prompt] の記述を一部変えることでバリエーションを生成できるのですが、全く別の画像が表示されるリスクがあります。

 このため、操作する前に、[Seed] の横のサイコロの隣のアイコンをクリックして、Seedを再利用します。

 上の事例では、Prompt の最後が [smile] になっていますが、これを [big laugh] に変更すると、以下のように生成されます。

 バリエーションを作成する場合、最も簡単なのは、上図④[Sampling steps] の値を変更する方法かと思います。

 上記の例では、[Sampling steps]の値は[40] になっています。この値の前後、5程度変更、つまり[35]~[45] 程度でバリエーションを生成できます。

 Sampling steps: 42 にすると下のようになります。

  バリエーションは、本来、seedの下にある [script] を使うらしいのですが、接続がタイムオーバーしたため操作の確認ができません。

 [seed]の値は、2320484160を使っています。これを2320484362に変更すると下の画像のようになります。

seed 2320484362

他のタブを見る

 今回使っているのは、[txt2img] というタブですが、その隣に [img2img] というタブがあります。これは、既存の画像と説明文を使って画像を生成することができます。ちょっと使ってみた限り、思ったような画像の生成はできませんでした。[txt2img]で使えるpromptの文字数は75文字までと制限があります。もっと詳細に指定したい場合、 [img2img] で画像を使ってイメージの概要をざっと説明し、promptで詳細を説明する方法が有効かも知れません。

 チュートリアルでは、 [img2img]でダビデ像を読み込み、Promptに、”make him a cyborg” と記述して、サイボーグっぽい画像を生成しています。こんな使い方も面白い。

[PNG Info] タブは、「Stable Diffusion」で生成し保存した画像の設定を確認できる機能です。生成・保存した画像をドロップすると、詳細な設定情報が表示されます。

そのほかのタブは、よくわかりません。

Promptの書き方

 Promptの書き方を簡単に説明します。

 Prompt欄に生成したい画像の特徴を書いていくのですが、生成された画像を見て、期待したイメージと違うと感じる場合、何が違うのかを考えます。たとえば、blue eyes と書いたのに、青い目にならない場合など。そんなときは、言葉を強調します。

 上の例では、[loli]という単語が三重括弧で囲まれ、(((loli))) となっています。()で囲むと、1.1倍言葉を強調できます。もっと強調したい場合、括弧を増やします。((loli))で1.1×1.1=1.21倍、(((loli)))で1.1×1.1×1.1=1.33倍になります。 しかし、これは古い表記方法で、現在は、(loli:1.1)のように、倍率を書くようになっています。この場合、1以上が強調、1未満は抑制となります。

その他、分からないことがあったら、githubのチュートリアルをご覧下さい。

追記します。

⑤の[Restore faces] のチェックは入れた方が良いようです。

⑦の[CFG Scale] は、入力したPromptにどのくらい近い画像を生成するかのパラメータで、値が大きい程、Promptに入力した言葉に近い画像が表示されますが、見るに堪えない画像になります。0~20まで設定可能ですが、実際には、5~7くらいが良いと感じました。

 

「Midjourney」を使ってみる

 もう一つのAI画像生成プログラムも使ってみました。こちらは、無料で使えるのは約25枚までなので、あっという間に使えなくなりました。と言うわけで、使い方は書けません(www)。

 画質は申し分ないのですが、課金してまで使うというニーズがありません。「Midjourney」の使い方はよそのサイトにお任せするとして、どのような画像が生成されるのか見てみましょう。

 生成される画像は、たとえばサムライなどは国籍不明で、中国っぽい衣装、装具になります。見ていてあまり気持ちのいいものではありません。

 画像はすばらしいのですが、あまり好きになれない。どうしても違和感を感じてしまいます。

  二人の女性を生成したのですが、違和感を感じます。よく見ると髪型が変です。左の子は、ショートのおかっぱなのに、後ろの髪はどこから持ってきた?

 右側の子は、あり得ない髪型です。

 AIはどのデータで学習したのでしょうか。少なくとも日本ではない。だから、違和感を覚える。違和感を覚える画像は使い物になりません。

画像から動画を生成する

 YouTubeにアップした動画は、「HitPaw」というwebサービスで作成しています。無料で作成できます。

 作り方は簡単で、画像をアップロードするだけです。問題となるのはダウンロード。無料でダウンロードするには、サイトの表示を無視し(www)、作成された動画をShift+右クリックしてダウンロードします。この方法を採ればロゴも表示されず、高画質の動画をダウンロートできます。

 今回の動画では、Photoshopを使ってリバースを入れ、一部のコマ画像を修正しています。「HitPaw」で作成した動画では、女の子が口を開きっぱなしでアホみたいなので、口を閉じるコマを挿入しています。めんどくさいので適当に作ったのですが、もっと丁寧に作れば良かったと後悔しています。

 さらに、リバース部分の速度を調整しています。

 リバースを入れるメリットは、再生時間が2倍に増えること。あまり短い動画だとあっという間に終わってしまいます。「HitPaw」で生成される動画は12秒です。リバースを入れることで24秒の動画になります。リバース部分を継ぎ足して3倍、4倍の長さにすることもできます。その場合は、リバース部分の再生速度を変えたり、コマを追加・削除して、単なる繰り返し映像にならないように調整します。

二枚の画像から動画を生成する(モーフ)

 Stable Diffusionで生成した画像が綺麗にできたので、動かしてみました。生成した二枚の画像のモーフです。単純な動画は退屈なので、ちょっと複雑な動きの動画にしました。

 モーフ作業はこんな感じ。手間をかけずに20分で作りました。

特徴カーブ、形状カーブ、トラックカーブ、カメラの設定をしています。単調そうに見えて複雑な動きをしています。

おわりに

 AIをつかった画像生成技術の進歩には目を見張るばかりです。

 それを紹介する記事も見かけますが、他人の記事を紹介するだけで、使われている画像にオリジナルのものはありません。そんなサイトをよく目にします。

 凄いと思ったことを記事にするのなら、自分でやってみるのが筋でしょう。自分でやってみて初めて分かることもあります。

 今回の記事を書いたきっかけは、「オリジナルゲーム.com」さんのサイトで見かけた女の子の画像がとても気に入ったからです。この画像のバリエーションが欲しい。

 そこで、AI画像生成について調べました。実は、過去記事『低解像画像の高解像画像への変換ができるAIを使ったPULSEとDeepMosaicsの比較』を書いているので、githubのプログラムの使い方は知っていました。このため、作業は何の支障も無く進みました。最近では珍しいことです。

 管理人が知りたかったことは分かったので、記事はこれで終わりにします。自分である程度のことができるようになるという目的が達成されたからです。

 今回苦労したのは、どのパラメータをいじれば目的の画像が生成されるのかということでした。分かった範囲で、それを書きました。ネット上では、この部分は誰も説明していません。とても手間のかかる作業だからです。