キャラクターの表情を制御できる「MediaPipeFace」の使い方【ControlNet】

キャラクターの表情を制御! 画像生成AI

今回はControlNetに関する話題で、タイトルの通り

キャラクターの表情を制御できる「ControlNet MediaPipeFace」の使い方

をご紹介するという内容になっています。

ControlNetはキャラクターのポーズ等をきっちり指定できて便利なので活用なさっている方も多いかと思います。ただ従来のControlNetの弱みとして表情だけを指定するのが難しいという欠点があり、この点で悩んでいる方もいらっしゃるのではないでしょうか。

しかし最近、そんな欠点を克服できる「MediaPipeFace」が最新のControlNet(v1.1)に実装されたと聞いたので実際に試してみることにしました。

ここではこのMediaPipeFaceについて

  • 概要や導入方法
  • 基本的な使い方
  • Openpose Faceとの比較結果

といった部分を解説していきますね。

前提:Stable Diffusion web UIとControlNet拡張機能が必要

はじめに前提としてMediaPipeFaceを使うには次の2つの下準備が必要です。

  • Stable Diffusion web UI(AUTOMATIC1111版)をインストールして使えるようにしておく
  • さらにそのweb UI用のControlNet拡張機能もインストールしておく

まだStable Diffusion web UIをインストールしていない場合は、下記の記事でインストール手順や使い方を丁寧に解説していますのでそちらをご覧ください。

「Stable Diffusion web UI」のインストール方法・日本語化・使い方まとめ(AUTOMATIC1111版)
今回も画像生成AIに関する初心者向けの話題で、タイトルの通り 「Stable Diffusion web UI」のインストール方法・日本語化の方法・使い方 をまとめてみるという内容になっています。 画像生成AIの代表格であるStable D...

またControlNetの基本については下記の記事で詳しくご紹介していますので、まだ使ったことがないよという方はそちらも併せてご覧頂ければと思います。

ポーズを指定して画像を生成できる「ControlNet」の使い方【Stable Diffusion web UI】
今回も画像生成AIに関する話題で、タイトルの通り ポーズや構図をきっちり指定して画像を生成できる「ControlNet」の使い方 を丁寧にご紹介するという内容になっています。 画像生成AIを使ってイラストを生成する際、ポーズや構図を決めると...

MediaPipeFaceについて

公式ページ

CrucibleAI/ControlNetMediaPipeFace · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

MediaPipeFaceとは?

「ControlNetMediaPipeFace」(以下、長いのでMediaPipeFaceと呼びます)は元画像の被写体の表情を検出し、それに従った表情の画像を生成できるControlNet用のモデルです。

これを使うと今まで困難だった表情だけの指定が簡単になり表現の幅が広がります。なお表情の検出・指定は一人だけでなく複数のキャラクターに適用することができます。

従来のControlNetのモデルとの比較

ではサンプルとして従来のControlNetのモデル(ここでは例としてcanny)と、MediaPipeFaceとの比較結果を掲載しておくので参考になさってください。

入力(元画像) canny MediaPipeFace
叫んでいる少年の写真 Cannyで生成したイラスト(1) MediaPipeFaceで生成したイラスト(1)
ある家族の写真 Cannyで生成したイラスト(3) MediaPipeFaceで生成したイラスト(3)
条件:ControlNetのプリプロセッサ&モデル以外はそれぞれ同じ条件で生成(シードも同じ)。
※入力画像は公式ページのサンプルとして掲載されている、パブリックドメインの写真を使用させていただいています。

Cannyは元画像に従った表情をある程度再現できているのですが、問題点として表情以外の部分も元画像に大きく引っ張られてしまっています。

一方でMediaPipeFaceであれば表情や顔の位置だけを上手く抽出して適用できており、その問題点を解決できていることがわかります。

MediaPipeFaceの導入方法

さてMediaPipeFaceの導入方法は次のとおりで2ステップが必要です。

  1. ControlNet拡張機能を最新版に更新する。
  2. ControlNet用モデルをダウンロードして所定のフォルダに入れる。

ControlNet拡張機能を最新版に更新する

まずはStable Diffusion web UIのControlNet拡張機能を最新版(v1.1の2023/04/18以降のバージョン)に更新します。

最新版ではなくてもモデルを入れれば一応MediaPipeFace自体は使えるのですが、表情検出を行うプリプロセッサは新しいバージョンでしか使えません。古いバージョンのままではとても不便なので一手間かけてでも更新しておきましょう。

ControlNet用モデルをダウンロードして所定のフォルダに入れる

次はMediaPipeFace用のモデルをダウンロードして所定のフォルダに入れます。

下記ページ(Hugging Face)から「control_v2p_sd15_mediapipe_face.safetensors」をダウンロードしてください。

CrucibleAI/ControlNetMediaPipeFace at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

MediaPipeFaceモデルのダウンロード方法

そうしたらこのファイルを下記のフォルダに移動させてください。

webui\models\ControlNet

これで下準備は完了です。web UIを起動中の場合は再読込すると、ControlNetのモデル欄にMediaPipeFaceの項目が出るようになります。

MediaPipeFaceの使い方

ではMediaPipeFaceの使い方について簡潔にご説明します。

ControlNetの設定方法

下記のように設定を行ってください。

ControlNetの設定例

  • 有効化:チェックを入れる
  • プリプロセッサ:mediapipe_face
  • モデル:control_v2p_sd15_mediapipe_face

あとはデフォルトでも大丈夫です(※ただしキャラクターが複数人の場合は「Max Faces」の値を人数分に変えてください)。いつも通り呪文を記入して画像を生成してください。

注意点

MediaPipeFaceは表情を正確に検出してくれるのですが、(執筆時点では)その検出結果を生成に使う際に目や口の状態が無視されることが多いというまあまあ重大な問題があります。

そのため表情の指定すべてをMediaPipeFaceにお任せするのではなく、目や口は呪文で指定しておくと(例えば目を閉じているなら「closed eyes」など)より正確な結果を得ることができます。

おまけ:ControlNet v1.1の「Openpose Face」との比較

最後に、執筆時点のControlNetの最新版(v1.1)ではOpenposeモデルにも表情指定機能が搭載されているので、それとMediaPipeFaceを比較してみようと思います。

入力画像 MediaPipeFace Openpose Face
叫んでいる少年の写真 MediaPipeFaceで生成した美少女イラストの例 Openpose Faceで生成した美少女イラストの例
条件:ControlNetのプリプロセッサとモデル以外は同一条件で生成

結果を見てみるとOpenpose Faceのほうが入力画像に厳密に従うような印象ですね。ただ

  • 表情さえ指定できれば厳密さはそこまで必要ない
  • ある程度の「ゆらぎ」があったほうが面白い画像を生成できそうだ

という場合はMediaPipeFaceのほうが使いやすいと思います。状況に応じて使い分けてください。

おわりに

以上、キャラクターの表情を制御できる「MediaPipeFace」をControlNetで使う方法をご紹介しました。大げさな表情の場合に活用しやすいモデルなので、コミカルな表情のイラストを生成してみたいという方はぜひ試してみてください。

この記事が何かしら参考になれば幸いです。