先日、ControlNetに新しく追加されたReference-onlyを使うと、簡単に好きなキャラクターの画像を生成することができます。これまで、出したいキャラクターを出そうと思ったら、LoRAなどで学習させて、LoRAモデルを作成し、それを使って生成するのが王道でした。今回、LoRAを使わずに好きなキャラクターを生成してみます。
ControlNet reference onlyの導入
Reference-onlyを使うには、最新のControlNetが必要です。すでにControlNetをインストールしている人もControlNet1.1.153以降が必要になりますので、最新版に更新しましょう。もし、ControlNet1.1が入っていない方は、この機会にControlNet1.1のアップデートして、モデルも入手しましょう。(参考:進化したControlNet1.1のレビュー(Stable Diffusion Web UI))Reference-onlyを使うにはControlNetの更新だけでOKで、特に手動でモデルを追加する必要はありません。ControlNetをアップデートして、再起動しましょう。「Extensions」で「Install」のタグから「Check for updates」を押してアップデートを確認します。
更新があると、下記のように表示されますので、「Apply and restart UI」のボタンを押しましょう。
reference onlyの使い方
reference onlyを使うにはtxt2imgでControlNetに参照したい画像を添付して、Preprocessorに「reference_only」を選択するだけです。あとは、プロンプトで生成したい画像の情報を入力します。「Ending Control Step」は少し下げておいた方が、より自然な画像が生成するようです。また、ここでは、キャラクターの容姿はreference onlyで参照するので、シンプルなプロンプトでも生成可能です。さらに、他のControlNetと併用可能です。複数のControlNetを使いたい場合は、setiingsのcontrolnetから、「」を増やすことで、同時に使えるControlNetの数を増やすことができます。
例として、東北ずん子様の画像を使わせていただき、reference_onlyで画像を参照してみます。今回は、ControlNetのOpenposeを併用してポーズを固定して画像を生成してみます。
プロンプトは以下のシンプルなプロンプトを使っています。ずん子様の容姿には触れず、服装のみ、制服を指定させていただきました。
(illustration:1.0), masterpiece, best quality, 1girl, solo, school uniform, outdoor, street
生成した画像は以下の通り。ずん子様そのままという感じではありませんが、髪色など「green hair」というプロンプトは入っていないにも関わらず、しっかり参照してくれていることが分かります。
MultiControlNetで複数の画像を参照してみる
複数の画像のreference onlyをMultiControlNetで設定してみます。先ほどと同じく東北ずん子様の画像を参照元として画像を生成してみます。今回、以下の3種類の制服カットの画像を使用しました。
プロンプトは先ほどと同じプロンプトで生成を行いました。大きな変化はありませんが、例えば目の色など、元のずん子様に近づいていることが分かります。また、制服の一部の生地が緑色になったりしています。MultiControlNetで重ねることで、より参照元のずん子様に近づくことが分かりました。(ただし、MultiControlNetでの処理で1枚の画像生成でもかなり時間が掛かってしまいます。)
img2imgで使ってみる
img2imgでreference onlyを使うと、元画像に対して、reference onlyで選択した画像の要素を取り入れた画像を生成することができます。下記では着物の女性の画像に対して、制服の女性の要素をreference onlyで参照させて生成画像を変えています。
同じようにinpaintでもつかうことができます。その場合、変更箇所は最小限で済ますことができます。
最後に
今回はControlNetのreference onlyを紹介しました。reference onlyは単独で使っても面白いですが、狙った画像を作るという目的で、他のControlNetと組み合わすこともできるので、いろいろな使い道がありそうです。
mov2movへの応用例
コメント