「コピーでもトレースでもなく、雰囲気の似た画像を生成したい」
「簡単に手っ取り早くいい感じの画像を生成したい」
このような場合には、ControlNetのReference-onlyがオススメです。
この記事では、ControlNetのReference-onlyについて解説しています。
本記事の内容
- ControlNetのReference-onlyとは?
- Reference-onlyの利用方法
- Reference-onlyの動作確認
それでは、上記に沿って解説していきます。
ControlNetのReference-onlyとは?
ControlNetに新たにReference-onlyという技術が、実装されました。
web UIでも2023年5月13日から利用可能となっています。
Reference-onlyは、画像を「参照のみ」して画像生成を行います。
ざっくり言うと、スタイル転送を可能にしています。
それもたった1枚の画像によってです。
もっと言うと、1枚の画像だけでLoRAのようなことを実現しています。
具体的には、次のようなことが可能になります。

プロンプトには、次のように入力してReference-onlyを実行しています。
a dog running on grassland, best quality
結果を見ると、アップロードされた画像の犬をプロンプトで操作できています。
ただ、よく見ると完全に同じ犬ではありません。
そのことは、人を対象にするとよくわかります。
例えば、次のような画像をReference-onlyの対象にするとします。

この画像をもとに生成される画像は、次のようになります。

似てはいますが、同じ人とは言えません。
コピーではなく、あくまで「参照」ですからね。
ちなみに、参照元の画像はMidjourney v5.1で生成された画像です。
結果的に、Midjourney v5.1のスタイルをStable Diffusionに転送できています。
この検証に関しては、ControlNetの開発者自らが次のページで説明しています。
https://github.com/Mikubill/sd-webui-controlnet/discussions/1236#discussioncomment-5891498
このように、完コピではないところにReference-onlyの特徴があります。
コピーでもトレースでもなく、あくまで「参照のみ」を行っているのです。
以上、ControlNetのReference-onlyについて説明しました。
次は、Reference-onlyの利用方法を説明します。
Reference-onlyの利用方法
AUTOMATIC1111版web UIのインストールは、大前提です。
AUTOMATIC1111版web UIは、いつまでGoogle Colabで利用できるのでしょうか。
RedditやTwitterなどでは、無償版はもうまともに動かないという報告もあるようです。
そして、ControlNet のインストールも済ませておきましょう。
ControlNet がインストール済みであるなら、最新版にアップデートすることは必須です。
最新版であるならば、Preprocessorを確認します。

「reference_only」を確認できれば、OK。
なお、Reference-onlyにはモデルがありません。
通常は、PreprocessorとModelをペアで利用しますよね。

しかし、Reference-onlyの場合にはモデルの選択が不要となります。

「reference_only」を選択したら、Reference-onlyを利用できるようになりました。
まずは、「txt2img」タブを開きます。
そして、ControlNetを開いて、画像をアップロードしましょう。
追記 2023年5月16日
reference関連のPreprocessorに機能追加がありました。

設定は、下線の箇所だけでOK。
それ以外は、デフォルトで構いません。
あとは、普通に画像生成を行うだけです。
ただし、サンプラーは「Euler a」を利用します。

参考ページなどを見ると、どれも「Euler a」を利用しています。
他のサンプラーよりも、「Euler a」で生成される画像の方が画質も良いように感じます。
あくまで、個人の主観に過ぎませんけどね。
以上、Reference-onlyの利用方法を説明しました。
次は、Reference-onlyの動作確認を説明します。
Reference-onlyの動作確認
まずは、犬を走らせてみましょう。

モデルは、DreamShaperを利用します。
プロンプトは、以下を利用。
a dog running on grassland, best quality
結果は、以下。

次は、アニメ画像を対象にしてみましょう。

そして、プロンプトは指定しません。
スタイルだけ適用して、あとはお任せ状態です。
それに対して、ネガティブプロンプトは指定します。
崩れた画像は、見たくありませんので。
その際に利用するのは、次のNegative Embeddingとなります。
- EasyNegativeV2
- negative_hand-neg
EasyNegativeV2については、次の記事内で説明しています。
negative_handは、次の記事で解説しています。
モデルについては、以下を試してみましょう。
- Anything V5
- Hassaku
- MeinaHentai
- FaeTastic
- CarDos Anime
- BRAV5
それぞれの結果は、以下となります。






大体は、予想通りの結果となっています。
やはり、実写系モデルのBRAV5では厳しいようです
また、MeinaHentaiでは全体が暗くなっています。
他にも、このようなモデルが存在しています。
つまり、Reference-onlyにはモデルとの相性があるということです。
この辺は、実際に試して確かめるしかないでしょうね。
以上、Reference-onlyの動作確認を説明しました。