【簡単便利】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

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

pip install insightface==0.7.3

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

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

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

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

https://github.com/s0md3v/sd-webui-roop

最後に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をコピーしました!

コメント

コメントする

目次