【簡単便利】roop for stable diffusionで顔の特徴を引き継ぐ!

当ページのリンクには広告が含まれています。

stable diffusion は、モデルによって顔立ちの傾向はあるものの、毎回異なった顔が生成されてしまいます。これを解決するため、顔の特徴を引き継ぐControlNetやLoRAという方法が用いられるのですが、新たに roop という方法が使えるようになりました。

そこで、今回は stable diffusion web ui で roopを使えるようにするためのインストール方法と使い方について紹介したいと思います。

目次

インストール方法

インストールするには次の3つの手順が必要になります。

Visual Studio 2022 Community版のインストール

insightface をインストールするためには Visual Studio Build Tool というツールが必要なので、Visual Studio 2022 Community 版のインストーラーを使ってインストールします。

はじめに、下記の公式サイトのリンクをクリックして下さい。クリックすると同時に、インストーラーがダウンロードされます。

https://visualstudio.microsoft.com/ja/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16

先頭が vs_buildtools から始まるEXEファイルがダウンロードされますので、ダウンロード後ダブルクリックにより実行して下さい。

   vs_buildtools__b2532f2ab3dc4394b1315c9bde8f4fab.exe

実行するとインストーラーが起動します。「C++によるデスクトップ開発」「Visual Studio拡張機能の開発」にチェックを入れます。

ちなみに、既にPythonが入っていることが前提ですので、まだの方は「Python開発」にもチェックを入れるか、もしくは個別にPythonをインストールして下さい。

チェックを入れたら「ダウンロードしながらインストールする」をクリックします。

インストール中は下記の画面が表示されます。インストールが終了したら、インストーラーを終了させて下さい。

insightface のインストール

次に insightface をインストールします。pip コマンドを使いますので、Pythonが実行できるコマンドプロンプトを起動します。

Pythonをどうインストールしたかによって変わりますのが、下記を目安にしてください。

Pythonのインストール元Pythonが使えるコマンドプロンプトの例
Python公式サイトPython Prompt
anacondaanaconda Prompt
「WinPython+PortableGit」環境CommandPrompt.bat

コマンドプロンプトで実行するコマンドは次の通りです。

インストールの実行時は、下記のような画面が数分間表示されますので、終了するまで少々お待ちください。

sd-webui-roopのインストール

最後に、stable diffusion web ui を起動し、Extensionsタブ→install from URLタブを選択します。

そして、URL for extension's git repository 欄に下記のURLを張り付けて下さい。

最後にinstallボタンを実行します。

インストールはすぐに完了しますので、Installタブを選択し、Apply and restart UI ボタンをクリックして下さい。

txt2img タブを選択すると、 roop v0.0.2が表示されているはずです。もし表示されていない場合、stable diffusion web ui を一旦終了してから、再起動して下さい。

roop を使う場合は、下図の通り roop v0.0.2をクリックし、Enable にチェックを入れるだけです。

roopの画面説明

2023年7月時点のループ( roop v0.0.2 )には次の項目が用意されています。

項目説明
①反映元の画像置き場ここに画像をドラッグ&ドロップすることで
roop が 顔の特徴を読み取ります。
②roopの有効/無効roopを使いたい場合はチェックを入れてください。
③顔の指定反映先の画像に複数の人物が存在する場合、
左から何番目に人物に特徴を反映するかを指定します。
0からスタートします。
④顔を綺麗に整える
アルゴリズム
顔を綺麗に整えるためのアルゴリズムを指定します。
Noneでも問題ないことが多いです。
⑤画像の拡大に用いる
アルゴリズム
画像を拡大する際に使うアルゴリズムを指定します。
実写系の場合、ESRGAN_4x あたりが良いと思います。
⑥画質の鮮明度1が鮮明で0になるほど輪郭がぼやけます。
通常は1(初期値)に設定しておきます。
⑦画像の拡大倍率生成画像の拡大倍率です。例えば4を指定すると
512X512の画像が 2048X2048に拡大されます。
⑧Upscalerの可視性⑤が1(拡大しない)場合に有効になる数値です。
どのような効果があるのか分かりませんが、0の方が
微妙に良い気がします。
通常は0(初期値)で問題ありません。
⑨roopで用いるモデル現時点では1つしか選べません。

下記が Upscaler visibility が1と0の比較画像です。

roopの使い方

roop は txt2img から使う方法と、img2imgの inpaint から使う場合の2通りあります。

txt2img は通常の画像生成の最後に、顔の特徴を反映してくれます。

img2imgの場合、inpaint で顔を塗りつぶすことで、既存の画像の顔だけに特徴を反映してくれます。これにより、同一人物に対して、ダイナミックに服や背景、ポーズを変更することが可能になります。

txt2img による画像生成

roop に特徴を抽出したい写真をドラッグ&ドロップし、Genarateボタンをクリックするだけです。

結果は以下の通りになりました。顔の特徴が引き継がれていることが分かります。

img2imgによる画像生成

img2img の inpaint を選択し、顔の特徴を反映させたい画像をドラッグ&ドロップします。次に、roop側に顔の特徴を抽出したい画像をドラッグ&ドロップします。

そして、顔の部分を黒く塗りつぶした後で、Genarateボタンをクリックするだけです。

実行した結果、下記の様になりました。こちらもちゃんと顔の特徴が引き継がれていますね。

まとめ

今回は stable diffusion の新たな拡張機能 roop を使って、顔の特徴を引き継ぐ方法について解説しました。

stable diffusion に限らず、AIによる画像生成は、どんなにプロンプトに注意を払っても、背景、ポーズ、衣装、人物、表情が毎回変わるため、全ての要望を満たす画像を生成することは非常に困難でした。

最近、人物の顔を固定したり、特徴を引き継ぐ拡張機能があいついで登場してきており、その1つとして roop が注目されています。

AIによる生成画像はガチャだと言われていますが、すこしでもガチャの回数を減らすため、この記事がお役に立てれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次