← Back to スタジオ真榊

Pixiv Fanbox

SDXL用Controlnetが理解る!おすすめモデル&活用例を徹底解説

Published 06/06/2024, 03:20:34 PM · Edited 01/05/2026, 12:13:32 AM

SDXL用Controlnetが理解る!おすすめモデル&活用例を徹底解説



【2024.10.06更新】スケッチ読み取りCN「XDoG-sketch」を追加しました。



こんにちは、スタジオ真榊です。こちらの記事は、SDXL向けControlnetの基本的知識や導入方法、おすすめのモデル、実際の使い方を紹介する大型特集です。ラフを線画化したり、線画を着色してもらったり、写真をイラスト風に変えたり、特定の部位だけを描き変えたり、高精細にアップスケールしたりと、各モデルのさまざまな活用方法を紹介しています。


デモとして使用するwebUIは「Forge」、モデルは「AnimagineXL3.1」です。SDXL用のControlnetはSD1.5系の学習モデルでは使用できませんので、SD1.5系モデルを利用される方はこちらの記事をご参照ください。



目次

・Controlnetとは?

・インストール&アップデート方法(For A1111)

・CNモデルのダウンロード先

・Controlnet画面の見方

・プリプロセッサとは

・SDXL用のおすすめCNモデル(※随時更新)

 - CN-anytest_v3 & v4【着色・スタイル変更・描き直し】

 - ControlNet-LineartXL 【線画継承】

 - controlnetXL_line2color【線画着色】

 - XDoG-sketch【ラフで構図制御】 ◀New!

 - 852_a_scribble_xl【ラフを"清書"/写真をイラストに】

 - 852_a_clone_xl【CNアップスケール】 

 - Canny【輪郭抽出】

 - Openpose【ポーズ抽出】

 - Depth【深度抽出】

 - IP Adapter【画像を"お手本"に】

 - controlnetXL_inpaint【インペイント】

 - inpaint_only+lama【生成消しゴム】

・終わりに


Controlnetとは?

「Controlnet(以下、CN)」は、ある画像をStableDiffusionに参照させ、その画像に描かれたものの輪郭や立体感などを抽出することで、それをベースにした画像を生成できる技術のことです。輪郭だけを維持しながら別のイラストにできる「Canny」や「Lineart」、ラフを清書できる「Scribble」、立体情報を与えて生成画像を操作できる「Depth」など、さまざまな学習を施された「Controlnetモデル」がウェブ上で流通しています。また、それらが入力画像を認識するための下ごしらえをする「プリプロセッサ(前処理機能)」というものが個別に用意されており、これらを使いこなすことで、さまざまな絵作りができるようになるわけです。

▲「Canny」で輪郭を継承し、プロンプトを「blonde hair,red eyes」に変更した例


SD1.5系のCNモデルに比べると、後発のSDXL用CNモデルはなかなか精度が担保できなかったのですが、2024年5月ごろから高品質なモデルが日本の個人発で次々に公開され、ラフのオート線画化や線画の着色といったことが実用レベルでできるようになってきました。この記事では、公開されているモデルを網羅するのではなく、普段特に有用であると感じているモデルに絞って、できることや具体的な使い方を解説していきたいと思います。



インストール&アップデート方法(For A1111)

Automatic1111版SDwebUIでControlnetを使うには、事前に拡張機能をインストールする必要があります。Controlnet開発者が公開したwebUI「Forge」では、デフォルト機能として最初からControlnetが使えるので、次の項目へ飛んで構いません。


インストールは簡単。SDwebUIの「拡張機能」タブから「URLからインストール」をクリックし、「拡張機能のリポジトリのURL」欄に「https://github.com/Mikubill/sd-webui-controlnet.git」と入力します。

インストールボタンを押して少し待つと、入力欄の下にインストール完了を告げるメッセージが表示されるので、2つ隣の「インストール済」タブに移動し、「アップデートを確認」ボタンをクリック。読み込みが終了したら、「適用して UI を再起動」ボタンを押せばOKです。txt2imgの画面の下の方に「controlnet v〇〇...◀」というタブができていれば成功です。(Forgeの場合はデフォルトで"ControlNet Integrated ◀"というタブが存在します)

アップデートの有無も確認しておきましょう。webUIの「拡張機能」から「アップデートを確認」をクリック。「sd-webui-controlnet」の欄の右端にある「アップデート」のところに「更新あり」と出たら、「適用してUIを再起動」すればOKです。



CNモデルのダウンロード先

Controlnetを使うためには、checkpointやLoRAのように「Controlnetモデル(以下、CNモデル)」を所定のフォルダにダウンロードする必要があります。CannyやDepth用のSDXL向けCNモデル(拡張子:safetensors)は、代表的なものがこちらのリンク先でまとめられているほか、個人配布のモデルをCivitaiなどでDLすることができます(後述)

ファイル名に「xl」とあるのがSDXL用、「sd15」とあるのがSD1.5用のCNモデルですので、混同しないよう注意。同じモデルでもfullやsmallといった学習方法のバージョン違いがあり、基本的にファイルサイズが大きいほど性能が良い傾向にあります。


(※初めてでどれをDLしたらいいか分からない方は、とりあえず容量が軽めで使いやすい輪郭継承モデル「kohya_controllllite_xl_canny_anime.safetensors」を保存しておいて、慣れてから需要に応じて必要なモデルをDLするとよいでしょう)


「LFS」の隣にある下矢印をクリックすればダウンロードが始まります。ダウンロード先は、使用するwebUIによって異なりますが、基本的にはwebUIのインストールフォルダの中から「models」フォルダを探して、その中にある「Controlnet」フォルダに置けば大丈夫です。


StabilityMatrixを利用してwebUIをインストールした方は「Data/Models/Controlnet」フォルダの中に配置すれば、どのwebUIからでも利用できます。このモデル格納フォルダは、StabilityMatrixの「Checkpoints」画面から、右上の「モデルフォルダ」をクリックすることでも開くことができます。(詳しくは下記記事参照)



こちらがForgeのControlnet画面ですが、CNモデルを正しいフォルダに配置できていれば、このように操作画面右列の「モデル」一覧をクリックすると、名前が一覧表示されます。(正しく配置しているはずなのに表示されない場合は、横の青い更新ボタンを押してみましょう)



Controlnet画面の見方


【A1111版】

Unit0~Unit3と、タブが横に並ぶのが特徴。基本的にはUnit0の一つしか使わないが、別のタブも使うと複数のCNを併用することもできる。タブの数は設定欄の「Multi-ControlNet: ControlNet unit number (requires restart)」から増減できる。


【Forge版】

1つめの「Unit0」がまず大きく表示されているのがForge版の特徴。2つ目以降のCNを適用したい場合は画面下にUnit1以降が並んでいる。A1111版と同じ設定欄で増減可。


text to imageか、image to image画面で画像生成をする際、CNメニューの「有効化」にチェックを入れることで、生成過程にControlnetを影響させることができます。


具体的手順は次の通り。


①「有効化」にチェックを入れ、入力画像欄に参照させたい画像を読み込ませる。(複数のUnitを有効化することで、複数のCNを同時に影響させることもできる)

②「プリプロセッサ」を選び、これから利用するCNモデルに適した下処理をする。使用するモデルによって、「白背景に黒線」「黒背景に白線」「normalmap」「depth」などと適切な下処理が異なるので、組み合わせを覚えよう。

③あとは通常の生成時と同様、プロンプトやSTEP数、キャンバスサイズなどを設定して生成すると、CNの影響を受けた画像が生成される。


A1111とForgeで微妙に見た目の違いがありますが、使い方はほぼ同じです。


・有効化

ここにチェックを入れることで、Controlnet機能を発動できる。入れ忘れ・入れっぱなしに注意。

・低VRAM(A1111版のみ)

グラフィックボードのメモリ(VRAM)が8GB以下の場合はこちらにチェックを入れると、画像の生成速度が大きく下がる代わりに、VRAM不足の環境でもエラーを回避して生成することができる。VRAM4GBでも動作したとの報告あり。

・Pixel Perfect

プリプロセッサによっては、抽出する解像度(Preprocessor resolution)を手動で設定する必要があるが、ここにチェックを入れておくと、自動で最適なプリプロセッサ解像度が計算される。適当にONにしておいて問題なし

・Allow Preview

ここにチェックを入れて、プリプロセッサ欄とモデル欄の中間にある爆発ボタンをクリックすることで、プリプロセッサが元画像から何を抽出したかプレビューしたり、抽出画像を編集したりすることができる。プレビュー画像は右上の「↓」ボタンでダウンロードしたり、「Edit」ボタンで加工したりできる。プリプロセッサ「lineart_realistic」で抽出した線画はそこそこ高品質なので、画像編集ソフトで黒白反転させると通常の線画として画像編集に使える。

・Controlnet weight

 Controlnetの「重み」を調整できる最重要パラメータ。1(=100%)が基本で、それ以下に弱めるとControlnetで入力した抽出情報の参照度が下がる代わりに、AIが自由に描けるようになるので、一般に品質は上がる。

 プリプロセッサやモデルの組み合わせ、どんな画像を作りたいか等によって適切な設定は異なり、常に「1」でよいものもあれば、0.5~0.9程度で調整するとよいものもある。複数のCNモデルを「1」で適用すると、拘束力が強すぎてガビガビの生成結果になりやすいので、適宜弱めよう。

・StartingControlStep / EndingControlStep

 Controlnetの効果がステップ全体のどの範囲に効かせるか選ぶことができる。

0が0%、1が100%を意味しており、デフォルトでは「0でスタート、1でエンド」。こうしておくとノイズ状態(0%)から生成終了(100%)まで全てのステップにCNの効果が及ぶが、例えばスタートを「0.8」にすることで、全体の80%に当たるステップ数から影響が出始める。(画像生成の最後の20%だけ影響する)

 なぜこんな機能が必要かというと、ステップ全体に効かせると画像生成に制約が掛かりすぎて品質が低下してしまうことがあるため。例えば、キャラクターの手の輪郭だけをLineartで指示したいのに、全ステップにその輪郭が効いてしまうと「手しかないイラスト」ができてしまうようなケースが起こる。

 モデルによって適切な設定は異なるが、基本は「スタート0エンド1」もしくは「スタート0.1エンド0.8」程度にしておき、品質低下や不都合が生じたらcontrol weightと合わせて調整するといい。CNが上手な人はこのパラメータの扱いがうまい。

・Preprocessor resolution

プリプロセッサ(前処理)を行って生成する下処理画像の解像度。プリプロセッサを選ぶと下図のように表示されることがある。Pixel PerfectをONにすることで自動的に適切な数値にしてくれるので、こだわりがなければそれでOK。手動で入力する場合、数値が64の倍数でないと自動で近似値に調整されて横縦のサイズがおかしくなるなど不都合が起きるので注意。特に線画を抽出する際は、元画像と重ならなくなってしまう。


・controlモード

 プロンプト指示とControlnetの指示のどちらかをより強く影響させることができる。デフォルトでは両方を取り入れる「バランス」モードになっているが、「my prompt is more important」を選ぶとControlnetの拘束よりもプロンプト再現を優先してくれる。CNモデルによってこのモード別の生成結果は大きく変わるので、XYZ Plotを使ってテストしてみるとよい。

 Lineart系のCNで線画をしっかり保持したいならControlnet is more important、線画をほどよく無視して自由にキレイな絵を生成したいなら「My prompt~」を選ぶとよいことになるが、経験上「バランス」が一番CNに忠実な結果になることが多い。

▲「Controlnet is~」より、なぜか「Balance」の方が原画に近い結果になるケース


・Hires-Fix Option

Hires(高解像度補助)をONにしたときだけ現れるメニュー。Hiresは通常生成をしたのちに高解像度化処理を掛けるが、Controlnetを2段階のうちどちらに掛けるかを選ぶことができる。


プリプロセッサとは

プリプロセッサは、読み込ませる画像をControlnetの各モデルが理解できる形に前処理する「下ごしらえ」担当の機能です。例えば、canny系のcontrolnetモデルは黒地に白で描かれた線画を読み込んで同じ線のイラストを生成できるようトレーニングしているので、通常の線画(白地に黒で描かれたもの)をそのまま読み込ませるとネガポジ反転した変な画像ができあがってしまいます。そこでこのように、白黒反転できるプリプロセッサに「下ごしらえ」をさせる必要がでてくるわけです。

「lineart_realistic」によって入力画像(左)から線画部分が抽出され、白黒反転された(右)ことが分かりますね。ちなみに、画面右端の小さい「Edit」ボタンを押すと、画像編集ソフトがこの画面で起動し、誤って抽出された余計な線に消しゴムを掛けたり、抽出できなかった必要な線を書き足したりすることができます。


こちらの画像は、同じ画像に「depth anything」という深度情報を抽出するプリプロセッサを掛けたもの。立体的なシルエットが抽出されていることが分かります。

これを「diffusers_xl_depth_full 」などのdepth系CNモデルに読み込ませることで、深度情報だけを継承した新しい画像を生成することができるわけです。左の画像をそのままで読み込ませても、depthモデルは処理することができません。


プリプロセッサを「なし(none)」にすると、読み込ませた画像を下処理せず、そのままControlnetのモデルに送ることができます。例えば、既に黒背景に白線で描いた線画が手元にある場合は「下処理済み」なわけですから、プリプロセッサに掛ける必要がないため「none」を選ぶことになります。どういった状態で画像を読み込ませるべきかは、CN制作者がそのモデルにどういう学習をさせたかによって変わるので、配布元でどのプリプロセッサを使うべきか確認しておきましょう。


【ポイント1】初めて使うプリプロセッサはDLに時間がかかる

プリプロセッサの必要ファイルは初回使用時に自動でDLされる仕様です。爆発ボタンを押してからしばらく反応がない場合、バックグラウンドでDLが進行していることがほとんどです。コマンドプロンプト画面を確認してみましょう。


【ポイント2】CNモデルと組み合わせられるプリプロセッサは一つではない

前段階のプリプロセッサと本番の各モデルの組み合わせは必ずしも一つだけではなく、目的によって使い分けられることもあります。例えば、Lineartモデルには「Lineart standard」というプリプロセッサが対応していますが、ほかに「Lineart realistic」など複数のプリプロセッサを使うことができ、それぞれ生成結果が変わります。CNを使った生成画像の精度は入力する画像の品質に左右されるので、できるだけ高品質な画像を最適なプリプロセッサで処理して入力する必要があります。


【ポイント3】ForgeではCNのXYZ Plot比較ができない

2024年6月現在、ForgeではなぜかXYZ PlotにControlnet関連の選択肢が表示されません。Controlnet開発者が送り出したWebUIなのになぜ?と思いますが、今後のアップデート対応に期待しましょう。A1111版ではちゃんと選択肢にありますので、プリプロセッサやCN強度による変化を比較できます。







SDXL用のおすすめCNモデル(※随時更新)

ここからは、具体的におすすめなSDXL用CNモデルとDL先、具体的な使い道、関連拡張機能などを詳しく紹介していきます。(掲載モデルは随時更新します)


★★CN-anytest_v3:線画着色もスタイル変更もインペイントもできる万能モデル

★★CN-anytest_v4_merged:上記「v3」よりも、やや継承度を弱める代わりにスタイル変換の自由度を上げた調整モデル

・ControlNet-LineartXL :アニメ調イラストから線画部分を継承できるモデル

・controlnetXL_line2color:線画のAI着色に特化したモデル

★controlnetXL_XDoG sketch:ラフや落書きで構図のみを指示し、自然な仕上がりにしてもらえるモデル

・852_a_scribble_xl:ラフを線画化したり、着色したり。写真のイラスト化も可能

・852_a_clone_xl:scribbleより強く線画と明暗を固定する。アップスケールに有効

・Canny系:汎用度の高い輪郭抽出モデル。写真からの抽出など、Lineartでうまくいかないときはこちらを使う

・Openpose系:ポーズ抽出モデル。表情やポーズ、手の位置や形といった位置情報だけを「ボーン」として抽出し、同じポーズをした全く別の画像を生成できる。

・Depth系:深度抽出モデル。イラストに立体的な位置関係を与えたいときに使用すると良い。フラットなアニメイラストより、立体的な写真・3DCGなど向き。

・IP Adapter:NovelAIの「バイブストランスファー」のように、入力画像を「お手本」にして生成してもらう。キャラの一貫性保持、服の着せ替えなどに。

★controlnetXL_inpaint:インペイントモデル。画像の一部だけを描き換えられる。

・inpaint_only+lama:プリプロセッサ単体で動作する「生成消しゴム」的機能



CN-anytest_v3 & v4【着色・スタイル変更・描き直し】

【制作者】月須和・那々 (@nana_tsukisuwa) さん

【推奨プリプロセッサ】none

【DL】下記URLの「CN-anytest_v3」「CN-anytest_v4」から始まるモデルのいずれか。例えば「CN-anytest_v3-50000_am_〇〇」がAnimagineXL用、「CN-anytest_v3-50000_pn_〇〇」がPony用。dim(次元数)は高い方が学習内容が強く反映され、低い方がふんわり影響させられる。よくわからない方は「dim256」を最初に試すと良い。

【特色】

・FLAT LoRAを生んだ追加学習の天才、月須和さんが突如お出ししてきた、「線画着色」「スタイル変更」「インペイント」「背景変更」と幅広い用途に使える万能Controlnet。参照画像に何を放り込んでどんなプロンプト指示をするかによって、さまざまな反応を見せる。

・v3は「基本的に入力画像の線画部分を維持しつつ、プロンプトや適用LoRAに応じてそれ以外を変更する」挙動をする。つまり、プロンプトと入力画像に矛盾があれば、線画に抵触しない範囲で書き換えてくれる。カラーは引き継がず、プロンプトに従うが、自分で雑に塗った画像をdenoise強めにimage2imageすればカラー指定もできる。

・一方v4は、「線画(被写体)は多少変更されてもよいので、その分プロンプト指示によって自由なスタイル変換ができる」ように調整されたモデル。上の画像のように、読み込ませた画像を全く別のスタイルに変化させられる。

・線画やカラー画像といった品質の高い画像を入力する場合はv3を、雑ラフなど低劣な画像を入力する場合は低劣さに引っ張られにくいv4を使うと良い。


【使い方】

・基本的に使用するプリプロセッサは「none」。白背景の線画やラフ、カラー画像をそのまま放り込めばよい。インペイントやアウトペイントをしたければ、その範囲を一色で塗りつぶしたものを読み込ませる。

・線画をAI着色したいときに現在最も有用なCNと思われる。詳しいやり方はこちらの記事を参照のこと。


【具体的な使用用途】

・線画着色:白背景の線画を放り込むと、線画部分を保持しながら着色してくれる。線画の一部が明らかに途切れている場合、プロンプトを参照して補う。v3向き。

・スタイル変更:カラー画像を放り込んで、画風をプロンプトで指示すると、その画風や質感に描き直してくれる。例えば、描き込みの量を調節したり、イラストを水彩画調、3D調、フィギュア風や石像風、写真風などに描き直すことができる。LoRAを使うとさらに強力に変化できる。v4向き。

・疑似インペイント:グレーで塗ったり、単純に線画を途切れさせた状態で入力すると、プロンプト指示に従ってその部分を推測してくれる。(※インペイントしていない部分も変化するので厳密にはインペイントではない)

・背景変更:白背景の画像を読み込ませて背景をプロンプト指示するだけで、背景を変更できる。キャラクターも多少変更される点に注意。



【実際の生成例10連発】

※基本的に、いずれも左の画像を強度1でanytest_v3に放り込んだだけです。


①線画を放り込んで着色(カラー指示なし)


②カラー画像を放り込んでフィギュア風LoRAを適用


③描き直したいところを背景色で塗りつぶす。「standing,full body」と指定すると、このように補われる。窮屈な画角になるのは「full body」を守ろうとするためなので、適宜プロンプトを調整するとよい。


④追加したい部分をグレーで塗る。プロンプトを変更して「ギターを持っている絵」と指定すると普通にインペイントされる。グレーでなく、背景色でもよい。とにかく線画が途切れていることと、そこに何かがある印象をAIに与えることが重要


⑤線画だけでなく、雑塗りを放り込むとこのようになる。ネクタイの色はまちまちで、線画と違って色はほぼ継承しないことが分かる。


元画像の色も継承させたい場合は、text2img画面ではなくimg2img画面で利用する。



⑥白背景の画像を入力し、プロンプトを「white background」から「outdoor,blue sky,city」に変えると余白部分に描いてくれる。


⑦線画の顔周辺をざっくり白く塗りつぶして入力し、「miorine rembran」と指示するとこうなる。(後述する"controlnetXL_inpaint"との併用でもできる)



⑧AI絵を任意に線画化

月須和さんの各種線画LoRAと併用することで、カラーイラストをタッチの異なる11種類の線画に変換できる。


⑨写真の主線のみを継承してイラストスタイルに変更

線画にできるだけ忠実にしたい場合に有効。(線画をほどよく無視して手描き調にしたい場合は、「v4」か後述する「852 a scribble」などを使うと良い)

▲左が入力した写真で、右が「on train,window,sky,train seat,house,train interior,cloud」で生成した結果。色合いは無視され、線画のみが継承されている。


⑩写真の線とカラー両方を継承しつつイラストスタイルに変更

▲こちらはimg2imgで鉛筆画風に画風変更したケース。元写真をimg2imgすることで色合いを継承できる。


(※それぞれの詳しいパラメータ設定や後発モデルの「anytest V4」については、後日単体特集記事で取り上げます)




ControlNet-LineartXL 【線画継承】

【制作者】かたらぎ(@redraw_1)さん

【推奨プリプロセッサ】lineart系

【DL】下記URLの「Files and versions」から。2.5GBのfp16版が通常版で、簡易的に使えるlora版もある。

【特色】

・カラー画像から線画を抜き出し、別の色に着色できるControlnet。黒背景に白線の画像を読み込ませる必要があるため、プリプロセッサは「lineart_anime_denoise」「lineart_anime」「lineart_realistic」などで黒背景の線画を抽出する。

・白背景に黒い線画を読み込ませることも可能。その場合、白黒反転するだけの「lineart_standard (from white bg & black line)」を使うこと。ただ、せっかくなら次に紹介する線画着色専用CN「line2color」を使ったほうが良い。

【注意点】

・推奨モデルはanimagineXL3.1。pony系はうまくいかなかった

・うまくできない場合はプリプロセッサをlineart系の別のものに変えてみるとよい。

・透明背景のpngは使用不可。

【入力例】

使用プロンプトは「1girl, smile,one eye closed, solo, long hair, smile, open mouth, shirt, black hair, ahoge,white ribbon,school uniform, instrument, dynamic pose,holding drumsticks, full body,perspective,sketch, masterpiece, best quality, very aesthetic, absurdres,, white background,simple background」


【生成結果】※チェリーピックなし・4枚一発生成


こちらは白背景の線画を反転して読み込ませた場合の結果。ごみが映り込んでいたためか、このように白い斑点が出てしまった。

【ポイント】この生成例ではいずれもストッキングではなくソックスと誤解しているが、これは入力線画にはっきりソックスに見えるラインが入っているため。こうした邪魔な線は、先述した「Edit」を使って消せる。あとは「pantyhose」とプロンプト指示すれば解決。


controlnetXL_line2color【線画着色】

【制作者】かたらぎ(@redraw_1)さん

【推奨プリプロセッサ】none

【DL】下記URLの「Files and versions」から。2.5GBのfp16版が通常版で、簡易的に使えるlora版もある。

【特色】

・「白背景の線画」への着色に特化したControlnet。Lineart系のCNには通常、黒背景に白線の画像を読み込ませるが、このモデルは白地に黒線の線画でないと機能しないので、プリプロセッサは必ず「none」を選ぶこと。

・線画部分を強力に固定する力があるが、モデルが得意ではない画風の線画を塗らせようとすると、着色が破綻することもある。

・他のControlnetと併用して線画部分を強力に継承するのにも使える。

・正確に塗らせる技として、雑塗りを自分で用意してi2iする方法がある。(後述)

【注意点】

・推奨モデルはanimagineXL3.1。 Pony系でも効くが、違った反応になる。

・特定のLoRAを併用しようとすると、生成が爆重になることがあった。

・透明背景のpngは使用不可。必ず白背景の画像を入力する。

【入力例】

【生成結果】  ※チェリーピックなし・4枚一発生成


【雑塗りをimage2image】

塗りたい線画に、適当な画像編集ソフトで雑にカラーを置いただけの画像を用意。先ほどと同じCN設定を適用し、denoising強め(0.65~0.9推奨)でimage2imageすることで、おおむね雑塗りのカラーを引き継いでくれる。他のControlnetでもカラーを強調したいときに使えるテクニックなので覚えておくとよい。


左がi2iもとの雑塗りで、右がチェリーピックなしの4枚同時生成。線画部分は強力にCNで固定されつつ、カラーもおおむね引き継がれている(色の解釈にある程度幅はできる)。より正確に塗りや色を指定したい場合はキャラLoRAを適用するか、プロンプトを練ろう。



XDoG-sketch【ラフで構図制御】 ◀New!

【制作者】かたらぎ(@redraw_1)さん

【推奨プリプロセッサ】none

【DL】下記URLを開いて、「Files and versions」から「ControlNetXL-Xdog_sketch.safetensors」(2.5GB)をDLする。

【特色】

・ラフや落書きを読み込ませて生成画像の構図をコントロールできるスケッチ系CN(2024年10月3日公開)。copainterのような「ラフの清書用」というより、雑なお絵描きでAIに何を描いてほしいのか理解してもらう用、と言ったほうが近い。

・最大の特徴は、CNを掛けるステップが前半3割程度(Ending control stepが0.25~0.3程度まで)を想定して学習されていること。生成ステップ全体をCNが拘束しないため、Controlnetを使わずにt2iしたかのような自然な仕上がりになる。

・一方で、Lineart系やAnytestV3のように線画部分をがっちり拘束するモデルではないので、ラフの線はプロンプトに従ってかなり遊動する。つまり、読み込ませたラフの画風は基本的に残らないので、読み込ませたラフに忠実に線画化・着色したい場合は不向き。

【使い方】Ending control stepを0.3以下にするのが最大のポイント。プリプロセッサは「none」で、白背景に黒で描いたラフを入力する。


生成結果はこのように、おおまかにラフの意図を読み取って自由に生成したような仕上がりになる。(左が入力画像、右が生成画像)


基本的に読み込ませた画像の「画風」は残らず、プロンプト重視の生成結果になるため、「ラフの清書」ではなく「ラフによる構図指定」といった方が近い。

きちんと描いたラフや線画を清書・着彩したい場合は、Lineartやanytest系のCNを使うか、copainterやAI-Assistantにお願いしよう。



852_a_scribble_xl【ラフを清書/写真をイラストに】

【制作者】852話(@8co28)さん

【推奨プリプロセッサ】lineart realistic(※scribble_xdogなども面白い)

【DL】下記のCivitaiから。normal/hard/very hardの3種類があり、参照画像への忠実度が変化する。(very hardの方がより強く拘束される)

【特色】

・ラフや落書きを入力すると、それをヒントにAIクォリティに描き直してくれる「清書(Scribble)系」CN。AI-AssistantV2におけるオート線画化機能の骨子となった。

・応用として、ラフでなく完成した絵や写真などを読み込ませても、「おおむね・ふんわり」その情報を参照しながら描き直してくれるので、汎用性が高い。例えば、画風LoRAを併用することで、風景写真を手描き風漫画背景にすることもできる。

・適用するプリプロセッサはlineart realisticがおすすめとのこと。場合によって「lineart anime」なども良い結果となった。


【入力例①:ラフの線画化】

もちろんAI-Assistantでも同じことができるが、細かく各パラメータを指定したい場合、次のような設定にするとよいようだ。


まず、白背景の線画をCN画面で読み込ませ、「lineart」系のプリプロセッサで白黒反転させる。プロンプトにはカラー系のタグ(blue hairなど)を一切入れず、「monochrome,lineart,white and black,greyscale」といった白黒系のタグを入れる。(線画化LoRAを利用するとよい)


こちらが生成結果。強度が1なのでラフに似た形で整えてくれているが、その分ラフの雑さに引っ張られてもいる。より品質を上げたい場合は、CNの強度(weight)を0.5~0.8程度に下げると良い。


低強度だと線画の品質が上がる代わりに、顔の画風が原画から離れてAIっぽくなる。そこで、低強度で出した全体の線画と高強度で出した顔を合成するというテクニックがある。



【入力例②:風景写真の手描き風スタイル変更】

「清書」機能の応用として、写真を手描き風の背景にすることもできる。元写真のカラーを無視したい場合はtxt2img、引き継ぎたい場合はimg2imgを使おう。

このように写真をlineart_realisticで読み込ませ、scribbleへ送る。


PP:no humans, mount_fuji,sky,utility_pole,cloud,power lines,tree,house,monochrome,grayscale,comic,unfinished+スタイル系LoRA(手書き風や線画風など、適用したい画風を選ぶ)


生成結果がこちら。適用するスタイルLoRAやプロンプトによって多様な変化ができる。






852_a_clone_xl【CNアップスケール】

【制作者】852話(@8co28)さん

【DL】下記のCivitaiから。記事執筆時点ではV1.0の一種類のみ。

【推奨プリプロセッサ】none

【特徴】

・SD1.5用の「CN Tile」によく似た挙動をするアニメ調の線画継承モデル。Anytest v3と似ており、線画部分を強力に維持しつつ細部は捨てて高精細に描き直すことができる。

・自由度のある「描き直し」ができるAnytestや852 a scribbleと比較すると、こちらは自由度を制限し、できるだけ元画像の通りに、高精細に描き直せるモデルという区別かなという印象。元画像をimage2imageアップスケールする際に「お供」として使用するのが良い。

・線画はしっかり保持されるが、「細部を捨てる」挙動にはカラーリングも含まれるため、i2iではなくt2iで使用するとカラーリングは変更されてしまう。この点はSD1.5用のTileとは異なる。ここまで紹介したCNはいずれも線画継承機能があるが、強弱や線画以外の情報をどう処理するかが違うので、目的によって使い分けよう。


【入力例と生成結果】

この512x680pxの画像を4倍サイズにimg2img(denoising:0.5)する際に、CNでも同じものを強度1で読み込ませた。プリプロセッサはなし。


「その他」タブでアップスケーラー「4x ultrasharp」を使って4倍サイズにしたものと比較するとこう。黒目の「溶け」などが改善されていることが分かる。ただ、色味は多少の変化が免れないようだ。




・輪郭抽出の基本「Canny」

【特徴】

・「Canny法」によって元画像の輪郭(エッジ)を抽出し、別のイラストを生成できるControlnet群。SDXL向けのモデルが多数存在し、いずれも品質は細かく異なるが、基本的には「ControlNet-LineartXL」に似た挙動をする。

・入力画像の主要な線画がそのまま抜き出されるLineart系と違って、Cannyで使用される線画はCanny独特の二重線のような形状になる。写真など、アニメ調イラストでない画像から輪郭抽出したい場合に強いようだ。

・基本的な使い方は、このように抽出したい画像を読み込ませてプリプロセッサ「Canny」で輪郭抽出し、Cannyモデルに読み込ませるだけ。

【主なモデルとDL先】

diffusers_xl_canny_full.safetensorsなど多数掲載

xinsir氏配布「controlnet-canny-sdxl-1.0」


・ポーズ抽出モデル「Openpose」

【特徴】

・読み込んだ画像から、表情やポーズ、手の位置や形といった位置情報だけを「ボーン」(上の画像のカラフルな棒人間)として抽出。同じ表情・ポーズをした全く別の画像を生成できる。

・抽出したポーズをあとから自由に調整することもできる。

・キャニーや線画抽出だと同じ「輪郭」のイラストしか作れないが、こちらは「口を大きく開けている」とか「こんなポーズをしている」といった情報のみを引き継げるので、生成するたびに線が重ならない画像ができる。

・プリプロセッサは基本的に「openpose」とついたものを選べば、元画像からポーズのみを抽出してくれる。後発の「DW openpose」が商用可で性能も高いのでオススメ。手や表情も抽出するかどうかはプリプロセッサによって変わる。


【主なモデルとDL先】

「thibaud_xl_openpose」など複数掲載。モデルによって、顔の表情や手も認識するフルモデルと、体のボーンにしか反応しないモデルがある点に注意。


【実際の生成例】

dw_openpose_fullでボーンを抽出する。ドットで表情が、カラフルな線で目と耳の位置、手足指や関節の位置が抽出される。今回は「thibaud_xl_openpose」に入力。


あとは普通に生成すると、検出されたポーズに矛盾しない範囲で、プロンプト指示した通りの画像が描き出される。


以下は、Openposeで使える便利な拡張機能。


①Openpose Editorで「手動指定」

ボーン(棒人間)は色さえ合っていれば認識するので、実は自分で描くこともできるし、多数のポーズが共有されているサイトもある。拡張機能「Openpose Editor」を使うことによって、元画像がなくても自分でポーズをつけることも可能。その場合はプリプロセッサを「なし」にして、直接モデルに読み込ませよう。

②SDwebUI Openpose Editorで「後修正」

名前がよく似ている別の拡張機能「SDwebUI Openpose Editor」を使えば、抽出されたボーンをあとから編集することもできる。抽出されたボーンの右下にある小さな「Edit」ボタンを押すと上記のようなメニュー画面が表示され、ドットの位置を自由に移動や追加・削除可能。



・深度抽出モデル「Depth」

【特徴】

・元画像に描かれているもののうち、何が手前にあり、どこが奥にあるかの「深度情報」を推測して抽出することで、同じ構図の絵を生成できるCNモデル。

・抽出画像は、白いものほど画面手前に、黒いものほど画面奥にあることを示している。Openposeと同様、引き継ぐのは位置関係のみで、そこに「何が描かれているか」まで詳細には継承しないので、プロンプトによって大きく変容させられるのが特徴。

・プリプロセッサによって抽出結果に差があり、生成結果もそれぞれ変わる。


【主なモデルとDL先】

「diffusers_xl_depth_full.safetensors」など複数掲載


【実際の生成例】

このように「depth_anything」で左の画像を下処理すると、震度情報が抽出される。性能によってキャラクターの顔立ちまで正確に抽出できるプリプロセッサもあるが、正確すぎると逆にキャラクターの入れ替えなどはできなくなる。


プロンプトを書き換えるとこのようにミオリネさんにできるが、ポニーテールや制服の深度は参照されているため、服装も強制的にこのようになる。



【便利な拡張機能】

「depthモデルにこのような素材を送り込んで、破綻した手などをきれいに修正するSDwebUIの拡張機能がある。細かいパラメータ設定にコツがあるため、詳しくは関連記事をご参照ください。




controlnetXL_inpaint【インペイント】

【制作者】かたらぎ(@redraw_1)さん

【推奨プリプロセッサ】inpaint系

【DL】下記URLの「Files and versions」から。

・NovelAIのV3インペイント機能のように、入力画像の塗りつぶした部分にプロンプト指示したものを自然になじませる機能。V3インペイントほど凄まじいなじませ効果はないが、手軽にキャラクターを風景に書き込んだり、惜しい画像を修正したりできる。

・このように画像の一部を塗りつぶし、プリプロセッサは「inpaint only+lama」を選択。あとはこの範囲に描きたいものをプロンプト指示するだけ。


「1girl,miorine rembran,long hair」と入れると、このように書き換えができる。(long hairを入れるのは、範囲に収めようとしてショートヘアになってしまうことがあるため)


V3インペイントではこれまでも解説してきた通り、背景の一部にキャラクター全体のなじませができる。同じようなことができるか実験してみると…


このようになった。これは4枚同時生成の中からチェリーピックしたもので、V3インペイントのように実写調のものに溶け込ませることまではできないようだ。


崩壊した手の修正に使うこともできた。同じ手順で両手を塗りつぶし、こちらで配布されている手修正LoRA「Fixhands_anime_bdsqlsz_V1.safetensors」を適用すると…。


このように描き直しができる。上記のLoRAは手以外にあまり影響を掛けないで修正ができるので、inpaintでなくてもミスを修正する力がある。(プリプロセッサはinpaint+lamaではなくinpaintでもよい)

        ←入力画像  /  LoRAを適用し、「1girl」で生成した4枚→




inpaint_only+lama【生成消しゴム】

【特色】いま紹介した「inpaint_only+lama」は、プリプロセッサのみで動作できる生成消しゴム的な機能。このようにプリプロセッサに「inpaint_only+lama」を選択し、入力した画像を塗りつぶすと、範囲内に描かれていたものが消えて周囲になじむ。

プレビュー画面に出た画像は右上の「↓」ボタンでDLできる。


拡大した図。右上の操作パネルがいい感じに消えているのが分かる。多少違和感はあるが、Adobe Photoshopで使える「生成塗りつぶし」のジェネリック版のような感じで気軽に使えるのでオススメ。




IP Adapter【画像を"お手本"に】

【特徴】

・イメージ的にはNovelAIの「バイブストランスファー」が近い。入力画像から描かれている要素を画像エンコーダで抽出して、できるだけ忠実に再現しようとする。ユーザーから見ると、タガーで入力画像のプロンプトを検出して適用したような挙動に見えるので、いわば画像をプロンプト替わりに使用するような感覚。

・上の例では、左の画像をプリプロセッサ「CLIP-ViT-H」にかけて「ip-adapter-plus_sdxl_vit-h」に読み込ませた。プロンプト欄は「1girl」だけで、ポーズや容姿を指示していなくても、入力画像に類似した右の4枚が出てきた。

・CNモデルによって、構図は似せずにキャラの容姿を寄せるものや、ポーズまで含めて全体的に再現するものなど、忠実度はさまざま。「キャラクターの一貫性を保てる」ほどのレベルではないので、バイブストランスファーのように、キャラ寄せのため弱めに適用するのがよいと思われる(未研究)

・モデル名に「ViT H」や「ViT BigG」とあるのは、使用する画像エンコーダの種類。基本的にCNモデル名に書かれているのと同じプリプロセッサを使用しないと認識されない。

【推奨プリプロセッサ】

記事執筆時点では「CLIP-ViT-bigG (IPAdapter)」「CLIP-ViT-H (IPAdapter)」「InsightFace+CLIP-H (IPAdapter)」の三つがある。HよりbigGの方が大きい画像エンコーダを使用して特徴を抽出するが、重い。

【主なモデルとDL先】

「Plus」とつくモデルは、上の例のように全体の構図まで継承する参照度の強いタイプ。「Face」とつくモデルは人物の一貫性を追求するもの。


【実際の生成例:服の着替え】

このイラストの服をIP-Adapterで着替えさせてみる。まずはさきほど解説した「inpaintXL」で首から下をこのように塗りつぶす。


今度はもう一つのUnit(どちらがUnit0でも1でも構わない)でIP Adapterを使い、参照させたい服装を読み込ませる。適用強度が重要なバイブストランスファーと同様、CN weightによっては構図まで似てしまう(首から上と下が全く調和しない絵になる)ので、使用用途に合わせて強度を調整する必要がある。今回はこのように「0.4」とし、Ending stepも0.5までとした。プロンプトも青い着物やファーつきの襟などと指定する。


生成結果がこちら。インペイント範囲をあまり大きく取りすぎると、white backgroundと指定していても背景(この場合は神社)が生成されてしまうことがあるので注意。




終わりに

以上、かなり長い解説となってしまいましたが、最後までお読みくださってありがとうございました。852 a scribbleやanytest v3など、5月ごろから急にSDXL向けのCNが国内で充実し始め、かなりSDXLでできることが拡大した印象があります。これまではNovelAI v3の異様なインペイント力でしか再現できなかった手法が、SDでできる日も遠くないかもしれません。


今後はこの記事を「ハブ」のようにして、Anytest V3、V4をはじめとした優秀なCNモデルの活用法を個別記事で掘り下げていければと思います。今後もこの記事はアップデートしていくつもりですので、まだ私が察知していなさそうな優秀なCNモデルがありましたらぜひご紹介ください。


それでは今回はこのへんで。スタジオ真榊でした。

Attachments (68)

uqliNBnONUXkqiFjCjwuRNIq.jpeg

uqliNBnONUXkqiFjCjwuRNIq.jpeg

Cr2G50F0ukSU2sr4zB8Cwgpe.jpeg

Cr2G50F0ukSU2sr4zB8Cwgpe.jpeg

oZSZoEjJj3gbKMHq3rRDEIA3.jpeg

oZSZoEjJj3gbKMHq3rRDEIA3.jpeg

sJCRvVNtXd1djQHRLokIaH8V.png

sJCRvVNtXd1djQHRLokIaH8V.png

neGE45QjkernhbV1P1jDsCpD.png

neGE45QjkernhbV1P1jDsCpD.png

vGrAOUPORQK4ON1fjg8AhX8b.png

vGrAOUPORQK4ON1fjg8AhX8b.png

4ue1mAFxQ2v3OfwJzMQYG9uy.png

4ue1mAFxQ2v3OfwJzMQYG9uy.png

SBxA6QAFxLv5qnO0IjLOjOEA.png

SBxA6QAFxLv5qnO0IjLOjOEA.png

W3xvovFcilN9m1ZBBaLn7FR1.png

W3xvovFcilN9m1ZBBaLn7FR1.png

lQrQZ3dG1pdpqqKSqnR3Wboh.jpeg

lQrQZ3dG1pdpqqKSqnR3Wboh.jpeg

8rjGxzlgz1nuGNmzSef5Mvv4.png

8rjGxzlgz1nuGNmzSef5Mvv4.png

dq2uglGYHCe0yeE8XWVPENQp.png

dq2uglGYHCe0yeE8XWVPENQp.png

cQKm9h6DDF32q53j8RSEpuTE.jpeg

cQKm9h6DDF32q53j8RSEpuTE.jpeg

Qrtmtx1VQKqVa05P4b2H9P5j.png

Qrtmtx1VQKqVa05P4b2H9P5j.png

8YNesrVOpEiLMi4K8rLhOdG3.png

8YNesrVOpEiLMi4K8rLhOdG3.png

xhWuwBZNMNYlYlJE4f6HOFzU.png

xhWuwBZNMNYlYlJE4f6HOFzU.png

tW6O0Jyg1afgXrezX3c91mtd.jpeg

tW6O0Jyg1afgXrezX3c91mtd.jpeg

VAT4TWLzKd5xfVNJvwNTc3W0.jpeg

VAT4TWLzKd5xfVNJvwNTc3W0.jpeg

wFb6y0URrFf4OTlyFrTxaX3D.jpeg

wFb6y0URrFf4OTlyFrTxaX3D.jpeg

PbXO1jYwIiiNLN5Yyh2SJ0tp.jpeg

PbXO1jYwIiiNLN5Yyh2SJ0tp.jpeg

5xrtZKZ5Q8JFiwaZjjMUdcV1.jpeg

5xrtZKZ5Q8JFiwaZjjMUdcV1.jpeg

a2aYQqRKJXDAUB56lQnl6gUp.jpeg

a2aYQqRKJXDAUB56lQnl6gUp.jpeg

n20tnw5RKd4cQyenyFPOArr8.jpeg

n20tnw5RKd4cQyenyFPOArr8.jpeg

MB5nLkjSiCfhw1WJ5F8XnjYC.jpeg

MB5nLkjSiCfhw1WJ5F8XnjYC.jpeg

72rM4wHVbqF6xr0HfwjNlm3O.jpeg

72rM4wHVbqF6xr0HfwjNlm3O.jpeg

iK5w43Xr3RdAuHeLUJRRPFzV.jpeg

iK5w43Xr3RdAuHeLUJRRPFzV.jpeg

ycSmpT8Wjnkk4kR9iuew9jZN.png

ycSmpT8Wjnkk4kR9iuew9jZN.png

QIz0lgNoEj4Kmf1wRc6hLu3o.jpeg

QIz0lgNoEj4Kmf1wRc6hLu3o.jpeg

Pc5qfUt3AJf4HNmtknyH5iZe.jpeg

Pc5qfUt3AJf4HNmtknyH5iZe.jpeg

WZm0Cz5Xufg9AGD0IM42T8VB.png

WZm0Cz5Xufg9AGD0IM42T8VB.png

gAdApsdmXTF1avftXL33MZjF.png

gAdApsdmXTF1avftXL33MZjF.png

Cvtw3CZdll81TF64BqK2woJw.png

Cvtw3CZdll81TF64BqK2woJw.png

kdy0BpPyowpML0OOeYMUxzHd.png

kdy0BpPyowpML0OOeYMUxzHd.png

zavzE7YP4d9WbKkJkvAIyzL3.png

zavzE7YP4d9WbKkJkvAIyzL3.png

vN3yBQBSdT7HSmrpRGYegnBY.png

vN3yBQBSdT7HSmrpRGYegnBY.png

N0NbPQRwW8q9qQ63OL6Ukaiv.jpeg

N0NbPQRwW8q9qQ63OL6Ukaiv.jpeg

TKPu4LTMLKrO8f2qd5Vdtf8V.png

TKPu4LTMLKrO8f2qd5Vdtf8V.png

xXFmzPplCrDAemLJc6b7Nsg2.png

xXFmzPplCrDAemLJc6b7Nsg2.png

xYlIQgatZhLCfePg4ZVXSqAs.png

xYlIQgatZhLCfePg4ZVXSqAs.png

IA5JG06TSmMsdkKKALWARYLS.png

IA5JG06TSmMsdkKKALWARYLS.png

4JyYnHdsyYN8c3GJklRLF7oB.jpeg

4JyYnHdsyYN8c3GJklRLF7oB.jpeg

FJW9fE3YieX0bqrQn3N5MAnR.png

FJW9fE3YieX0bqrQn3N5MAnR.png

vqU0Lsc4nrNiCUB3LKeqWVuz.png

vqU0Lsc4nrNiCUB3LKeqWVuz.png

qzyPefemYaSU0mXRseaURZaT.png

qzyPefemYaSU0mXRseaURZaT.png

BEuKECLCxZhWrJubZPydr9oR.png

BEuKECLCxZhWrJubZPydr9oR.png

wl7wRtQgfGC8bbvjkuHtPW5B.png

wl7wRtQgfGC8bbvjkuHtPW5B.png

DGqCOqbKRV61rFX6tzo4c64n.png

DGqCOqbKRV61rFX6tzo4c64n.png

C5ydGNtybnuD2u5Uhp0VmhRH.jpeg

C5ydGNtybnuD2u5Uhp0VmhRH.jpeg

PerRZrISiwynfcxEYSKqye5J.png

PerRZrISiwynfcxEYSKqye5J.png

mBlZk7Lvk53d9rggH6V3jz17.png

mBlZk7Lvk53d9rggH6V3jz17.png

73FQGGYU6zGqLxGoOf0CWt8Q.png

73FQGGYU6zGqLxGoOf0CWt8Q.png

e8RBId6HcMyhg5bhN2OVYsR4.png

e8RBId6HcMyhg5bhN2OVYsR4.png

WYX3zpAyzyd4rw8oSNQ2V8Cj.jpeg

WYX3zpAyzyd4rw8oSNQ2V8Cj.jpeg

PeTDYtogZWRs7JDBrenqVyBO.png

PeTDYtogZWRs7JDBrenqVyBO.png

UBsv0gp0iWLGfkdvu41iPsDT.png

UBsv0gp0iWLGfkdvu41iPsDT.png

m1n38OV0Ktt80LkdoUxNcuEy.png

m1n38OV0Ktt80LkdoUxNcuEy.png

CoCjlIk85qwFhfIcLvtX266x.jpeg

CoCjlIk85qwFhfIcLvtX266x.jpeg

tWxNNPATTznPgyciuwYGGlYs.png

tWxNNPATTznPgyciuwYGGlYs.png

OmiTZor0Jpyfe9mO9tvKft5t.jpeg

OmiTZor0Jpyfe9mO9tvKft5t.jpeg

FB26fLwlTyk64uBwy8jHRviu.png

FB26fLwlTyk64uBwy8jHRviu.png

f4gt0qMTBWhjsHkWXNsZ4907.jpeg

f4gt0qMTBWhjsHkWXNsZ4907.jpeg

grkiEx2GYb0vcDNEyqJGAl4Y.jpeg

grkiEx2GYb0vcDNEyqJGAl4Y.jpeg

OUdP1BjzX3Sc8vb8J2Dmwpm5.png

OUdP1BjzX3Sc8vb8J2Dmwpm5.png

flG41IV4oZOI8cfPrJcFRyGu.jpeg

flG41IV4oZOI8cfPrJcFRyGu.jpeg

IHsbNnbu4TrvMBE0dABvI1pa.png

IHsbNnbu4TrvMBE0dABvI1pa.png

zIIcQOXMraUJ6VB3WzT3F6ZR.png

zIIcQOXMraUJ6VB3WzT3F6ZR.png

SjO1GOLSUXBnBfUfJIPJJTY8.png

SjO1GOLSUXBnBfUfJIPJJTY8.png

gKJAbCGVWjSxNhdFLAzPTS0N.png

gKJAbCGVWjSxNhdFLAzPTS0N.png