落書きから、1分足らずでカバーアートへ。VRAMが4GBのノートPCでも可能です。この無料でオフラインのComfyUIワークフローは、シンプルなスケッチの深度を読み取り、それに忠実な画像を生成します。ChatGPTにも似たことはできますが、ここでは仕組みがはっきり見え、すべてを自分で制御できます。サブスクリプションも検閲もありません。しかも、ピンナップである必要はありません。ポーション、剣、クリーチャー、スケッチできるものなら何でも構いません。
このバージョンはSDXLを使い、速くて軽量です。SDXLは手を間違えがちで、私は、より重くて高性能なFluxで直しています。入力もスケッチである必要はありません。写真や3Dレンダリングでも、同じように動きます。
ポイント
- モデル: SDXLのチェックポイント、Juggernaut XL。
- 深度: Depth Anything V2と、SDXL depth ControlNet。
- 設定: 1024 × 1024、25ステップ、CFG 6〜8、ControlNetの強度は約0.55。
- 4GBでの速度: 1枚あたり約40〜80秒。
- 選別が前提: 本当に良いのは、おそらく5枚に1枚です。
段階的に構築する
ComfyUIの標準の画像生成プリセットから始めると、時間を少し節約できます。Managerから3つのカスタムパックを追加します。ComfyUI Essentials、comfyui_controlnet_aux(Depth Anything V2用)、rgthreeです。integerノードには、ComfyUI Easy Useを追加します。
役立つ小さな習慣:2つのプロンプトノードの名前を「Positive Prompt」と「Negative Prompt」に変え、緑と赤に色分けします(右クリック → Color)。
1. スケッチを読み込んでリサイズする
スケッチを入れたLoad Imageノードを追加します。私は正方形の画像で作業します。そのほうが楽です。EssentialsのImage Resizeノードで1024 × 1024にリサイズします。SDXLのモデルはこのサイズで学習されており、寸法は8で割り切れる必要があります。
2. スケッチを出発点のキャンバスにする
Empty Latent Imageの代わりに、リサイズした画像をVAE Encode(チェックポイントのVAE、画像はpixels入力)でエンコードし、KSamplerのlatent入力に接続します。空のlatentは削除できます。
3. Juggernaut XLを読み込む
デフォルトのチェックポイントはStable Diffusion 1.5です。Civitaiの無料のSDXLモデル**Juggernaut XL**に入れ替えます。推奨のKSampler設定もそこにあります。ファイルをComfyUI/models/checkpoints/に置き、ブラウザを更新(Ctrl+R)してComfyUIに一覧表示させます。
KSamplerの設定:
- Steps: 25。 ステップは品質ですが、50を超えてもほとんど増えません。25で良い結果が得られ、時間も節約できます。
- CFG: 6〜8。 CFG(classifier-free guidance)は、プロンプトからモデルがどれだけの自由を得るかです。9や10では画像が焼け、強いコントラストと妙な見た目になります。6ならモデルに解釈の余地があり、それが良いこともあります。3ではノイズが多くなります。
4. 深度グループ
(comfyui_controlnet_auxの)Depth Anything V2を検索して追加します。Model ManagerからDepth Anythingのモデルをダウンロードし、ブラウザを更新して、画像を接続します。
解像度は1回で設定します。 (Easy Useの)integerノードを追加して1024と入力し、リサイズの幅と高さ、Depth Anythingの解像度に接続します。より高い解像度を試したいときも、変えるのは1つの数字だけです。
この部分だけをテストするには、ほかのノードを選択してバイパス(Ctrl+B)し、実行します。深度マップが表示されます。
スケッチを読み取りやすくする。 最初の深度マップは、まずまずでした。紙にペンで、あるいはPhotoshopでさっと、人物を塗りつぶすと、明らかに良い深度マップになりましたが、足はまだ少し曖昧でした。
5. ControlNet
(標準ノードの)Apply ControlNetを追加し、深度画像、2つのプロンプト出力、VAEを接続します。その出力はKSamplerに行きます。次にLoad ControlNet Modelを追加して接続します。
ControlNetはモデル固有です。 SD 1.5、SDXL、Fluxにはそれぞれ専用のものがあります。実際、話題の新モデルが出ても、ControlNetがまだないことがよくあります。プロンプトには優れていても、制御が必要な実際の仕事には使えません。Model ManagerでControlNet SDXL depthを探し、更新して選択します。
最初の結果と、それを直す設定
最初のプロンプトはシンプルで、草原に横たわる女性でした。VRAM 4GBのノートPCでは、最初の画像にモデルの読み込みを含めて65秒かかりました。ポーズは合っていましたが、画像はあまり良くありませんでした。ChatGPTによるより良いプロンプトと、フォトリアル向けのサンプラーで、少し改善しました。それでも良くはありませんでした。
本当の解決策はControlNetの強度でした。1.0ではモデルがスケッチに強く固執して、結果が悪く見えます。0.55に下げるとモデルにポーズを解釈する余地ができ、結果はずっと良くなりました。手と顔は、依然として典型的なSDXLでしたが。
ディテールのために解像度を上げない
解像度を上げれば、理論上は顔と手が良くなります。しかしSDXLは体を引き伸ばします。1536では手足がすでに長くなり、2048では人物がエイリアンのように見えます。通常のやり方は、約1024で生成してからアップスケールすることです。無料アップスケーリングのガイドをご覧ください。
一晩動かして、選別する
本当に良いのは、おそらく5回に1回です。それは普通のことです。AIの出力は誰もが選別しているので、宣伝動画を信じないでください。キューを**Run (Instant)**に切り替えて一晩放っておけば、選べるレンダリングが千枚できます。
スケッチを画像A、結果を画像Bにしたrgthreeのimage comparerを追加して、スライダーをドラッグして比較します。
正方形でないスケッチ
正方形でないスケッチには、リサイズを1024でkeep proportionsに設定します。長辺が1024になり、短辺がそれに従います。最初の試みではfill/cropを使いましたが、強制的に正方形になり、スケッチの一部が切れました。keep proportionsなら全体が収まりました。
1つ注意点があります。比率を保ったリサイズは、短辺が716や537のような中途半端なサイズになり、ときどきノイズの多い悪い生成の原因になります。正方形でない画像を手早く扱う方法ですが、標準の解像度を使うほうが確実です。
ほかの例
Photoshopで描いた複数の銃のスケッチは、シンプルなプロンプトで銃のコレクションになりました。約20年前に描いたクリーチャーのスケッチは、驚くほど近い結果になり、蹄の解剖学と鞍が絵に従っていました。強度を0.7に上げれば尻尾をより捉えられ、プロンプトで尻尾と頭を指定するのも役立つでしょう。
SDXLかFluxか?
SDXLは、VRAMが4GBや8GBのコンピューターに最適です。16〜24GBあるならFluxを使ってください。品質が高く、バリエーションが多く、プロンプトへの忠実度も上がりますが、はるかに遅く、要求も高くなります。このワークフローのFlux版はFluxでスケッチからアートへにあり、完全なSDXLワークフローは私のPatreonにあります。
動画版を見る (16:26)
上の内容はすべて動画でも説明しています。画面を見ながら進めたい方はこちらをどうぞ。 動画は英語です。
よくある質問
VRAM 4GBのGPUでSDXLを動かせますか?
はい。VRAM 4GBの私のノートPCでは、モデルの読み込みを含めて最初の画像に約65秒、以降は40〜80秒かかりました。
SDXLでは、ControlNetの強度をどのくらいにすべきですか?
0.55前後です。最大強度では、モデルがスケッチに忠実になりすぎて、結果が悪くなります。スケッチに十分従わないなら、0.7くらいまで上げてください。
高解像度にすると、キャラクターの手足が長くなるのはなぜですか?
SDXLは1024 × 1024前後で学習されています。1536では解剖学がすでに引き伸ばされ、2048ではエイリアンのように見えます。1024で生成し、その後アップスケールしてください。
CFGはいくつにすべきですか?
Juggernaut XLの推奨どおり、6〜8です。8を超えると画像が焼け始め、3前後ではノイズが多くなります。
