見出し画像

シン・ComfyUI入門

趣旨

こんにちはakkyossです。
前回の記事から時間が経ち、記事内容が古くなったので改めて導入記事を作りました。
ComfyUIを使う人も増えてきましたがまだまだ足りません!!
独自のワークフローを構築出来る、非常に面白いツールなので改めて強くおすすめします。

導入

ComfyUI_windows_portable(ポータブル版)を落とします。
以下から最新のものを落とすのが分かりやすいです。
https://github.com/comfyanonymous/ComfyUI/releases
現時点ではポータブル版の方がおすすめです。
他にいろいろインストールしたりする必要が無いので!

ComfyUI_Managerをインストールします。
以下のbatファイルを”ComfyUI_windows_portable”フォルダ内に置いて実行してください。

https://github.com/ltdrdata/ComfyUI-Manager/raw/main/scripts/install-manager-for-portable-version.bat

もしくはComfyUI_ManagerのリポジトリをComfyUI_windows_portable/ComfyUI/custom_nodes/にクローンします。
ComfyUI_Managerについては後ほど説明しますが、まず本体とセットで導入してください。

初期設定

a1111を使っている人はモデルデータを共有したいですよね。
大丈夫です。
ComfyUI_windows_portable/ComfyUIフォルダ内にあるextra_model_paths.yaml.examplesを使います。
まず.examplesを消して機能を有効にします。
yaml内に書かれたパスをa1111のパスに合わせて書き直します。
以下のコードの「../stable-diffusion-webui」のところを自分の環境に合わせてください。
相対パスでこういう記述ですが、絶対パスでも動くでしょう。
よくわからない場合はGPTとかに聞いてください。

#Rename this to extra_model_paths.yaml and ComfyUI will load it

#config for a1111 ui
#all you have to do is change the base_path to where yours is installed
a111:
    base_path: ../stable-diffusion-webui/

    checkpoints: models/Stable-diffusion
    configs: models/Stable-diffusion
    vae: models/VAE
    loras: |
         models/Lora
         models/LyCORIS
    upscale_models: |
                  models/ESRGAN
                  models/RealESRGAN
                  models/SwinIR
    embeddings: embeddings
    hypernetworks: models/hypernetworks
    controlnet: models/ControlNet

#other_ui:
#    base_path: path/to/ui
#    checkpoints: models/checkpoints
#    custom_nodes: path/custom_nodes

起動

起動してみましょう。
ComfyUI_windows_portableフォルダに行きます。
run_nvidia_gpu.batを実行してください。
※もし勝手に開くのが嫌な場合はbatファイルをテキストエディタで開いて--windows-standalone-buildを消します。

使ってみる

本家のGitHubのexampleで使われているpng画像をDLして画面に引っ張り込むことで、そのままワークフローを確認出来ます。
※embeddingは「embedding:~」と書かないと機能しないです。
 例:embedding:EasyNegative

最低限の拡張機能紹介

ComfyUIでは「カスタムノード」と呼びます。
これが無いと凝ったことは出来ませんので、おすすめを説明していきます。
ComfyUI-Managerがインストールされているはずなので、それを使って入れていきましょう。

ComfyUI-Manager

導入でインストールした拡張機能を入れるためのカスタムノード。
Install Custom Nodes:カスタムノードを探します。
Install Missing Custom Nodes:他人のワークフローを読み込んだ時に、自分の環境に無いカスタムノードを教えてくれます。
Install Models:様々な主要モデルをインストール可能。ControlNetとか。
Update All:カスタムノード全部アプデしてくれます。超便利。
Update ComfyUI:本体アプデ。ポータブル版はupdateフォルダにあるupdate_comfyui.batを使う方が良いかも?
Alternatives of A1111:a1111で使ってる拡張機能の代替カスタムノードを教えてくれますが、あくまで代替でありそのままではない。
他は使ったことないですが恐らく便利です。

ComfyUI-Custom-Scripts

ComfyUIの開発根幹メンバーの一人っぽい人のカスタムノード。
細かい機能群ですがとても便利な機能がまとまっていて必須のノードです。
例えば、右クリックしてWorkflowImage>Exportでワークフローの画面をスクショ出来るとか、Ksamplerを右クリックするとHires.fix構成のノードが引き出せるとかとか。
色々あるので、詳細はGithubページを確認してください。

ComfyUI's ControlNet Auxiliary Preprocessors

ControlNetを気楽に使いたいなら入れておいた方がいいでしょう。
AIO Aux Preprocessorというノードがくそ便利です。
PixelPerfectも便利かな。
ControlNetは割と複雑にノードを組む必要があります。ガンバレ。

IP-Adapter-Plus

IP-Adapterはともかく面白いのでおすすめ。
下の動画を見ると理解出来ます。頑張ろう。

a1111に近づけたい?

・a1111と重みづけ計算が違うので同じ呪文でも結果が大きく変わります
・BREAKやAND、プロンプトエディティングはそのままは使えません
これらをある程度解決するのが以下のカスタムノードです。

上のノードを同じ見た目に設定することでa1111と同様の設定になります。
ただし、あくまでも近づけるだけで全く同じではないです!
BREAKやAND、プロンプトエディティングが利用可能になります。

ただComfyUIの強みを活かす場合、あまりa1111と同じ機能にこだわらない方がいいということは強調しておきます!
独自のワークフローという意味ではこういうのもいける!ということで。

最新情報は?

ComfyUIの公式ブログが2週間毎に更新するので見てるといいことあるかも。
ただ公式外のカスタムノードについては随時チェックしかないです!

以上!!

これ以外は必要と思う機能を独自に調べて入れていくのがいいでしょう。
アップスケール回りはかなりの選択肢があります。
コツとしては、あまりa1111を意識すると使いこなせないので、あくまでも別のツールということを念頭に置いて使う方がComfyUIを使いこなすことが出来ます。
外国に来たと思ってください。
他人のワークフローを簡単に導入出来る点が圧倒的に面白いツールですよ。

civitaiも見てみよう

自分で組もうと思うと絶望するワークフローが上がってたりするので見てみると良いかと思います。

https://civitai.com/tag/comfyui

基本的な小技

ワークフローの共有

ComfyUIの最大の特徴はワークフローの共有が簡単なことです。
・生成した画像をドラッグ&ドロップする
・jsonファイルをドラッグ&ドロップする(Loadする)
・jsonのコードをコピーして画面内でペーストする
ComfyUI_ManagerのInstall Missing Custom Nodesで自分が持ってないノードも教えてくれます。

パラーメータ外だし

例えばKSamplerを右クリすると下の方にconvert~という項目があります。
選択すると、選んだ項目がinputに変わって外から接続できるようになります。
つなぐ場所をダブルクリックすると対応した外だしノードが生えます。
例えばseed値などを別のKSamplerと共有したい!という時などに利用します。
カスタムノードなどで提供されているノードを繋ぐこともあります。
画像のサイズを共有させる場合はこの機能を駆使する必要があるでしょう。
複雑なノードを作るための基本になります。

画像のコピペ

生成されたイメージを右クリックしてCopy(Clipspace)してLoadImageノードの画像を右クリックしてPaste(Clipspace)出来ます。
アプスケする時とかに便利です。
クリップボードからもLoadImageノードに貼り付けが出来るので、Photopeaのようなツールで描いて進める、というのが簡単に出来るようになっています。

保存する時の名前

以下のように指定することで画像の保存名を割と細かく指定可能。
「%ノードを右クリックPropatiesにある名前.ウィジェット名%」
例:%KSampler.seed%
同じ画面にKSamplerが複数ある場合はPropatiesにある名前を変更して固有化すると狙い通りの保存名になります。
また、生成時間なども以下のような文字列を入れると追加できます。
ワークフローが複雑だと最終的にすべて日付時間になります。
%date:yyyyMMddhhmmss%
例:20230708230133
サブディレクトリを作りたい場合は/を使えばいけますよ。

モデルマージ

じつはモデルマージが息を吸うように簡単にできます。
そのまま生成ワークフローに組み込むことが可能なくらい簡単です。(初回重いですがそれ以降は重くない)
軽率なマージが出来る点は良いような悪いような感じなので、もしマージしたモデルを公開しよう!とかいう場合はご注意ください。
ComfyUIのマージに手を出すなら、ライセンスのゆるいモデルだけ落としましょう。

https://comfyanonymous.github.io/ComfyUI_examples/model_merging/model_merging_basic.png

超詳しいwiki(wikiではないらしい)

最近更新が止まってしまいましたが、まだ有用なwiki。
より詳しい内容を知りたい場合に非常におすすめ(wikiではない)。

https://comfyui.creamlab.net/

まとめ

カスタムノードのGitHubの説明欄に、そのカスタムノードを動かすために必要な別の人のカスタムノードが書かれていたりするので、そういうのもチェックするといいです。
また、仕様を理解すると自分でノードを作ることも比較的容易にできると思います。


この記事が気に入ったらサポートをしてみませんか?