生成AIグラビアをグラビアカメラマンが作るとどうなる?第21回:ComfyUI応用編。ControlNetでポーズ・構図を指定する (西川和久)

テクノロジー Science
西川和久

1962年生まれ。プログラマー、IT系ライター、カメラマン(主にグラビア)と、三足の草鞋になってもう四半世紀。

特集

現役グラビアカメラマンでありエンジニアでもある西川和久氏による生成AIグラビア連載の第21回は、画像生成モデル Stable Diffusionの最新技術がいち早く試せるインターフェース 『ComfyUI』 の応用編。

写真や線画をもとに構図やポーズを指定できる『ControlNet』の具体的な使い方を解説してゆきます。

『生成AIグラビアをグラビアカメラマンが作るとどうなる?連載』



ComfyUIでControlNet (Canny / OpenPose / Depth)を使うには?

ComfyUIでControlNet(Canny/OpenPose/Depth)を使うにはWorkflow以前に各ModelPreprocessor、そしてカスタムNodeを用意する必要がある。

まずModelは以下からダウンロードする。SD 1.5用とSDXL用とファイルが違うので要注意!ダウンロードしたModelは[ComfyUIのホームフォルダ]/models/controlnet へ入れる。

ただし、SD 1.5用のModelは、diffusion_pytorch_modelと同じファイル名になっているため、control_v11p_sd15_canny、control_v11p_sd15_openpose、control_v11f1p_sd15_depth(など)へリネームする。

  1. SD1.5 Canny

  2. SD1.5 OpenPose

  3. SD1.5 Depth

  4. SDXL Canny

  5. SDXL OpenPose

  6. SDXL Depth

次にPreprocessorは、カスタムNodeの ComfyUI's ControlNet Auxiliary Preprocessors に入っているので、ComfyUI Manager > Install Custom Nodesで検索してインストール。これで準備完了だ。

ControlNet / Canny

今回はせっかくなので前回ご紹介した。ComflowySpaceを使ってみたい。画面キャプチャからも分かるように、macOS(MacBook Pro 14/M1 Pro/16GB/512GB)上で使用し、Modelは速度的にストレスにならないよう、Detail Asian Realistic v6.0-LCMSampler: LCM, Scheduler: sgm_uniform, Steps: 6, CFG: 2 で生成。512x512なら9秒と実用範囲に収まっている。


Cannyに関してはWorkflowがTemplatesにあり、それをそのまま使う。設定するのはCheckpointとControl_net_name(control_v11p_sd15_canny)、そしてKSamplerのsteps、cfg、sampler_name、schedulerとなる。

ComfyUI(ComflowySpace)でのControlNet Canny Workflow
KSampler周辺。これは以降のOpenPoseやDepthでも同じ
ControlNet Canny周辺。ここだけ各ControlNetで異なる

普通の画像生成WorkflowとControlNetを使う時の違いは、PromptのCONDITIONIGからKSamplerのpositiveへ行かず、ControlNetApply(Positive)のconditioningへ入り、CONDITIONIGからKSamplerのpositiveへ繋がっていることだ。加えてControlNetApply(Positive)にはPreprocessor後の画像とControlNetのModelも接続されている。

LoRAはCheckpoint Loader / MODELとKSampler / modelの間に入ったが、ControlNetは、PromptのCONDITIONIGとKSamplerのpositiveの間に入ると言うわけだ。つまり前者はModelの拡張、後者はPromptの拡張…と言う位置付けとなる。

これさえ理解してしまえば、OpenPoseもDepthも基本同じ。LoadするModelとPreprocessorのNodeが違うだけとなる。

ControlNet / OpenPose

OpenPoseのWorkflowもTemplatesにあるのでそれを使用。後はCannyと基本的には同じ。簡単に使うことができる。

ComfyUI(ComflowySpace)でのControlNet OpenPose Workflow
ControlNet OpenPose周辺

ControlNet / Depth

DepthのWorkflowは何故かTemplatesに無いため、上記を踏まえて自分でWorkflowを作ってみた。Nodeは何も無いところでダブルクリックすると検索パネルが出るので、depthと入れそれっぽいのを探す。Preprocessorに関しては色々あったものの、MiDaS-DepthMapPreprocessorを使った。これ以外は上2つと全く同じになる。

ComfyUI(ComflowySpace)でのControlNet Depth Workflow
ControlNet Depth周辺

日頃、例えばAUTOMATIC1111だと、ControlNetの項目を開き、手法を選んで、画像を入れて生成…となるが、裏ではこんな感じで動いているのがお分かり頂けただろうか?LoRAなども含め、何がどのように繋がって動いているのかを(何となくでも)理解できるようになるもComfyUIの醍醐味だったりする。

今回締めのグラビア

扉とグラビアは前回同様、 CyberRealistic XL v1.1 を使用。(もう終わっているが)卒業式シーズンと言うこともあり、こんな感じにしてみた。

いつもとの違いは、どちらもControlNet / Depthで実写から深度情報を得て画像生成しているところ。

参考までに生成で使用したアプリは、Stable社純正の StableSwarmUI 。これもバックエンドにComfyUIを使っており、ユーザーフレンドリーなUIとComfyUIとを切り替えて使用できる。加えてPython(のGradio)ではなく、.NETを使っているので動きも速い。

CyberRealistic XL v1.1 + 顔LoRA + ControlNet / Depthグラビア!

掲載した画像2点、筆者XのアカウントでLoRAっ子と呼んでる顔LoRA一号の子が、ちょうど卒業で、「写真撮って!」と言われ、卒業式当日撮影したのがDepthの元画像になっている。

左が元画像。あまりControlNetの重み大きくするとガッチリ似てしまうのでリアル系の場合0.5以下が無難

扉はそのものズバリだが(卒業証書の文字…は元々文字が苦手なStable Diffusion。お許しを)、グラビアは、レンタル衣装を返却してからの私服写真を元にした。どちらもその顔LoRAを使用。知ってる人が見ると本人と思うほど似てるかも!?(笑)

さて、ComfyUIに関しては一旦これで終わりとして、次回からはまた新ネタを追ってみたい。現時点では未定。4月に何が発表されるか楽しみだ!

生成AIグラビアをグラビアカメラマンが作るとどうなる?連載一覧


《西川和久》
西川和久

1962年生まれ。プログラマー、IT系ライター、カメラマン(主にグラビア)と、三足の草鞋になってもう四半世紀。

特集

BECOME A MEMBER

『テクノエッジ アルファ』会員募集中

最新テック・ガジェット情報コミュニティ『テクノエッジ アルファ』を開設しました。会員専用Discrodサーバ参加権やイベント招待、会員限定コンテンツなど特典多数です。