【Stable Diffusion】部分的に色を指定できる拡張機能「Cutoff」を使ってオッドアイのキャラを生成してみよう!【色移り防止】

こんにちは!悠です!

 

プロンプトで「red eyes」と指定しても目の色が赤色にならなかったり、「pink skirt」と指定してもスカートがピンク色にならないことってよくありますよね。

特に長いプロンプトを使って生成するときに起こりがちな現象だと思います。

 

そこで今回は、「Stable Diffusion」で生成されるAIイラストの各部位の色を指定できる拡張機能「Cutoff」の使い方を紹介していきます。

私が大好きなオッドアイ(左右の瞳の色が違う)のキャラクターの生成を例にしていきますね!

 

アイキャッチ画像は「animelike2d」で作成しています。
スポンサーリンク
スポンサーリンク

「Cutoff」とは?

GitHub - hnmr293/sd-webui-cutoff: Cutoff - Cutting Off Prompt Effect
Cutoff - Cutting Off Prompt Effect. Contribute to hnmr293/sd-webui-cutoff development by creating an account on GitHub.

 

拡張機能「Cutoff(Cutting Off Prompt Effect)」とは、指定されたトークンを「padding token」というものに書き換えることで、特定のトークンへの影響を取り除けるというものです。

 

Readmeに書いてある具体例が非常にわかりやすいので引用します。

ここで a cute girl, pink hair, red shoes というプロンプトを考える。 普通、こういったプロンプトの意図は

  1. pink は hair だけに係っており shoes には係っていない。
  2. 同様に red も hair には係っていない。
  3. a cute girl は全体に係っていて欲しい。hair や shoes は女の子に合うものが出て欲しい。

……というもののはずである。

しかしながら、EvViz2 などでトークン間の関係を見ると、そううまくはいっていないことが多い。 つまり、shoes の位置のベクトルに pink の影響が出てしまっていたりする。

一方で上述の通り a cute girl の影響は乗っていて欲しいわけで、どうにかして、特定のトークンの影響を取り除けるようにしたい。

この拡張では、指定されたトークンを padding token に書き換えることでそれを実現している。

たとえば red shoes の部分に対応して a cute girl, _ hair, red shoes というプロンプトを生成する。red と shoes に対応する位置のベクトルをここから生成したもので上書きしてやることで、pink の影響を除外している。

出典:https://github.com/hnmr293/sd-webui-cutoff

 

要はpinkという色の指定が、適用したいhairだけではなくshoesにまで作用される「色移り現象」を防止できるんですね。

別の記事で紹介したBREAK構文に似ていますが、あれをもっと使いやすくした感じの拡張機能になっています。

 

「Cutoff」の導入方法

 

Google Colaboratory版の場合

下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「Cutoff」を導入していきます。

まだご覧になっていない方は、まず最初にこちらを準備しておいてください。

【Stable Diffusion】AUTOMATIC1111のWebUIをGoogle Colaboratory上で使う方法!【maintained by Akaibu】
「Stable Diffusion」で、「AUTOMATIC1111」が用意しているノートブック「maintained by Akaibu」を使って、Google Colaboratory上で自分の好きなモデルデータやLoRAを使用する方法についてまとめた記事です。
【Stable Diffusion】AUTOMATIC1111のColab版でLoRAを使う方法について紹介!【maintained by Akaibu】
AUTOMATIC1111のColab版「maintained by Akaibu」でLoRAを使う方法についてまとめた記事です。2.5D風AIコスプレイヤーを作成できる「KoreanStyle2.5D」も紹介しています。

 

Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力してください。

#Cutoffをインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/hnmr293/sd-webui-cutoff /content/stable-diffusion-webui/extensions/sd-webui-cutoff

%cd /content/stable-diffusion-webui

 

txt2imgおよびimg2imgタブに、Cutoffの項目が表示されていれば導入は成功です。

 

ローカル版の場合

「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう。

https://github.com/hnmr293/sd-webui-cutoff

 

 

「Cutoff」の使い方

具体例として拡張機能「Cutoff」を使って、片方は赤色の瞳、もう片方は青色の瞳のオッドアイの美少女を生成していきたいと思います。

モデルには「animelike2d」を使用しています。

 

まずは通常通りプロンプトを入力します。今回使ったものは次の通りです。

【Positive】
masterpiece, best quality, absurdres, highres, official art, 1girl, solo, upper body, heterochromia, red eyes, blue eyes, bare shoulders, black hair, blurry, blush, medium breasts, chromatic aberration, detached collar, detached sleeves, dress, frilled hairband, frills, garter straps, hairband, arm behind back, long hair, looking at viewer, open mouth, orange dress, red ribbon, ribbon, sleeveless, sleeveless dress, smile, strap slip, twintails
【Negative】
(worst quality, low quality:1.4), (monochrome, greyscale:1.4), nude, bad-hands-5, EasyNegative, bad anatomy, logo

 

オッドアイはodd eyeではなく、heterochromiaで指定する方が良いらしいので覚えておきましょう。

 

プロンプトを入力したら設定欄にあるCutoffの項目を開きます。

Enabledにチェックを入れ、Target tokensに指定したい部位の色を入力します。今回は瞳の色であるredとblueですね。

 

これだけで設定はOKです。後は通常通りGenerateボタンでイラストを生成してみましょう。

 

 

指定した通りの瞳の色が反映されていますね。打率も高く、10枚中7枚以上は正確に反映されている印象です。

オッドアイはCutoffなしだと結構難しく、安定して出しにくい特徴の1つなので助かりますね!



まとめ

以上が、「Stable Diffusion」で生成されるAIイラストの各部位の色を指定できる拡張機能「Cutoff」の使い方でした。

BREAK構文を使わずとも色移りを防止できる、非常に簡単で便利な拡張機能なので、皆様もぜひ試してみてくださいね!

では、ここまで読んでいただきありがとうございました。

コメント