より複雑なワークフローを構築したり、効率的に作業を進めたいと思ったことはありませんか?
ComfyUI-Custom-Scriptsは、そんなあなたの悩みを解決する拡張機能です。ワークフローの自動化、ノードの操作性向上、画像管理の効率化など、様々な機能を提供し、ComfyUIをさらに便利に進化させます。
こんにちわ、AICU media編集部です。
「ComfyUI マスターガイド」第18回目になります。
本記事では、ComfyUI-Custom-Scriptsのインストールから、豊富な機能、そして活用方法までを詳しく解説していきます。あなたのAIアート制作を、より快適で創造的な体験へと導きます。
初回はこちら
前回はこちら
今回はComfyUI-Custom-Scripts「保存版」完全紹介をめざして頑張ってお送りします。よろしかったらシェアよろしくお願いいたします。
1. ComfyUI-Custom-Scriptsとは
ComfyUI-Custom-Scriptsは、ComfyUIの操作性と効率性を向上させるための強力なツールセットです。ワークフローの効率化、プロジェクトの整理、AIアート作成プロセスに新しい機能を追加するためのさまざまなカスタムスクリプトとノードを提供します。これらの機能を活用することで、ワークフローの管理や画像生成プロセスがより直感的かつ効率的になります。
以下がComfyUI-Custom-ScriptsのGitHubリポジトリになります。
https://cdn.iframe.ly/xKsLsAo?v=1&app=1
2. ComfyUI-Custom-Scriptsのインストール
- メニューの「Manager」をクリックし、「ComfyUI Manager Menu」を開きます。
- 「Custom Nodes Manager」をクリックします。
- 上部の検索バーに「ComfyUI-Custom-Scripts」と入力し、表示されたカスタムノードの「Install」をクリックします。
- インストールが完了すると、再起動が求められるので、「Restart」をクリックします。
- トップ画面に戻るので、メニューの「Refresh」をクリックします。
- 再度「Custom Nodes Manager」画面を開き、上部の検索バーで「ComfyUI-Custom-Scripts」を検索します。以下の画像のように表示されていれば、インストールが完了しています。
3. ComfyUI-Custom-Scriptsの設定
ComfyUI-Custom-Scriptsの各機能の設定は、メニューの歯車ボタンをクリックして表示される設定画面で行うことができます。
設定画面の「pysssss」セクション内の設定項目がComfyUI-Custom-Scriptsで追加された設定になります。
Image Feed
Image Feedは、生成した画像の履歴を表示します。初期設定では、下部に配置されています。
画像を生成していくと、このようにImage Feedに今までに作成した画像が表示されます。
Image Feedに関する設定は、以下の4つがあります。
- Image Feed Deduplication: 画像の重複を検出し、重複の場合は再生成を抑制します。この設定では、disabled, enabled(slow), enabled(performance), enabled(max performance)のいずれかの選択肢を選択可能です。重複の検出は、画像の各pixelからハッシュ値を計算し、そのハッシュ値を比較することで行われます。
- disabled: 重複検出機能が無効化されます。画像が重複していても生成されてしまいます。
- enabled(slow): 重複検出機能が有効化され、画像スケールが1.0倍でハッシュ値の計算が行われます。高精度の重複検出ですが、処理速度は遅いです。
- enabled(performance): 重複検出機能が有効化され、画像スケールが0.5倍でハッシュ値の計算が行われます。slowよりも精度が落ちますが、処理速度は速くなります。
- enabled(max performance): 重複検出機能が有効化され、画像スケールが0.25倍でハッシュ値の計算が行われます。slow, performanceよりも精度は悪いですが、処理速度は速いです。
- Image Feed Direction: 画像の表示順をnewest first(生成が新しい順), oldest first(生成が古い順)から選択します。
- Image Feed Location: Image Feedの配置をleft, top, right, bottom, hiddenから選択します。
- Image Feed Max Images: Image Feedに表示する画像の最大数を指定します。例えば、「2」と設定した場合、何度生成してもImage Feedには2枚までしか表示されません。「0」と設定した場合は、表示される画像の枚数は無制限になります。
Autocomplete
Autocompleteは、プロンプトの入力時にプロンプトの候補を表示する機能です。例えば、「emb」と入力すれば、「embedding:」という候補を表示してくれます。候補は、「↑」または「↓」キーで選択することができます。
選択後、TabまたはEnterキーを押すことで選択を確定できます。
設定画面には、以下の設定項目があります。
- Enabled: Autocomplete機能を有効化します。
- Loras enabled: 表示される候補にLoRAも含む機能を有効化します。
- Auto-insert comma: 候補の確定後にカンマを入れるかどうかを決定する設定です。この項目にチェックを入れると、候補の確定後に自動的にカンマが挿入されます。
- Replace _ with space:
- Insert suggestion on: 候補が表示され、選択した後、その選択を確定するキーを設定します。Tabにチェックを入れると、Tabキーで選択を確定できます。Enterにチェックを入れると、Enterキーで選択を確定できます。
- Max suggestions: 一度に表示する候補の最大数を設定します。
- Manage Custom Words: 候補に表示されるプロンプトを設定します。「Manage Custom Words」をクリックして表示される画面で、上部の「Load」をクリックします。そうすると、既定のプロンプトが読み込まれまるので、下部の「Save」をクリックすると、プロンプトが保存され、候補に表示されるようになります。
Auto Arrange Graph
ノードを綺麗に配置することができます。
- まず、配置を修正したいノードと、基点となるノードを選択します。
- 基点となるノード上で右クリックをし、表示されたメニューから「Align Selected To」をクリックすると、配置を揃える位置をTop、Bottom、Left、Rightから選択するメニューが表示されます。
- 各配置位置を選択した結果を以下に示します。
Always Snap to Grid
この機能を有効にすると、ノードの配置がマス目に沿って配置されるようになります。
[Testing] “Better” Loader Lists
ComfyUI-Custom-Scriptsが提供するノード「Checkpoint Loader」「Lora Loader」の使用時に、CheckpointやLoRAの選択でプレビュー画像を表示する機能です。
使用するには、Checkpointの場合は「ComfyUI/models/checkpoints」フォルダ、LoRAの場合は「ComfyUI/models/loras」フォルダにCheckpointやLoRAと同名のPNGファイルを配置します。例えば、Checkpointの「sd_xl_base_1.0.safetensors」のプレビュー画像を表示するには、「ComfyUI/models/checkpoints」フォルダに「sd_xl_base_1.0.png」を格納します。
Checkpoint/LoRA/Embedding Info
Checkpoint、LoRA、Embeddingの詳細情報を表示します。Checkpointの場合は、「Load Checkpoint」ノード上で右クリックし、表示されたメニューの「View Checkpoint Info…」を選択します。LoRAの場合は、「Load LoRA」ノード上で右クリックし、表示されたメニューの「View Lora Info…」を選択します。
Embeddingの場合は、プロンプトの入力時に表示される候補のインフォメーションボタンをクリックすることで表示させることができます。
モデルの詳細は、以下のように表示されます。
Custom Colors
ノードに色をつけることができる機能です。
色の付け方は、ノードを右クリックし、表示されたメニューから「Colors」を選択すると、色の選択メニューが表示され、そこから色を選択すると、ノードに色を付けることができます。
色の選択で「Custom」を選択すると、色選択のパレットが表示され、ここで好きな色を選択できます。色を選択した後にEnterキーで完了となります。
Favicon Status
ワークフローの実行状態をブラウザのタブに表示されるアイコンで判断することができます。また、ワークフロー実行中のタブに表示される数字は、「Queue size」になります。
KSampler (Advanced) denoise helper
この機能は、「KSampler (Advanced)」ノードの各ウィジェットの値を質問に答えていくことで設定していく機能です。
- 「KSampler (Advanced)」ノード上で右クリックし、表示されたメニューから「Set Denoise」を選択します。
- ブラウザの上部にダイアログが表示されます。最初の質問は、「How many steps do you want?(求めるステップ数はいくつですか?)」です。ステップ数を入力し、「OK」をクリックしてください。
- 次の質問が表示されます。次の質問は、「How much denoise? (0-1)(denoiseはいくつですか?)」です。設定したいdenoiseの値を0〜1の間で入力してください。
- これで各ウィジェットの値が自動で設定されます。
Lock Nodes & Groups
ノードやグループにロックオプションを追加し、ロックを解除するまで移動できないようにします。しかし、現状はグループにしか効果がなく、ノードには適用されないようです。
- グループ上で右クリックをして、表示されたメニューの「Edit Group」を選択すると、さらに表示されるメニューから「Lock」をクリックします。これでグループがロックされ、移動できなくなります。
- アンロックする場合は、同様の操作をしていくと、先程は「Lock」だった項目が「Unlock」になっているので、「Unlock」をクリックすることで可能です。
Math Expression
入力した値を利用して計算を行うカスタムノード「Math Expression」を提供します。以下が「Math Expression」の仕様になります。
- 入力可能な値: IMAGE、LATENT、INT、FLOAT
- 使用できる演算子:
- + : 加算
- – : 減算
- * : 乗算
- / : 除算
- // : 切り捨て除算
- ** : 冪乗
- ^ : 排他的論理和
- % : 剰余
- 使用できる関数:
- floor(num): 小数点以下切り捨て
- ceil(num): 小数点以下切り上げ
- randomint(min,max): ランダム値
例えば、以下のように2つの画像(両方ともwidthが1024px)を読み込み、1つを入力「a」、もう1つを入力「b」に入力します。Math Expressionでは、「a.width + b.width」と入力し、ワークフローを実行すると、2048という結果を出力できます。
Node Finder
ワークフロー内で使用されているノードの検索をサポートする機能です。
- キャンバス上を右クリックし、表示されたメニューから「Go to node」を選択します。
- 「Go to node」を選択すると、ワークフロー内で使用されているノードの種類が表示されます。
- さらにここからノードの種類を選択すると、使用されているノードの一覧が表示され、表示したいノードをクリックすると、そのノードに移動します。
Quick Nodes
特定の標準ノードに対して、接続対象のノードを簡単に追加する機能が提供されています。
- 例えば、「Load Checkpoint」ノードを右クリックすると、上部に「Add XXX」という項目が複数表示されます。これらをクリックすると、自動で接続先のノードが追加されます。
- 以下は「Add LoRA」を選択した結果です。自動で「Load LoRA」ノードが追加および接続されます。
Play Sound
入力をトリガーに音を鳴らすカスタムノード「PlaySound」を提供します。例えば、以下のようにグラフの末端に接続することで、ワークフローの実行が完了した時に音を鳴らすことで、実行完了を通知するために使用できます。
「PlaySound」の各ウィジェットの説明は以下になります。
- 入力「any」: 入力はトリガーにしか使用されないので、どんな値でも入力できます。
- mode:「always」「on empty queue」から選択できます。
- always: 入力をトリガーに常に音が鳴ります。
- on empty queue: queue: キューが空になった時に音がなります。
- volume: 音のボリュームを0〜1の間で指定します。
- file: 通知音を指定します。通知音は、「ComfyUI/custom_nodes/ComfyUI-Custom-Scripts/web/js/assets」フォルダに格納することで使用できます。初期通知音として「notify.mp3」がフォルダに格納されています。別の通知音を使用したい場合は、当該フォルダにmp3ファイルを格納し、fileにそのファイル名を指定することで使用できます。
System Notification
入力をトリガーにシステム通知を起こすカスタムノード「System Notification」を提供します。
例えば、以下のようにグラフの末端に接続することで、ワークフローの実行が完了した時に通知を出すことで、実行完了を通知するために使用できます。
「SystemNotification」の各ウィジェットの説明は以下になります。
- 入力「any」: 入力はトリガーにしか使用されないので、どんな値でも入力できます。
- message: システム通知に表示するメッセージを指定します。
- mode:「always」「on empty queue」から選択できます。
- always: 入力をトリガーに常に音が鳴ります。
- on empty queue: queue: キューが空になった時に音がなります。
Load Text
「Load Text」は、テキストファイルを読み込むカスタムノードです。例えば、よく使うプロンプトをテキストファイルで保存しておき、それを読み込み、プロンプトとして使用することが考えられます。
「Load Text」の各ウィジェットの用途は以下のとおりです。
- root_dir: テキストファイルを格納しているフォルダを選択します。
- input: 「ComfyUI/input」フォルダ
- output: 「ComfyUI/output」フォルダ
- temp: 「ComfyUI/temp」フォルダ(ない場合は作成する)
- file: 読み込むテキストファイルを選択します。
Show Text
「Show Text」は、テキストを表示するカスタムノードです。例えば、前述した「Load Text」を使用した際に、中間に「Show Text」を挟むことで、読み込んだテキストファイルの内容を確認することができます。
Show Image on Menu
メニューの下部に生成画像が表示される機能です。
String Function
「String Function」は、テキストのカンマ区切りでの結合や、正規表現を使った置換などの機能を提供するカスタムノードです。
「String Function」の各ウィジェットの用途は以下のとおりです。
- action: append, replaceから選択します。
- append: text_aのテキストに対して、text_b、text_cのテキストを追加します。
- replace: text_aのテキストに対して、text_bに記載した条件に一致した箇所をtext_cに置換します。
- tidy_tags: appendの際に、text_b、text_cのテキストをカンマ区切りで結合します。
appendの使い方としては、まず「String Function」のtext_aを入力に変換し、その入力に対してテキストを接続させ、入力されたテキストに対してtext_b、text_cの内容を追加します。
replaceの場合は、正規表現を使用することもできます。text_bに入力した正規表現に一致する箇所をtext_cに入力した正規表現で置換します。
Widget Defaults
ノードのウィジェットのデフォルト値を設定することができます。設定画面の「Widget Defaults」の「Manage」をクリック後に表示される画面からデフォルト値を設定します。
ウィジェットのデフォルト値の管理画面では、Node Class(カスタムノード名)、Widget Name(ウィジェット名)、Default Value(デフォルト値)を設定します。各項目を入力後に「Save」をクリックで登録完了になります。一例として、Node ClassにKSampler、Widget Nameにsteps、Default Valueに30を設定します。
以下がデフォルト値を設定した結果です。本来のstepsの初期値は20ですが、30に変更になっていることが確認できます。
Workflows
ワークフローの保存と読み込みを手軽に行える機能があります。ComfyUI-Custom-Scriptsをインストールすると、メニューの「Save」「Load」にプルダウンメニューが追加されます。
「Save」のプルダウンメニューを開くと、「Save as」と「Save to workflows」が表示されます。「Save as」は、標準の保存機能で、指定した場所にワークフローが保存されます。「Save to workflows」は、保存場所の指定はできず、自動で「ComfyUI/pysssss-workflows」フォルダに指定した名前でワークフローが保存されます。
次に「Load」のプルダウンメニューを開きます。このメニューには、「ComfyUI/pysssss-workflows」フォルダに保存されているワークフローが表示されます(要するに「Save to workflows」で保存したワークフローが表示されるということ)。通常の「Load」では、ファイル選択ダイアログが開き、読み込むワークフローを選択しますが、この機能ではプルダウンメニューに表示されたワークフローをクリックするだけで読み込むことができます。
設定画面では、メニューの「Load Default」で読み込まれるワークフローを「ComfyUI/pysssss-workflows」フォルダに保存されているワークフローに変更することが可能です。設定画面の「Default Workflow」の選択肢には、「[ComfyUI Default]」と「ComfyUI/pysssss-workflows」フォルダ内のワークフローが表示されます。「[ComfyUI Default]」は、ComfyUIの標準のワークフローになります。それ以外の保存したワークフローを選択すると、「Load Default」で読み込まれるワークフローが選択したワークフローになります。
Workflow Images
ワークフローを画像として保存する機能です。以下の記事で解説しているので、詳細は以下の記事をご覧ください。
Use Number Input Prompt
設定画面の項目「Use number input on value entry」を有効化すると、ウィジェットの数値入力がスピンボックスで可能になります。
ノードの数値タイプのウィジェットをクリックし、値の編集ボックスが開くと、上下のボタンが追加されています。
3. まとめ
ComfyUI-Custom-Scriptsは、ComfyUIの機能を大幅に拡張し、より快適で効率的なAI画像生成を実現する強力なツールです。ノードの自動配置、プロンプトのオートコンプリート、ワークフローの保存・読み込み機能など、様々な機能が提供されています。これらの機能を活用することで、ワークフローの管理、画像生成プロセスの効率化、そして新たな表現の可能性を探求することができます。
この記事で紹介した機能以外にも、ComfyUI-Custom-Scriptsは常に進化を続けており、新しい機能が追加されています。ぜひComfyUI-Custom-Scriptsを導入し、ComfyUIの可能性を最大限に引き出しましょう。あなたのAIアート制作が、さらに楽しく、創造的なものになることを期待しています。
次回は、ComfyUIのカスタムノード「XY Plot」の方法を紹介します。乞うご期待!
X(Twitter)@AICUai もフォローよろしくお願いいたします!
画像生成AI「ComfyUI」マスターPlan
画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。
- メンバー限定の会員証が発行されます
- 活動期間に応じたバッジを表示
- メンバー限定掲示板を閲覧できます
- メンバー特典記事を閲覧できます
- メンバー特典マガジンを閲覧できます
- 動画資料やworkflowといった資料への優先アクセスも予定
ゼロから学ぶ「ComfyUI」マガジン
https://note.com/aicu/m/md2f2e57c0f3c
マガジン単体の販売は1件あたり500円を予定しております。
2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。
https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self
もちろん、初月は無料でお試しいただけます!
毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
退会率はとても低く、みなさまにご満足いただいております。
✨️オトクなメンバーシップについての詳細はこちら
現在イベント実施中!
この記事の続きはこちらから https://note.com/aicu/n/nb3555a8a64da
Originally published at https://note.com on Sept 18, 2024.