ファンサイトに戻る

PROMPT GUIDE

ControlNet の使い方(openpose・canny・depth・lineart の違い)

ControlNet(コントロールネット)は、プロンプトだけでは伝えにくい「ポーズ」「輪郭」「奥行き」を、参考画像から読み取って絵に反映させる仕組みです。この記事では、よく使う種類(openpose・canny・depth・lineart など)の違いと、Stable Diffusion での基本の使い方を、はじめての人向けにまとめました。

最終更新: よみもの めやす 約4分

結論を先に

ControlNetは、参考画像から骨格・線・奥行きなどを取り出し、その形にそって絵を描かせる仕組みです。ポーズだけまねしたいなら openpose、線の形を残したいなら canny や lineart、立体感や奥行きをまねしたいなら depth を選びます。効きの強さ(weight)は 0.5〜1.0 くらいから試すのが基本です。

ControlNetとは?

ControlNetは、参考画像の形(ポーズ・線・奥行き)を読み取って、新しい絵の下じきにする仕組みです。

プロンプトで「右手を上げて左足を前に」と書いても、AIはそのとおりに描けないことがよくあります。ControlNet を使うと、参考画像から棒人間のような骨格や輪郭線を取り出し、その形にそって描かせることができます。服・髪・色・画風はプロンプトで決め、形だけを参考画像から借りる、というイメージです。

参考画像から形を取り出す処理を「プリプロセッサー(前処理)」、取り出した形を使って描く部分を「ControlNetのモデル」と呼びます。種類ごとに、この2つをそろえて選ぶのが基本です。Stable Diffusion のモデル(SD1.5 か SDXL か)に合った ControlNet のモデルを使う必要もあります。

openpose・canny・depth・lineartの違いは?

取り出す情報が違います。ポーズなら openpose、線なら canny や lineart、奥行きなら depth です。

種類参考画像から取り出すもの向いていること注意すること
openpose体・手・顔の骨格(棒人間)ポーズだけまねしたい服や体型は写らない・手は崩れることも
cannyくっきりした輪郭線形や配置をしっかり残す細かい線まで写り、自由度が下がる
lineart線画(イラストの主線)線画に色を塗る・線を生かすアニメ向けの前処理を選ぶと合いやすい
depth奥行き(近い・遠いの濃淡)立体感・構図・背景の奥行き細かい形はあまり写らない
scribbleざっくりした落書きの線ラフな下書きから絵にする線があいまいだと形も変わる
tile画像の細部のまとまり拡大しながら描きこむポーズの指定には向かない

りんかのコツ

  • 迷ったら、ポーズは openpose、構図ごとまねしたいなら depth から試す
  • 自分の絵の線を生かしたい時は lineart。写真の輪郭を使うなら canny
  • 他人の作品をそのままなぞって自分の作品として出すのは避ける。参考にするのはポーズや構図まで

イラストの利用ルール

ControlNetの使い方は?(基本の手順)

参考画像を入れ、種類を選び、前処理の結果を確かめてから生成します。

ControlNetでポーズを指定して描く手順

  1. 使っている Stable Diffusion のモデル(SD1.5 か SDXL か)に合う ControlNet のモデルを用意する
  2. ControlNet の欄を開いて有効(Enable)にし、参考画像を入れる
  3. 種類(例:OpenPose)を選び、前処理(プリプロセッサー)と ControlNet のモデルを同じ種類にそろえる
  4. 前処理だけを実行するボタン(爆発マークなど)で、骨格や線が正しく取れているか確かめる
  5. 効きの強さ(Control Weight)を 0.7 くらいにして、プロンプトで服・髪・場所を書いて生成する
  6. ポーズが崩れる時は強さを上げ、絵がかたくなる時は下げる
1girl, solo, long hair, hoodie, jeans, smile, standing, outdoors, city street, full body(ControlNet:openpose・weight 0.7)
1girl, solo, school uniform, sitting, classroom, window, sunlight, upper body(ControlNet:depth・weight 0.6・参考は同じ構図の教室の写真)

ControlNetの強さ(weight)はどれくらい?

まず 0.6〜0.8 で試し、形がずれたら上げ、絵がかたい時は下げます。

weight(効きの強さ)を 1.0 以上にすると参考画像の形をきっちり守りますが、塗りや細部まで引っぱられて、ぎこちない絵になることがあります。逆に 0.4 以下だと、ポーズの指定がほとんど効かないことがあります。また「どのステップから・どのステップまで効かせるか(開始・終了)」を調整できるツールもあり、終了を 0.6〜0.8 くらいにすると、形は守りつつ最後の描きこみは自由にできます。

設定低い・早く終わる高い・最後まで
Control Weight(強さ)プロンプト寄りで自由・形はゆるい参考画像に忠実・かたくなりやすい
終了のタイミング細部は自由に描かれる細部まで参考画像に従う
参考画像の大きさ細かい形が取れない線や骨格がはっきり取れる

ControlNetが効かない・おかしい時は?

まず、モデルの種類(SD1.5用かSDXL用か)と、前処理の結果を確かめます。

よくある失敗原因直し方
まったく効いていないControlNet が有効になっていない・モデルが合っていないEnable を確認・使っているモデルに合う ControlNet を選ぶ
ポーズが違う前処理で骨格がうまく取れていない前処理の結果を見て、はっきりした参考画像に替える
手や指が崩れる骨格に手の情報が少ない手が写る前処理を選ぶ・手は後で inpaint で直す
絵がかたい・線がうるさい強さが高すぎる・canny の線が細かすぎるweight を下げる・lineart や depth に替える
体型や服まで参考画像に似るcanny や lineart で輪郭ごと写しているポーズだけなら openpose に替える
縦横が合わず形がゆがむ参考画像と出力サイズの比率が違う同じ比率にそろえるか、余白を足してから入れる

ControlNetなしでポーズを決める方法はある?

あります。ポーズのタグを短くはっきり書き、構図のタグと組み合わせるだけでもかなり決まります。

立つ・座る・ふり返るなどの基本のポーズは、ポーズのタグと構図のタグ(full body・from side など)を組み合わせるだけで十分に出ます。複雑なポーズや、同じポーズで何枚も作りたい時に ControlNet を使う、という順番がおすすめです。

立ち絵・座り・動きのあるポーズのタグは ポーズタグで動きをつける →

全身・上半身・アングルなど構図のプロンプトは 構図のプロンプト一覧(画角・アングル・前ボケ) →

崩れた手だけを直す inpaint のやり方は img2img と inpaint の使い方(一部だけ直す方法) →

手の崩れ対策をまとめたガイドは 手の破綻 完全対策ガイド →

FAQ

よくある質問

ControlNetとは何ですか?

参考画像からポーズ・輪郭線・奥行きなどを取り出し、その形にそって新しい絵を描かせる仕組みです。服や色や画風はプロンプトで決め、形だけを参考画像から借ります。

openposeとcannyはどう違いますか?

openpose は体の骨格(ポーズ)だけを取り出すので、服や体型は自由です。canny は輪郭線を取り出すので、形や配置をしっかり残せますが、自由度は下がります。

ControlNetの強さはどれくらいがいいですか?

0.6〜0.8 くらいから試すのが目安です。形がずれる時は上げ、絵がかたい時は下げます。使うモデルや種類によって合う値は変わります。

SDXLでもControlNetは使えますか?

使えますが、SDXL 用の ControlNet のモデルが必要です。SD1.5 用のモデルは SDXL では使えません。

ControlNetが効きません。

Enable になっているか、使っているモデル(SD1.5/SDXL)に合う ControlNet を選んでいるか、前処理の結果で骨格や線が取れているかを順に確かめてください。

RINKA WORLD

読んだあとは、りんかワールドで

MORE

あわせてどうぞ