← Back to スタジオ真榊

Pixiv Fanbox

ComfyUIが理解らない!知識ナシで使い倒せる完全入門ガイド

Published 01/19/2026, 02:27:08 PM · Edited 04/15/2026, 01:26:36 PM

ComfyUIが理解らない!知識ナシで使い倒せる完全入門ガイド








【2026.01.20更新】「他WebUIの生成画像からワークフローを再構築」「サブグラフ化」を追記しました。

【2026.01.21更新】「"移植手術"もLLMにやってもらおう」を追記しました。

NEW!【2026.04.14更新】ComfyUIの最新バージョン(v0.19.0)に準拠して記事内容や刷新しました。「有償のSeedance2.0で動画生成してみよう」を追記しました。


この記事は、「ノード」や「ワークフロー」なる妙な言葉で我々を幻惑させる謎のwebUI、「ComfyUI」が分からない人向けに書かれた入門記事です。普段はForge系を使ってSDXLで画像生成を楽しんでいるけれども、QwenImageEditのような流行のモデルをちょっと振り回してみたい方向けに、最低限知っておくとはかどる情報だけを非エンジニア・文系人間目線でまとめました。


主なターゲットは「Forge系やNovelAIなら楽しく画像生成ができるけど、ComfyUIは画面を見て引き返した」という一般的な画像生成AIユーザー。ComfyUIやプログラミングの常識がいっさい分からなくても、やりたいことがある程度できるようになることをゴール地点とします。ComfyUIの導入から画面の見方、ウェブから入手したワークフローをちょっと改造するやり方に始まり、最終的にhires.fixやimg2img、インペイント、そして流行のQwen系を使った画像編集や動画生成まで、誰でもたどり着けるような作りにしました。


最後まで読み終えても残念ながらComfyUIが分かるようにはなりませんが、分からないながらもある程度、ワークフローで遊べるようにはなるはずです。「デコード」「Latent」など言葉の意味が分からないときは、末尾にComfyUIで見かける「ワード辞典」もつけておきましたので、ぜひお役立てください。【約40,000字】



目次

ComfyUIとは何か

  <ComfyUIはなぜ「分からない」のか>

ComfyUIでできること

ComfyUIのはじめかた

  【StabilityMatrix版の場合】

  【ポータブル版の場合】

初回起動チェック

  <うまく起動できない場合>

ComfyUI Managerを導入しよう

  【その前に】「Git」は入れてある?

  <足りないカスタムノードの入手法>

  <黄色の"conflicts"の意味>

  <インストール済みのカスタムノードの操作法>

ComfyUIの初期設定

  <ショートカットについて>

最低これだけ!ComfyUIの基礎知識

  <コネクタの「色」に注目>

  <ワークフローの読み解き方>

  <画像ファイルはどう保存される?>

txt2img生成してみよう!

  <他WebUIの生成画像からワークフローを再構築> New!

  <ノードの呼び出し方・繋げ方>

    ・LoRAを読み込めるようにしてみよう

  <モデルのアンロード・キャッシュ解放>

  <アンロードしても画面がカクついたままなら>

  <プロンプトの強調は?ランダム化は?>

  <適用するLoRAを増やすには>

ノードの「バイパス」

改造したワークフローの保存

QwenImageEdit2511を導入しよう

  QwenImageEdit2511用のワークフロー(配布)

  <必要モデルのダウンロード>

  <必要カスタムノードのインストール>

QwenImageEdit2511で画像編集してみよう

Qwen系モデルでできるようになったこと

Hires.fixをComfyUIでやるには?

img2imgをComfyUIでやるには?

CNインペイントをComfyUIでやるには?

動画生成のやり方

  有償のSeedance2.0で動画生成してみよう

  Wan2.2で1枚の静止画を動画化する(i2v)

  2枚の静止画を動画化する(Start/End frame指定)

困ったらLLMに頼んでみよう

  <ノードIDとNodesMapを活用しよう>

  <"移植手術"もLLMにやってもらおう> New!

便利機能あれこれ「ComfyUI-Custom-Scripts」

覚えておきたいComfyテクニック New!

なんとなく分かった気になるワード辞典

終わりに


ComfyUIとは何か

ComfyUI(コンフィーユーアイ)は、「Comfortable(快適)」なインターフェースを目指して開発されたビジュアル系AIの生成プラットフォーム。Stability AIやGoogle出身の開発者で構成される団体「Comfy Org」が開発・保守しており、サンフランシスコの「小さなオフィス」で今日も運営されているそうです。(公式サイトより)


ただ、プログラム知識が全くないユーザーが初めて触った場合、あまり「Comfy」でないインターフェースであることはご存じの通り。ComfyUIは「ノード」と呼ばれるウィンドウを「ワイヤー」という線でリンクさせて「ワークフロー」という設計図を作る仕組みですが、これが非常にとっつきにくいのですね。

公式のワークフローをそのまま使うだけであれば、知識がなくともある程度動作はさせられるのですが、普段Forgeなどでできていることを再現しようとして設定を変えたり、自分のやりたいことを反映させようとしたりすると、ぴたっと手が止まってしまいます。なぜでしょうか。


<ComfyUIはなぜ「分からない」のか>

ForgeやNovelAIといったインターフェースは、ユーザーに見せるところと見せないところをはっきり分けて、操作できる情報を限定しています。ユーザーは実装されていない機能を使ったり、開発者が想定していないパラメータを操作したりすることはできません。しかし、操作できる部分が限定的であるために、仕組みや理屈は知らなくても「あ、ここをこういじったらこうなるのだな」ということを、いじっているうちにだんだんと理解していきます。


一方ComfyUIでは、画像生成のすべての流れ(ワークフロー)がユーザーからまる見えになっています。CLIPがこう流れ込んで、潜在空間でお絵描きがされて、VAEデコーダーを通ってpng化して…という数珠繋ぎの仕組みがすべてオープンにされているばかりか、多くの場合その経路は一本道ではなく、タコ足配線化します。他人が作ったワークフローには、謎の「カスタムノード」(※追加導入しないと使えない非純正ノード)が頻出。絡み合ったそれらのノードが何をしているのか一つ一つ理解しないと、どこをどういじったら自分がいまやりたいことができるのかすら分かりません。

             ▲これがComfyUIだ!


ワークフローをうまく組んだり、改変したりするには、CLIPやUNet、VAE(何それ?)の仕組みや各ノードの役割をある程度、我々ユーザーが理解する必要があります。要するに、ComfyUIは「学びを強いるインターフェース」なのです。


…と悪口を書くと、エンジニア勢からお叱りが飛んできてしまいますね。プログラム経験者からすると、ComfyUIは本当にComfortableに作られているのだそうです。Forgeのようにユーザーの指示が内部でどう処理されているか分かりづらく、実装された拡張機能を気軽に改変できない頑健なwebUIと違い、ComfyUIはワークフロー内のどこでどのように処理が進んでいるかが視覚的に分かるので、失敗したときも改善がしやすいのだとか。


そう言われてみると確かに、学んでいくうちにそうした「やりくり」が楽しくなっていく面もあり、思惑通りにワークフローが流れた時のComfyUIならではの面白さ、便利さがあることも……まあ…なくは…ないかな…?


残念ながら、本記事を読んでもComfyUIを理解できたりはしませんが、少なくとも目的にあったワークフローを自分で探すことができ、足りないカスタムノードを入手することができ、ちょっとだけ自分好みに改変できるーという最低限の使い方ができるようになることを目指します。同じ境遇のユーザーが、どのようなところでつまづきがちか、どうしたら問題を回避できたかを確認しつつ、ComfyUIが理解できなくても楽しめるレベルに到達してやりましょう!




ComfyUIでできること

ComfyUIでは、StableDiffusionやQwenImage、Wanなど、ローカル環境で動かせるモデルの大半を使って無料で画像生成を行うことができます。また、NanoBananaProやSeedream4.5といったクラウド利用型の有償モデルについても専用のノードがあり、1回あたりの利用料金を支払うことでAPI利用することが可能です。


では、具体的にどういうことができるかというと、「ワークフローさえ組めればなんでもできる」ということになってしまうのですが、何か作業をするたびに自分用のワークフローをイチから組むのでは時間がいくらあっても足りません。よって、基本的には公式や他のユーザーが組んだワークフローをDLして、自分好みにいじって使うことになります。ComfyUI上ではさまざまなワークフローが「テンプレート」として共有されており、Civitaiなどのプラットフォームでも探すことができます。



下記はComfyUIを使った主な生成例です。2025年末以降にQwen系の進化によってできるようになったものを中心に紹介しています。


・複数画像を入力した画像編集

(※下図は指定キャラに写真のメイド服を着せてソファに座らせるよう指示)


・イラストの一部の自動検出+描き替え

(※下図はSAM3という部分検出モデルで「face」を指定。NanoBananaの「マスピ顔」になった部分が自動でマスクされ、普段のSDXL画風に描き替えられています)


・カメラ方向を指定したアングル変更

8方向×高さ4段階×遠近3段階=計96方向をカメラ操作ノードで指定可能


・画像の自動レイヤー分割

レイヤー分割専用の「QwenImageLayered」を使用(かなり重い)。レイヤー数は指定可能


・画像のアングル変更+ポーズ変更

アングル変更の応用1。ポーズや表情変更も可能。


・画像の8方向連続推論

アングル変更の応用2。1つのワークフローで指定した8方向からの画像を順次生成する。背景や無機物でも可能


・静止画像の動画化(無料のWan2.2、有償のSeedance2.0など)

1枚の画像から未来方向(もしくは過去方向)へ推論して動画化したり、ループ動画を作ったり、2枚の画像をスタート/エンドフレームに指定してその間を補完した動画にしたりできる。こちらは無料でH動画化もできるWan2.2。

初めて使う場合は、普段のComfyUIと別の場所にWan2.2専用の環境を簡単導入できる「Easywan22」もお勧め。Seedance2.0など、音声つきでハイクォリティな動画生成ができる最新モデルを有償利用することもできるが、かなり高価な上、成人向けの表現は不可な点に注意が必要。


・NanoBananaProを有償利用

専用のノードがあり、有償クレジットを消費して都度利用できます。2Kまでは28.27クレジット、4Kは50.64クレジット消費。レートは5ドル=825円=1055クレジットなので、1クレジット約0.78円となり、1枚22~40円で生成できる計算です。高ッ(※いずれも記事執筆時点)



ComfyUIのはじめかた

ComfyUIをローカル導入するには、大きく分けて、


①画像生成系webUIの統合導入アプリ「StabilityMatrix」でパッケージ導入

②スタンドアローンで動く「ポータブル版ComfyUI」を導入


の二つの方法があります。(他にも@Zuntan03さん提供のかんたん導入セット「SimpleComfyUI」などがありますが、ここでは割愛)


問題はどちらにするか。StabilityMatrixを使うメリットは、使用するCheckpointやLoRAといったモデルを「Data/Models」フォルダで共有できることと、comfy本体のアップデートや管理が簡単なことです。ポータブル版の場合、StabilityMatrixのModelsフォルダにあるSDXLモデルやLoRAなどを使いたければいちいち探して複製する必要があり、無駄にストレージを消費してしまいます。

          ▲StabilityMatrix上で動作するComfyUI


一方、ComfyUIのModelsフォルダの構造はかなりForge系と異なり、LoRAフォルダの中でQwen ImageやWan用のLoRAとSDXL用が混じってしまうと探しづらいので、ComfyUIだけ単独環境で導入したほうが使いやすいという人もいます。もちろんstabilitymatrixで導入した場合も、モデルを他のパッケージと共有しない(comfy UIのフォルダだけで独立させる)よう設定できるので、そこまで迷うことではないと思います。


以下、導入方法を見ていきます。



【StabilityMatrix版の場合】

StabilityMatrix自体よく知らない、導入は初めてという方は、先にこちらの記事を参照ください。


まずはStabilityMatrix上で「パッケージ▶パッケージの追加▶ComfyUI」を選択し、インストールします。


このように最新版が選ばれていることを確認して、「インストール」すればOKです。(記事執筆時点ではv0.19.0)


ComfyUIで使うモデルを他のwebUIと共有したくない場合は、ここで「高度なオプション」からモデルの共有を「None」にしておきます。こうしておくと、StabilityMatrixの「Data\Models」フォルダと、ComfyUIが読み込む「Data\Packages\ComfyUI\Models」フォルダを別々に管理できます。

※「Symlink」はシンボリックリンクというものを作って、あたかもどのwebUIのフォルダにも「Data\Models」と同じモデルが配置されているかのように認識させて共有する方式。デフォルトの「Configuration」はより安定した、権限問題が起きにくい方式と思っておけばよいです。


あとは「Launch」で起動するだけ。このように「更新」ボタンが有効になっていたら、最新版が公開されていますので、クリックするとアップデートすることができます。


Launchする前に歯車の形のボタンを押すと、このように起動オプションを選べます。「Auto-Launch」にチェックを入れておくと、起動時に自動でブラウザが開き、UIを表示してくれるので便利です。(Forge系は入れなくてもやってくれますね)


【ポータブル版の場合】

StabilityMatrix上ではなく、ComfyUIだけ独立した環境を作りたい場合は、公式のComfyUIリリースページからポータブル版のパッケージをDLします。ここでは、0.19.0の「ComfyUI_windows_portable_nvidia_cu126.7z」(1.79 GB)をDLします(WindowsでNVIDIA製のグラフィックボードを利用している前提で話を進めます)


7zファイルはzipなどと同じ圧縮ファイル。WinRARなど対応した解凍ソフトで展開しましょう。このようなファイルが出てきますので、NVIDIAのGPUを利用している我々は「run_nvidia_gpu.bat」を実行すればOKです。

今後も起動はこちらのbatファイルから行いますので、デスクトップなどにショートカットを作っておくとよいでしょう。




以上、いずれかの方法でComfyUIがインストールできたら、早速起動してみます。



初回起動チェック

StabilityMatrixでもポータブル版でも、無事インストールできていれば、このような画面が開かれるはずです。(※ComfyUIのバージョンによって異なります)

PC内に別のComfyUI環境を作ったことがある場合、当時と同じワークフローを再び開こうとして、必要なノードやモデルが見つからずにエラーが起こります。これはComfyUI起動時あるあるですので、気にせずそのワークフローを閉じましょう。


<うまく起動できない場合>

この時点でこの画面にたどり着けない場合、インストールに失敗していると思われます。StabilityMatrixを利用している場合は、何らかのエラーがこちらのコンソール画面に出ている可能性が高いので、全文コピペしてChatGPTやGeminiに尋ねるのが最も早い解決法です。(これはForgeなどでも同じです。困ったらまずLLMに聞こう)


ポータブル版の場合も、「run_nvidia_gpu.bat」を実行して出てくる黒いコマンドプロンプト画面の全文をコピペして、同様にChatGPTやGeminiに尋ねると教えてくれます。


起動エラーでよくあるのが、上のスクリーンショットでも指摘されている、「ポート重複エラー」です。既に使われている番号でアプリを立ち上げようとしてエラーを起こしているので、分かる方はポート変更を。分からない場合はCtrl+Alt+Deleteでタスクマネージャーを開いて、「python.exe」を右クリック→「タスクの終了」で終了させると解決します。(※他にPythonで重要作業をしていないことを確認してください)




ComfyUI Managerを導入しよう→不要に

無事起動できることを確認したら、ComfyUIやカスタムノードの管理アプリ「ComfyUI Manager」をまず入れましょう。…とこれまで紹介してきたのですが、その後正式にComfyUIに統合され、始めから使えるようになっています。ComfyUIの画面右上にある「拡張機能の管理」ボタンを押すと起動します。

これはForgeでいうと「Extension」タブのようなもの。これを入れることで、作業に必要な「カスタムノード」を探して追加したり、アップデートしたりすることができます。これがないと、他人のワークフローを使おうとして「そんなノードないけど?」とエラーが出るたび、ひとつひとつ手作業でインストールするはめになります。


<ComfyUI Managerの基本機能>

ComfyUI Managerでできることは以下の通り。


①カスタムノード管理

ComfyUIに便利な「カスタムノード」をインストールするほか、バージョンアップ・削除・無効化などの管理ができます。

②モデル管理

ComfyUIで使えるSDXLやControlnet、LoRAなどさまざまなモデルを、ここから直接探してDLすることができます。(CivitaiやHuggingfaceから直接DLしてきてしまうことも多いです)

③スナップショット管理

ComfyUIのインストール状態の保存と復元がここからできます。環境が壊れてしまったときに。

④ミッシング(欠落)ノードの検出★

読み込んだワークフローに足りないカスタムノードがあった場合、自動的に検出してインストールできる便利機能。これが一番よく使います。

⑤競合ノードの検出

カスタムノードの中には、動かせる環境条件が異なるものもあります。そうした競合(conflict)が起きたことを検出し、修正することができます。



<足りないカスタムノードの入手法>

他人のワークフロー(jsonファイル)を開くと、しばしばこのような「ミッシングノード(未導入のノード)があります」というメッセージが出ます。


このように、エラーが起きているノードは赤で囲まれて表示され、右上になぜエラーが起きているか案内されます。初めて使うワークフローではこのようになるのが当たり前ですので、慌てないようにしましょう。


右上の「エラーを表示」ボタンを押すと、このようにエラーの理由が説明されます。ここから不足しているノードパックを「すべてインストール」することもできますが、ここではComfyUI Managerを使ってインストールしてみましょう。


エラーを解決するには、ComfyUI Managerの画面左にある「不足しているノード」ボタンをクリックします。するとこのように、さきほどMissing(存在しない)と判定されたノードが同梱された「パック」が自動表示されます。これがComfyUI Managerの最もありがたい機能。

カスタムノードは単体ではなく、複数まとめたパッケージ(ノードパック)で配布されていることが多いです。これらのパックを入手すれば、その中に不足しているノードが入っているということですね。


あとは、表示されたリストから「インストール」するか、右上の「すべての不足しているノードをインストール」をクリックすればOK。画面下に、「変更を適用するにはComfyUIを再起動してください」とメッセージが出るので、「変更を適用」ボタンを押すと再起動できます。


「変更を適用するためにバックエンドを再起動しています...」というメッセージが表示され、しばらく待つとComfyUIが再起動します。今度は必要ノードが揃い、赤いエラー表示がなくなりましたね。

今後もこのように、新しいワークフローを試すたびにこの過程を経る必要があります。Forgeにおける拡張機能の導入のようなシークエンスだと思っておけばOKです。


今回のように足りないノードを追加するやり方以外にも、「すべての拡張機能」からノード名を直接検索して追加することもできます。あらかじめ用意されたワークフローを使うだけでなく、自分で独自のワークフローを組めるようになると、このやり方で必要なノードをどんどん追加していくことになります。




ComfyUIの初期設定

さて、次はComfyUIをより使いやすい環境にしたいので、「初期設定」をします。ComfyUIの画面左下に「設定」欄がありますので開いてみましょう。ComfyUI全体の設定はこちらから行います。


このような画面が表示されます。ComfyUI全体の設定のほか、追加したカスタムノードの機能もこちらから設定することができます(左側のメニューに「rgthree」や「pysssss」などと書かれているのがそれです)


以下、最初に確認しておきたい主だった設定項目を見ていきましょう。


・「Comfy▶ロケール」

基本的に初期インストール状態で日本語化されているはずですが、もし英語表記になっている場合はこちらから変更できます。ただし、ノード名などが勝手に日本語訳されると逆に分かりにくくなる(他人のワークフローと同じノードなのに違う表示になり、混乱する)こともあるので、英語にした方が扱いやすいという人もいます。


・「Comfy▶ワークフロー」

「Comfy」メニューの一番下にこのようなワークフロー欄があります。基本的にデフォルト(下図)のままでよいと思いますが、自動保存やノードID(後述)のソートなどがしたい場合など、好みで変更しましょう。

ちなみに、最初に「ComfyUIあるある」と説明した「前回別のComfyUI環境で開いていたワークフローを再現しようとしてエラーを起こす」現象は、この一番上の機能が原因だったりします。正しく動かしていてもエラーやミッシング、conflict通知に遭遇するのが当たり前のUIなので、そこは慣れていきましょう。


・「LiteGraph(リトグラフ)▶常にグリッドにスナップ」

各ノードの位置を揃えたい方はこちらをオンにします。ドラッグしたときにグリッド(背景の縦横線)に沿ってピタッと揃います。グリッドの間隔は「グリッドサイズにスナップ」の数字で調整します。


・「LiteGraph(リトグラフ)▶リンクレンダーモード」

ワイヤーの形状を変更できる。デフォルトはスプライン(曲線)ですが、「ストレート」にすると縦横のみの直線に。

「リニア」は斜めありの直線になります。

「隠す」だと非表示になります。重なっているところが分かりにくくなると混乱するので、スプラインかリニアがおすすめです。


・「LiteGraph(リトグラフ)▶ノードIDバッジモード」

ONにすると、右上にこのようなノードID(通し番号)が表示されます。ChatGPTやGeminiにワークフローのjsonファイルを投げて質問するとき、「ああ、これは#4のノードと#8のノードが接続ミスしているから…」というふうにIDベースで教えてくれるときが多いので、最初にオンにしておくと良いでしょう。


・「外観▶ノードウィジェット▶テキストエリアウィジェットのフォントサイズ」

デフォルトだと、プロンプトなどがかなり小さめに表示されて入力しづらいです。このように大きくしておくとよいでしょう。


・「EasyUse▶ノードマップ▶グループマップを有効にする」

右下についているこのミニマップで、いまノード全体のどのあたりが表示されているのか確認でき、マップ上をドラッグすることで動かせます。邪魔ならここの設定欄からオフにできます。



<ショートカットについて>

「設定」ボタンのすぐ上にショートカットを表示するボタンがあります。クリックすると、このようなショートカット一覧を確認できます。

ぶっちゃけあまり使わないので、非常によく使うものだけ以下、掲載しておきます。


Ctrl+Z:ワークフロー上の操作を一つ戻す。

Ctrl+Y:戻したワークフロー上の操作を一つやり直す。

Ctrl + Enter:現在のワークフローを実行(キューの最後に)

Ctrl + Shift + Enter:現在のワークフローを即・実行(キューの最初に)

Ctrl+ドラッグ:複数ノードを選択(Ctrlを押しながらクリックでも可)

スペースキー:ワークフロー上をスクロール(間違ってノードを動かさない。安心)



最低これだけ!ComfyUIの基礎知識

初期設定が済んだので、いよいよComfyUIの動かし方について入っていきます。が、できるだけ勉強はしたくないので、「最低限これだけ覚えておけば大丈夫」という情報だけをできるだけコンパクトにまとめてみます。


ComfyUIはそれぞれが単独の役割を持った「ノード(結び目)」を「ワイヤー(線)」で繋げて、ある意図を持った「ワークフロー(工程)」をつくるインターフェースです。各ノードには左側に「入力」、右側に「出力」を示す丸い「コネクタ」がついていて、これらをワイヤーでつなぐことで連鎖的に動きます。(※ポートやスロット、ウィジェットなどとも呼ばれますが、この記事ではコネクタで統一します)

上の図では、始点となる「チェックポイントを読み込む」ノードには入力コネクタがなく、終点となる「画像を保存」ノードには出力コネクタがありません。よって、画像を保存したところで行き止まり=ワークフローが完結するつくりになっています。


<コネクタの「色」に注目>

スクリーンショットを眺めていると分かる通り、コネクタにはそれぞれの種類ごとに色が割り振られており、伸びるワイヤーも同じ色です。画像は青、紫はモデル、赤はVAEと、おおむね同じ色同士がワイヤーで繋がるようにできているので、まずはこれをヒントにノード同士を繋げていくことになります。

ただ、「拡大モデル」&「アップスケールモデル」とか「VAE」&「vae」のように、コネクタ表記はそれぞれのカスタムノードによってばらばらになっていることがあるのがつまずきどころ。文面が違ってもつなげられるのでご安心ください。



<ワークフローの読み解き方>

次はこちらのワークフローをご覧ください。見ただけでは何がなんだか分からないかもしれませんが、これは我々がForgeなどでtxt2image生成するときの画像生成の仕組みを最もシンプルに表現したワークフローになっています。

まずCheckpointを読み込み、プロンプトを読み込み、キャンバスサイズを設定して、設定どおりに潜在空間で画像生成を行い、VAEに翻訳してもらい、pngを保存するーという流れ。これを思い通りにカスタムしていくと、どんどんたこ足配線化していくわけですが、「画像生成に最低限必要な基本セットはこれ」とだけ覚えておきましょう。(※上の場合はCheckpointがVAEとしても働いているので、VAEデコードにcheckpointが刺さっています)


「チェックポイントを読み込む」とか「画像を保存」、「プロンプト」といったノードの役割はもう理解できると思うので、ここで覚えておくべき重要ノードは次の三つ。


①生成の核「Kサンプラー」

SDXLのようなdiffusionモデルは、人間には見えない圧縮された「潜在空間」でCLIPテキスト(人間の指示をAI語に翻訳したもの)をもとにお絵描きをしますが、その処理の核となるのがこのノード。「モデル・プロンプト・潜在画像」の入力を受けて、設定した通りの処理を施し、潜在情報(latent)を出力する役割を果たします。画像を出力するのではないことに注意してください。

Seed値、ステップ、スケール、サンプラーなどの設定は、基本的にForgeと同じと考えればOKです。ノイズ除去は、img2imgするときのノイズ除去強度のこと。txt2imageなら1.00です。スケジューラは、最近のForge系では非表示になっていることが多いですが、「昔A1111版でなんとかKarrasってあったな…」というあれ。サンプラーを調整するものですので、よくわからなかったらnormalとかsimpleでOKです。(私はQwen ImageでもSDXLでもEulerA+betaの組み合わせをよく使いますので、迷ったら使ってみてください)


②画像サイズ指定「空の潜在画像」

Forgeでいうなら画像サイズとバッチサイズを決めるノードです。潜在空間でお絵描きをするには、その「場」となるキャンバス情報が必要です。いろいろな入力の仕方がありますが、ここでは空っぽのキャンバスを指定サイズで与える「空の潜在画像」ノードが採用されています。

デフォルトだと512x512pxになっていますが、SDXLの場合は1024x1024pxが基本です。画像ではなく潜在空間上の情報を与えるノードなので、コネクタは青色の「画像(img)」でなくピンク色の「潜在(latent)」になっています。


下にある「バッチサイズ」で、同時に何枚潜在画像を与えるか、つまり同時生成の枚数を決定できます。こちらは4枚同時生成したケース。

ちなみに、生成スタートを指示する「実行する」ボタンの横の数字は「何回分キューを入れるか」なので、同時生成ではありません。混同しないようにしましょう。


<入力画像がある場合のキャンバス設定>

ちなみに、QwenImageEditなどのモデルは空っぽの潜在画像ではなく、入力画像そのものをキャンバスにして「お絵描き」をしてもらうことが多いので、下図のような仕組みで画像サイズを設定します。

これは画像を読み込んだときに自動でリサイズする仕組みで、非常によく見掛けるので覚えておきましょう。例えば、入力した画像がもし「4096x4096px」だったりすると、その後のワークフローが重くなりますし、画像生成処理もめちゃくちゃになりますね。それを防ぐために、ComfyUIでは「画像を総ピクセルにスケール」や「FluxKontextImageScale」という画像サイズ変更ノードで、アスペクト比はそのままでちょうどよいサイズにする仕組みがよく使われます。

「メガピクセル」とあるのは、ヨコタテのpixel数を掛けた面積がいくらになるかという意味。SDXLでちょうどよい1024x1024px程度にしたいなら、おおむね1MP(メガピクセル=100万画素)を選びますし、もう少し大きくても大丈夫なモデル・環境なら2MP~を選びます。


拡大方法は、「lanczos」がガタつかないのでオススメ。よく見掛ける「FluxKontextImageScale」ノード(画像編集にちょうどよいサイズに調整する役割)も、内部的にはlanczosを採用しています。



③最後の翻訳「VAEデコード」

Kサンプラーが出力するのは人間に見えない「latent」情報なので、人間が見えるようVAEに翻訳してもらわなければなりません。その役割を果たすのが「VAEデコード」ノード。左からlatentとvaeが入力されて、画像情報が出力されるのが分かりますね。ここから最後に「画像を保存」ノードにつなぐことで、画像生成が完結します。

逆に、入力画像をlatentに変換して処理する必要があるときは「VAEエンコード」ノードを使います。スマホの充電コネクタをlightningとUSB-Cで変換するようなものなので、「刺さればいいんだ」精神で大丈夫です。


<画像ファイルはどう保存される?>

生成工程が「画像を保存」ノードに至ると、「ComfyUI\output」フォルダに画像が出力されます。Forgeなどはどんなときも「設定」欄で決めた規則(日付別フォルダなど)で画像が保存されますが、ComfyUIの場合は毎回このノードで、出力される画像のフォルダ分けや命名法則を決めなければなりません。使いづらいですね。


画像を保存ノードには「ファイル名_プレフィックス」という欄がありますが、これは00001.pngのように連番で出力される画像ファイル名の「前置詞(前に書かれる文)」を決める入力欄です。例えば「%date:yyyy-MM-dd%/ComfyUI」と入力すると、その日ごとに「2026-01-01」といったフォルダがoutputフォルダ内に生成され、「comfy00001.png」「comfy00002.png」...といったファイル名で画像が出力されます。「%KSampler.seed%」や「%Load Checkpoint.ckpt_name%」を挟むと、Seed値(Kサンプラーノードで選択されたもの)やCheckpoint名をファイル名として記録することもできます。


他のユーザが共有したワークフローを採用すると、画像保存ノードの設定がそれぞれ異なるので、Outputに溜まる画像の保存形式も乱れがち。統一したい場合はいつも決めた命名法則をこのノードに入力するようにしましょう。




txt2img生成してみよう!

まずは普段通りのtxt2image生成をしてみましょう。一番最初に表示されるこちらのワークフローを使います。「models\checkpoint」に普段使っているSDXLモデルを入れ、空の潜在画像ノードで画像サイズを「1024x1408px」に設定。ステップ28、スケール5、EulerA、Seed値ランダムで、プロンプトとネガティブプロンプトを下記のように入力し、生成スタートしてみます。


生成開始はこちらの「実行する」ボタンで行います。横に書いてある数字は、キューをいくつ入れるかです。「4」とすると同じ工程が4回繰り返されますが、Seed値が同じだと同じ画像が4回生成されることになりますのでご注意ください。生成を途中でストップする場合は、横の赤い「×」ボタンで緊急停止できます。


こちらが生成結果です。各ノードが順番に処理され、最終的にこちらの1girl画像がoutputフォルダ内に保存されてワークフローが終了します。


出力された画像は、左側の「アセット」メニューからも閲覧することができます。


出力された画像はoutputフォルダをいちいち探しにいかなくても、このように保存ノードから右クリックすれば「画像をコピー」「開く」「保存」といったことが簡単にできて便利です。


ComfyUIから出力されたpng画像には、出力時のワークフロー情報もそのまま保存されています。pngをComfyUI画面上の何もないところにドラッグアンドドロップすると…


その画像を生成したワークフローが再現されます。入力した画像などもサルベージできて便利ですが、ComfyUIで生成した画像をそのままウェブ上で配布すると、他人からもこうした生成情報が見えることは覚えておきましょう。


<他WebUIの生成画像からワークフローを再構築>

ちなみに、ComfyUIで生成したpng画像にワークフローが保存されているだけでなく、Forge系など別のSDwebUIで生成したpng画像も、実はComfyUIで読み込むことができます。その画像がどのようなフローで生成されたかを自動で読み取って、ComfyUIにおけるワークフローとして再構築してくれます。


例えば、reForgeで生成したこちらのミナちゃんの画像を、そのままワークフロー画面にドラッグアンドドロップしてみます。1408x1024pxから、1.5倍にHiresしたものです。


するとこのように、非常に横長のほぼ一直線なワークフローが表示されました。


一つ一つ見ていくと、使用したチェックポイント、ClipSkip2であること、月須和さんが作ったBold/FlatLoRAを使っていること、Hires.fixに使ったアップスケールモデル、キャンバスサイズなどがちゃんと盛り込まれています。Forge系で画像から生成時の設定を再現するのと同じ仕組みですね。


基本的にカスタムノードではなく純正ノードで構成されるので、普段自分がやっている画像生成がComfyUI上で最もシンプルにワークフロー化するとどうなるかを視覚的に確かめることができます。これを元に「普段のt2i設定.json」などの名前で保存しておくと、ForgeからのComfyUI入門が楽になります。(ADetailerのような独自の拡張機能や、XYZ plotのようなグリッド画像などからは再現できないこともあります)


ただし、Seed値などを全く同じにしても、生成される画像はForgeなどと変わってしまいます。詳しくはこちらに公式の説明がありますが、主にSeed値に基づいて最初に与えるノイズの作り方が違うため。別webUIで生成した画像の再現には使えないので、主にワークフローを写し取るのに活用しましょう。



<ノードの呼び出し方・繋げ方>

さて、さきほどの基本的なtxt2image構造に戻ります。ComfyUIを練習するのには、こうしたノード群をいったん削除してから、各ノードをいちから自分で呼び出して、ワイヤーを接続して、再び同じものを作り上げてみることです。が、今回の目的はComfyUIを理解することではないのでスキップ。ノードを呼び出し、これをちょっと改造するやり方だけ書いておきますので、脳内でシミュレートしてみてください。


・LoRAを読み込めるようにしてみよう

ワークフローの何もないところでダブルクリックすると、このようなメニューが現れます。ここから、現在呼び出すことのできるノードを検索することができます。マウスオーバーすると、画面左にどんなノードかが表示されます。


ここでは、LoRAを使って画像生成をしてみたいので、「LoRA」と検索窓に打ち込んでみます。このように、LoRAに関するノードがいくつも表示されます。「LoRAローダーモデルのみ」をクリックしてみます。


<ちょっと脱線:"モデルのみ"は何が違う?>

LoRAの学習記事でも触れましたが、LoRAはモデル本体のUnetにのみ学習させる方法と、TE(テキストエンコーダ)込みで学習させる方法があります。通常のLoRAローダーにはmodelとCLIP両方のコネクタがあるので、テキストエンコーダ(TE)も含めて追加学習しているLoRAの場合、TE側にも適用できますが、「モデルのみ」のローダーは、モデルのU-NetにだけLoRAを適用するので、生成結果が変わります。(脱線終わり)



さて、「LoRAローダーモデルのみ」を選ぶと、さきほどダブルクリックしたところにちいさなノードが追加されました。このノードを選択すると出てくるこちらのメニューから、「i」と書かれたノード情報ボタンを押してみましょう。


するとこのように、何をするノードなのかの説明文が表示されます。初めて使うワークフローの場合は、この欄を表示してみると、何ができるノードか、各パラメータで何を操作できるのかを理解するのに役立ちます。(個人配布のカスタムノードだと、あまりちゃんと書いてくれてないことも多いですが…)


さて、このLoRAローダーを使って普段使っている画風LoRAを読み込みたいのですが、さっきのワークフローのどこにどう挟み込めばいいのか分かりません。ここもつまずきポイントです。

繋げ方が分からないときは、基本的にはこの左右のコネクタ部分を見てみます。どちらも紫の〇と「モデル」と書かれていますので、ここと繋がるのも基本的に同じ紫の「モデル」のコネクタであるはずです。


さきほどの「i」ボタンで出てくる説明文にも、入力側にLoRAを適用したいベースモデルの情報が流れ込み、出力側が調整済みのモデル(ベースモデルにLoRAが適用された状態のモデル)の情報が出ていくことが説明されています。


いま、Kサンプラーノードの「モデル」コネクタにはこのように、「チェックポイントを読み込む」ノードのモデルコネクタが直接つながっています。ここにLoRAローダーを割り込ませれば、checkpointとLoRAの両方をKサンプラーにつなげることができそうです。


紫の〇を右クリックすると、「Disconnect links(リンク切断)」と表示されるので、クリックするとワイヤーが切断されます。


今度は、モデル側の出力コネクタ(緑の丸)をドラッグしてみます。すると、LoRAローダーまで「にょーん」とワイヤーを伸ばすことができます。この要領で、LoRAローダーの左右をつないでみましょう。


このようにできたら、たったこれだけでこのワークフローに「LoRA読み込み機能」が備わりました。なんだか自分で新機能を実装したような気分が味わえて、ちょっと楽しくありませんか?…そうでもないでしょうか。


普段Forgeなどで画像生成する際は<lora:sdxl-flat:0.5>などとプロンプト上にトリガーワードを記入することで作用させていたと思いますが、ComfyUIでは不要です。ノードで読み込み、適用強度を設定したら、それだけでLoRAが常時発動しています。


普段のプロンプトと画風LoRAを適用して生成してみると…


無事、LoRAを適用した画像生成ができました。

これはTE込みで学習させたLoRAなので、「LoRAローダーモデルのみ」ノードで読み込むと、Forgeで生成したときと少し画風が違いますね。こういうのも知らないとぱっと分からない「つまずきポイント」ですが、分かってみると大したことはありません。



<モデルのアンロード・キャッシュ解放>

いま、Checkpointをロード(読み込み=PCに背負った状態)して画像生成を行いましたので、モデルのアンロードとキャッシュ解放について触れておきます。ComfyUI Managerを呼び出すボタンの横に、このような4つのボタンがついています。一番左の「★」はお気に入りのカスタムノードを呼び出すボタン。重要なのは、次の二つです。


★の隣の「Unload Models」ボタンは、現在読み込まれているモデルを「アンロード」(荷下ろし)するボタンです。タスクマネージャーを見ていると分かるのですが、ComfyUIのローダーでモデルがいったん読み込まれると、VRAMに負担が掛かったままになります。複数のモデルをロードするとあっという間にVRAM容量が一杯になるので、使い終わったらこのボタンでアンロードするようにしましょう。

その隣の「Free Model and node cache」は、使用したモデルやノードのキャッシュを解放するボタン。こちらも似たようなもので、メモリ解放に使います。妙にVRAMやメインメモリが圧迫されているなと感じたら、いったん生成を止めてこちらの二つを押すと解決することがあります。


普通の画像生成はForge系でやりたいユーザーも多いと思いますが、ComfyUIと同時に起動する場合も、このアンロードボタンを使ってメモリを圧迫しないようにするとよいでしょう。


最後に、一番右の矢印ボタンはワークフローのシェアボタンです。プラットフォーム上に自分の作ったワークフローを共有できます。あまり使いません。


・アンロードしても画面がカクついたままなら

なお、モデルをアンロードしてVRAMなどが解放されたのにブラウザ(Chromeとか)が極端にカクついたままの場合、余りのVRAM負担でGPUプロセスがクラッシュするなどして、ブラウザの描画がグラボからCPUに移行していることが考えられます。タスクマネージャからChromeのタスクを終了させて再起動すると改善するはずです。グラフィックドライバをリセットするショートカットキーもありますが、あまりおすすめしません。



<プロンプトの強調は?ランダム化は?>

ComfyUIにおいては、基本的にモデル(もしくはテキストエンコーダ)によって、適切なプロンプト指示が変わります。例えばNanoBananaやQwenImageEditでは日本語での自然言語指示が効きますし、SDXLは普段通り「1girl,smile...」式で指示することになります。


Forge系で普段やっているのと同様に、(smile:1.4)のような強度アップも可能です。「smile」部分をドラッグ選択して「Ctrl+↑」や「Ctrl+↓」キーで強化・弱化表記になるので、いつも通りの感覚でプロンプト記述しましょう。また、(((smile)))のように記述すると丸かっこ一つあたり1.1倍に強度を強めることができ、[[[smile]]]で逆に弱めることもできますが、公式は「期待した結果が得られないかもしれない」としており、あまりおすすめしていないようです。


Forgeではdynamic promptと呼ばれる{a|b|c}式のランダムプロンプトも、ComfyUIではデフォルト状態で使うことができます。こちらは1girl,{red hair|blue hair|yellow hair}...と指示したケース。


このように、与えられたSeed値ごとに髪色がランダムになります。Kサンプラーノードでseed値を「fixed」(固定)にしていると、全く同じ画像が出てくるのでご注意ください。


・テキストファイルで操作する「Wildcard」機能

Forge系でいう「wildcard」、つまり保存しているテキストファイルからランダムにプロンプトを拾って生成する機能のほうは、専用のカスタムノードを使う必要があります。例えば「ComfyUI Impact Pack」に入っている 「Impact wildcard processor」というノードを使う場合、「ComfyUI\custom_nodes\ComfyUI-Impact-Pack\wildcards」フォルダ内にhaircolor.txt(各行にさまざまな髪色タグが書かれているもの)をあらかじめ置いておき、「__haircolor__」というタグを使うと、そのうち1行をプロンプトにランダム採用できます。


こちらがその「Impact wildcard processor」ノード。上の「wildcard prompt」欄にwildcardのトリガー入りのプロンプトを記入し、実行ボタンを押すと、下段の欄にランダム採取の結果が表示されます。「processed text」を流し込みたいプロンプトノードに入力することで、下段に表示された内容がプロンプトとして扱われます。「Select to add wildcard」ボタンを押すと、wildcardフォルダ内にあるtxtファイル一覧からトリガーを選ぶことができます。


これは「1girl」に「__haircolor__, __hairstyle__」のワイルドカードを適用した結果、「red_hair, braided_bun」が採用された例。ワイルドカード用のノードがこのように繋がれているので、緑色の本来のプロンプトノードはグレーアウトして、プロンプトを記入できなくなっています。


「プロンプト大辞典」では、髪色やポーズ、表情などさまざまなWildcardを配布していますので、適宜「ComfyUI\custom_nodes\ComfyUI-Impact-Pack\wildcards」に保存して使ってみてください。



<適用するLoRAを増やすには>

さきほどはLoRAを一つだけ適用しましたが、2つ以上のLoRAを同時に使いたいときは、LoRAローダーのノードを数珠繋ぎにすればOKです。まずLoRAローダーを右クリックして「クローン」を選び…


このようにノードが複製します。あとはこれらの入出力をつないで直列に並べれば…


このように、3つのLoRAを適用できるワークフローになりました。小学校でやった電池の直列つなぎみたいですね。


ちなみに、Ctrlキーを押しながら画面上をドラッグすると、このように複数のノードをまとめて選択し、移動させられます。後述する「ComfyUI-Custom-Scripts」カスタムノードを導入していると、複数ノードを選択した状態で右クリックして「選択項目を揃える」を選ぶと、上下左右のラインに整列させることもできて便利です。


ノードの「バイパス」

ただ、画像生成するときに必ず3つLoRAを読み込むわけではありませんよね。使うたびにローダーを呼び出すのも、いちいち切り離すのは面倒です。


そういうときは、無効化したいノードを選択した状態で「Ctrl+B」キーを押すと、そのノードを「バイパス」(迂回)することができます。下図では右二つのノードをバイパスしたので、この二つはないものとして飛ばされ、一番左のLoRAだけが適用されます。(バイパスされたノードは半透明の紫色になります)

「Ctrl+B」ではなく、ノードを右クリックして「バイパス」でも同じことができます。


このテクニックは非常によく使うので、よく覚えておきましょう。例えば、QwenImageEdit2511では最大三つの画像を読み込みできますが、このように今回使わない画像読み込みノードをバイパスしておくことで、いちいちワイヤーを切断したり、構造を変更したりしなくてもよくなります。

ウェブ上からワークフローをDLして開いたときに、最初から半透明の紫色になっているノードがあったら、「ははあ、使いたいときだけCtrl+Bしてくれってことだな」と思えばOKです。


ちなみに、LoRAローダーを数珠繋ぎにしなくても、このように一つのノードで複数LoRAを読み込めるカスタムノードも提供されています。他人のワークフローを眺めていると、「なんだこんな便利なノードがあったのか」と気づくことも多いので、覚えておくと良いでしょう。


改造したワークフローの保存

ワークフローを改変した場合は、新しい名前をつけて保存しておくと、次からまた呼び出すことができます。名前のついていないワークフローは「Unsaved Workflow」となっていますので、左上のメニューから「名前を付けて保存」(その上は上書き保存)することができます。

自動保存先は同じ「ComfyUI\user\default\workflows」フォルダです。ワークフローは使っているうちにどんどん増えてしまうので、workflowフォルダ内に「お気に入り」「動画」「i2i」などとフォルダ分けして管理すると便利です。


完成したワークフローを改造してみるときは、いったん「複製」してからいじるとよいでしょう。失敗したときに間違って上書きされてしまうと、あとで困ることになります。




QwenImageEdit2511を導入しよう

この記事では、ゼロからワークフローを組むことは基本的にしないので、既存のワークフローを読み込んでちょこっといじるやり方を見ていきましょう。


ワークフローは基本的に「json」という拡張子で配布されています。jsonファイルを「ComfyUI\user\default\workflows」に保存することで、右側のメニューの「ワークフロー」欄から呼び出すことができます。他に、生成画像やワークフロー共有用のpng画像をドラッグすることでも読み込むことができます。


こちらが「ワークフロー」欄を開いたところです。各ワークフローをマウスオーバーすると、右側にしおりのマークが出ます。ここをクリックすると、最上部に「ブックマーク」として常時表示されるようになるので、頻繁に使うものは登録しておきましょう。

右上にワークフロー一覧の更新ボタンがありますが、ComfyUI起動中にworkflowsフォルダ内に追加したjsonはうまく読み込めないことがあります。そういうときはF5キーなどでComfyUIを再読み込みするとうまくいきます。


・QwenImageEdit2511用のワークフロー(配布)

今回はこちらのワークフローをダウンロードしてみましょう。これは、おそらくここを読んでいる方がComfyUIで最初にやってみたいことの一つであろう、中国Alibabaの最新モデル「QwenImageEdit2511」を使った画像編集ワークフローです。


このワークフローでは、画像を最大3枚まで読み込むことができ、NanoBananaのような自然言語指示で入力画像を編集することができます。こちらは、picture1のキャラにpicture2のメイド服を着せるよう指示した例です。(picture3はバイパスしています)


さきほどのzipファイルをダウンロードし、解凍すると出てくるjsonファイルを「ComfyUI\user\default\workflows」に保存します。ComfyUIをいったん読み込み直したら、左側のメニューの「ワークフロー」から読み込んでみてください。


こちらが起動画面ですが、初めて起動した場合は普通に開けず、「モデルが見つかりません」とか「ミッシングノードが見つかった」などとエラーが出るはずです。


これはあなたが何かミスしたのではなく、正常な状態です。ワークフローの配布者が各ローダーにそのモデルを読み込ませた状態で配布しているので、ComfyUIからすると「ご主人に読み込むように言われてるモデルが君の環境にはないから、このままだと僕何もできないよ!」と訴えている状態。別に怒っているわけではないのですね。

正しい手順で進めていても頻繁に遭遇することになるこうしたエラーメッセージが、ComfyUIをとっつきにくくしている原因の一つであろうと思います。初めてだと「何か間違えたっぽい」とか「怒られた」と感じてしまうのですが、足りないモデルやノードを教えて道案内してくれているだけなので、気にせず進めていきましょう。


<必要モデルのダウンロード>

このワークフローを利用するためには、こちらの三つのローダーで読み込む「モデル本体・CLIP・高速化LoRA」と…


こちらのVAEが必要です。それぞれ以下の説明を読んで、リンク先からそれぞれのVRAM環境に合ったモデルをDLしてください。


ワークフローを開いた際にこのようなメッセージが出た場合は、こちらのダウンロードボタンから直接DLすることもできます。下図ならData\Models\lorasフォルダに保存しましょう。(DLしたファイル名は基本的に変更しないこと!)




①メインモデル

ご使用のグラフィックボードがVRAM16GB~の場合は、こちらからQwenImageEdit2511のbf16版(高性能・重量型)か、fp8版(やや高性能・やや重量型)を選ぶことができます。保存先は「ComfyUI\models\diffusion_models」。初めての場合はfp8版がおすすめです。


該当するのはこちらのふたつ。「2509」は一つ前のモデルなので、間違えないようにしましょう。


グラボのVRAM容量が12GB以下の場合は、軽量化されたこちらの「GGUF」版が選択肢になります。


リンク先にあるこれらはどれもQIE2511のGGUF版ですが、それぞれ重さと性能が少し違います。「qwen-image-edit-2511-Q〇...」となっている〇部分の数字が小さいほど軽量になる代わりに、精度が落ちます。

VRAM容量が12GBの場合はミディアムサイズの「Q3_K_M.gguf」、16GBならラージサイズの「Q3_K_L.gguf」や「Q4_K_M.gguf」あたりが良いかなと思いますが、まずは試してみて自分の環境にちょうどよいモデルを選択してください。(fp8と遜色なく動かせるGGUF版モデルもありますが、Qwen系では、GGUF版=「一応動く体験版」くらいの扱いで、精度がかなり劣る印象です)


②テキストエンコーダ

ユーザーのテキスト指示をQwenモデルが理解できる形にしてくれるAI翻訳機。SDXLと違い、Qwen系の場合は別に用意して読み込む必要があります。下記リンクから「qwen_2.5_vl_7b_fp8_scaled.safetensors」をDLしてください。保存先は「ComfyUI\models\text_encoders」。

③高速化LoRA

QwenImageEditなどで生成する際は20ステップ以上回すことが推奨されていますが、それだと非常に時間が掛かるので、4~8ステップでも同様の生成物が得られる高速化(lightning)LoRAを使うのがメジャーです。下記リンクから「Qwen-Image-Edit-2511-Lightning-4steps-V1.0-bf16.safetensors」を、「ComfyUI\models\loras」へ保存します。

<使用時の注意>高速化LoRA適用時は、4stepsと書かれたLoRAなら4ステップで生成するのが基本。ですがその際、スケールは「1」にするのを忘れないようにしてください。高いスケール値で生成すると、出力画像が焼き付いたように変色します。


④VAE

生成の最終工程を担当するモジュール。潜在空間で計算されたlatentを人間が見える画像に戻してくれる大事なモデルです。下記リンクから「qwen_image_vae.safetensors」をDLします。保存先は「ComfyUI\models\vae」。


<必要カスタムノードのインストール>

次に、ワークフローに含まれるミッシングノード(未導入のカスタムノード)をインストールします。先ほど説明した要領で、ComfyUI Managerを使ってDLしてください。

ComfyUI-Managerを開いて「Install Missing Custom Nodes」をクリック▶検知されたパックを全て「Install」▶ComfyUIを再起動、の流れでOKのはずです。


全て済んだら、ComfyUIを再起動して、さきほどのワークフローを開きます。エラーが出ずにこの画面が開けたら、このワークフローを使える状態が整ったということです。

基本的に、ウェブ上で配布されているワークフローを導入する際は、このように使用するモデルやテキストエンコーダ、VAE、高速化LoRAなどを正しく用意し、それらを動かすのに必要なカスタムノードが足りなければ補完する、という手続きが必要になります。


個人が配布するものや複雑なワークフローほどこの作業が大変になりますので、まずはComfyUI上の「テンプレート」から、おすすめされているシンプルなワークフローで試してみるのがよいでしょう。どうしても動かないワークフローには固執せず、他の使いやすいワークフローがないか広く探してみるのも有効です。




QwenImageEdit2511で画像編集してみよう

まずは、集めたメインモデルやテキストエンコーダ、高速化LoRA、VAEを各ノードで読み込みます。ファイル名や保存先のフォルダがあっていれば、それぞれの「unet name」「lora name」などと書かれた欄をクリックすると、該当フォルダにある各モデルが選択肢として表示されるはずです。(出てこない場合はComfyUIを再読込しましょう)


VRAM容量が足りずGGUF版を使う場合、通常の「拡散モデルを読み込む」ノードでは読み込めないため、すぐ下の専用ノード「Unet Loader(GGUF)」を使います。下図の通りに接続しなおしましょう。


こうなっていればOKです。

(※このワークフローでは複数LoRAを使えるよう、LoRAローダーが一つバイパスされています。もしアングル変更LoRAなどを追加して使いたい場合は、こちらのノードをONにして読み込んでください)


画像生成サイズはこちらのノードで選択できます。最初の方で説明した、面積をメガピクセルで指定するスタイルです。デフォルトは2メガピクセル(ヨコタテを掛け合わせたら約200万pixelになるサイズ)ですが、もっと大きくしたい場合はメガピクセルの項目の数字を適宜調整してください。ただし、大きすぎると生成時間が増えたり、画像が破綻したりする恐れがあります。


<生成テスト>

QIE2511はNanoBananaほど高性能ではないので、できるだけ入力画像は少ないほうがよい結果が出ます。ここではこちらの画像1枚から背景を削除できるか試します。(下の二つのノードは使わないのでCtrl+Bでバイパスします)


Kサンプラーはこのような感じ。4stepsの高速化LoRAを使うので、必ずCFGスケールは1にしましょう。ステップ数は4~8が推奨です。サンプラーとスケジューラはお好みで。txt2imgなので、ノイズ除去強度は1。


右上のテキストプロンプト欄で、「背景を消して、白背景にしてください」と指示しました。


<GGUF版テスト>

まずは上のワークフロー左上を見ていただくと分かる通り、GGUF版(Q4_K_M)でテストしました。こちらが入力画像と生成結果のGIF比較です。

下半身に注目してみると分かりやすいですが、軽量なGGUF版なので、全体にいささか変容があることが分かります。胸を盛るな!


<bf16版テスト>

こちらはワークフロー左上を組み替えて、最重量のbf16版で生成したものです。GGUF版と比較すると、かなり正確になっているのが分かります。

ただし、入力画像とのピクセルのズレ(内部的なアスペクト比変更による丸まり)は生じており、ぴったりと重なりませんね。これは現時点では解決できていない問題のようです。


生成時間はそれぞれ、GGUF版が約68秒、bf16版が約192秒。ただし、モデルロード時間が含まれるので、一度ロードしたら次からはもう少し早くなります。



Qwen系モデルでできるようになったこと

QwenImageEdit2511を始め、このところQwen系モデルは進歩が著しいです。別モデルである「QwenImageLayered」を使うと、いまやった白背景化ではなく、前景と背景の分離(透過png化)も可能になりつつあります。


他にもあれこれ試していますので、個別記事をご覧ください。個人的には今後も通常のtxt2img生成はForge Classicで続けるつもりですが、Qwen系と動画系に関してはComfyUIを起動する場面が増えるだろうと感じています。


さて、ここまででLoRAを使ったtxt2img生成の基本はできるようになりましたが、まだ皆さんのComfyUI世界にはimg2imgもHires.fixもXYZ plotもADetailerもWildcardもありませんし、生成完了時に音を鳴らすことひとつできていませんね。正直、これら「いつもの生成環境」をそっくりComfyUIにお引っ越しするのは現実的ではないと考えています。その時間があったら、いつものwebUIを起動し直したほうが早いからです。


よってここでは、ComfyUIでもよく使うHires.fixとimg2imgとControlnetインペイント(Noobai Inpaint)の三つについて、ワークフローの仕組みを簡単に紹介することにします。


Hires.fixをComfyUIでやるには?

Hires.fixは「モデルを使用して画像を拡大」ノードに、拡大したい画像のローダーと、「アップスケーラー(拡大モデル)」のローダーを繋げるところからスタートします。正直、そのあとは通常のtxt2img生成とあまり変わらないので、さほど難しくないでしょう。


こちらがワークフロー全体画面。つくりが分かりやすいように、かなりスペースを広く取って表示しています。

なんでForgeでは適当に数字を選ぶだけでできる機能を苦労して組み上げないといけないのか…となりますが、いったんこのワークフローを保存してしまえば、これを画像生成フローのしっぽのところにコピペするだけで、どんなワークフローでも最後にHires.fixを掛けられる…というのがComfyUIの強みなわけです。逆に言えば、そこにあまり便利さを感じない場合、ComfyUIの恩恵はなかなか得にくいかもしれません。


中身はこのような感じ。VAEを読み込む欄がないのは、最近のSDXLモデルにはもうVAEが焼き込まれているからです。そのまま、「チェックポイントを読み込む」とKサンプラーのvaeコネクタを繋げて問題ありません。

PPとNPは自分で打ち込むスタイルになっていますが、もしこの前にtxt2imgのワークフローがくっつく(画像を読み込むノードからではなく、別のワークフローからimg出力を持ってくる)場合は、そちらのPP・NPノードと繋げてしまえば、Forge系のHires.fixと同じように生成時のプロンプトを流用することもできます。


ぎゅっとまとめるとこのようになります。この状態で配布しますので、適宜使ってみてください。一番左の「画像を読み込む」ノードを削除して、代わりに別の画像生成ワークフローの最後の部分(VAEデコーダーのimg出力)をくっつければ、その画像をHires.fixアップスケールする仕組みです。


Hires.fixができるようになったら、入力画像の顔や手のみを抽出してアップスケールするADetailerのようなワークフローもぜひ欲しいところですね。こちらの記事でmetaの画像検出モデル「SAM3」を使って似たようなことができるワークフローを配布しているので、こちらと併せて使ってみてください。


img2imgをComfyUIでやるには?

txt2imageのやり方はさきほど説明した通り、このようなワークフローで生成できるのでした。では、これをimg2imgに変更するにはどうしたらよいでしょうか。

txt2imgは、「空の潜在画像」ノードでからっぽのキャンバスを与えて、そこに潜在空間でお絵描きをしてもらい、VAEで画像形式に戻す、という仕組みでした。よって、img2imgの場合は「空の潜在画像」ではなく、画像を読み込んで与えてしまえばよいわけですね。ただし、Kサンプラーには「img」コネクタではなく「潜在画像(latent)」コネクタしかないので、入力画像を潜在画像に変換してから渡してあげないといけません。


最後にVAEを通して画像に戻すときは「VAEデコード」というノードを使っているので、画像から潜在画像にするときは「VAEエンコード」という逆の仕組みのノードを使えばOKです。つまり、このようになればよいのですね。

例によって、VAEはSDXLに焼き込まれているので、そのまま「チェックポイントを読み込む」ノードから放り込んでいるところがポイントです。ノイズ除去強度「0.5」で生成すると、無表情の画像を「1girl,smile」に無事img2imgすることができました。


この考え方が分かれば、txt2img用に作られているワークフローの一部を画像のローダーとVAEエンコーダーに取り替えるだけで、img2img用に換装できます。




CNインペイントをComfyUIでやるには?

ではもう一歩進んで、img2imgではなく、マスク範囲を自分で指定した「インペイント」をComfyUIでやるにはどうしたらいいでしょうか。


SDXLに慣れた方なら、img2imgタブの「インペイント」欄で普通にインペイントしても、かなり低劣な結果になってしまうことをよくご存じのことと思います。SDXLモデルだけでは、マスク外との繋がりをうまく推論できないためです。

NanoBananaなどの画像編集ソフトではなく、あくまでSDXLで破綻なくインペイントを行うのであれば、現環境ではControlnetの「NoobAI Inpaint」モデルを使ったインペイントが最も品質がよいと感じています。(詳しくは下記記事参照)


そこで、Forgeと同様にComfyUIでもCNインペイントができるワークフローを組みました。ただ、1メガピクセルサイズでインペイントしただけだとどうしても低劣さが残ってしまいますし、2メガピクセルサイズでやると崩壊するので、Forgeでやるのと同様に、「1MPでインペイント▶2MP以上にHires.fix」という合わせ技ワークフローになっています。


こちらがワークフロー全体です。大きく分けて、左側がCNインペイントをするワークフロー。右側が、その生成画像をHires.fixするワークフローです。

こちらもワークフローを配布します。開くといつものようにミッシングノードが検出されるので、適宜「Install Missing Custom Nodes」で追加してください。



このワークフローでは、普段のSDXLモデルやアップスケーラー、VAEのほかに、「NoobAI Inpainting ControlNet」を使用します。下記Civitaiからライセンスを確認の上、「Models\Controlnet」フォルダに保存してください。SDXLモデルは「Models\checkpoint」、アップスケーラーは「Models\upscaler」、VAEは「Models\vae」にそれぞれ保存しておきます。



<ワークフローの使い方>

Load imageノードには、実はインペイントに使えるマスク機能が最初から備わっています。インペイントしたい画像を読み込ませたら、右クリックして「Open in MaskEditor | ImageCanvas」を選ぶだけです。



このようなインペイント画面が開くので、画面右側からブラシの形状や太さ(Thickness)、濃さ(Opacity)、硬さ(Hardness)などを調整して塗りつぶします。マスクモードを基本的にONにした状態で、ブラシと消しゴム、塗りつぶし機能を使ってマスク範囲を描くことができます。マスクモードをオフにすると、右側の色でお絵描きするペイントモードになるので注意。


Step sizeは最大にするとカクカクに、最小にするとヌルヌルになります。デフォルトだと薄墨のようなぼけ足のあるブラシなので、CNインペイントで使う場合は濃さと硬さをMAXにしてください。マスクのふちをぼかしたい場合は硬さをゆるめますが、CNインペイントでは経験上あまり良い結果にならないことが多かったです。


ポイントは、変更したい部分だけでなく、変更したあとにその絵が通る部分も含めて塗りつぶすことです。例えば、下に手を下ろしている画像を腕組みさせたいなら、胸の前も大きめに塗りつぶしておかないと、そこを腕が通ることができません。インペイントのコツは大き目に囲うことですが、マスク範囲は大胆に入れ替わるので、元の衣装の色やかたちが最低限分かる程度に残しておかないと、別デザインの「white T-shirt」にされてしまいがちです。

今回はポーズと表情を変えたいので、このように塗りつぶしました。塗りおえたら左上から「保存」します。


マスクができたら、あとは適宜使用するモデルを各ローダーのノードから読み込んでください。「Controlnetモデルを読み込む」でNoobAI Inpainting ControlNetを、CheckpointとVAEのローダーで普段使っているSDXLとVAEを読み込みます。画像生成にLoRAを使用する場合は「LoRA Loader Stack」ノードから適宜読み込み、プロンプトとネガティブプロンプトを入力してください。


KSampler (pipe)ノードで、ステップやスケール、サンプラーなどインペイント生成時の設定を決めたら、生成開始します。まずマスクした画像のすぐ下に入力画像がプレビューされ、画面右側にインペイント結果が表示されます。


左が入力画像で、右がインペイント結果です。下ろしていた手を腕組みさせ、表情も変更することができました。


ただ、こうしたマスク内外の不自然なつながりや、1MPサイズ故の低劣さが気になりますね。


これを補うため、ワークフロー右側で引き続いてHires.fix処理が行われます。「拡大モデルを読み込む」からお気に入りのアップスケーラーを選び、「画像を総ピクセルにスケール」で何メガピクセルサイズにアップスケールするかを選びます。(入力されてくるインペイント画像は1MPサイズです)

既に全体像ができているアップスケールなので、ステップ数は10~20程度と控えめでOK。プロンプトは、インペイント時のポジティブ・ネガティブプロンプトがそのまま流用されます。インペイント時と別のプロンプトでアップスケールしたい場合は、「Kサンプラー」のポジティブとネガティブに「CLIPテキストエンコード(プロンプト)」ノードを二つ、代わりに入力すればOKです。


最終的にはこのように、中央でいったんインペイントされた1MPサイズの画像が、全体にアップスケールされてOutputフォルダに保存されます。(※マスク内外の不自然なつながりが埋まりますが、背景の変容は避けられません)


左がさきほどのインペイント結果で、右がアップスケール結果です。キャラクター自体の低劣さやマスク内外のつながりが向上しました。

ただ、よく見ると右下の靴が謎の物体に変容してしまっていたり、床やドア、天井のシーリングのデザインや質感も別のものになるなど、新たな問題も生じています。SDXLを画像全体の編集・image2imageに使うのは既に技術的には古い試みなので、そうした部分はNanoBananaProやQwenに任せつつ、SDXLはキャラクターデザインや画風維持、顔立ちの補修などに使うのがよいかなと個人的には思っています。


SDXLとQwenImageEdit2511を併用して背景やキャラクターの一貫性を維持する方法については、こちらの記事で掘り下げています。




動画生成のやり方

ComfyUIがForge系よりも得意なジャンルに、動画生成があります。動画生成のやり方は大きく分けて、課金してSeedance2.0やVeoといった有名企業の最新モデルを使わせていただくか、オープンソースの動画生成モデルをダウンロードしてローカルで動かすかの2択です。


こちらは中国ByteDanceが開発した最新動画モデル「Seedance2.0」。ご覧の通り音声同時生成ができ、非常にハイレベルな動画生成ができます。

入力画像を開始フレームとして指定するほか、最終フレーム画像も指定可能ですが、エロは不可な上、かなりお高めな課金が必要です。(※Seedance2.0はComfyUI以外にもHiggsfieldやRunway、Freepikなどで生成可能。値段はピンキリです)


ローカル向けとしては中国Alibabaの「Wan2.2」が有名で、誰でも簡単に環境構築できる導入ツール「EasyWan22」が25年夏に流行しました。軽量なGGUF版ならメインメモリ32GB以上、かつ最低VRAM8GBから動作してくれます。こちらはEasyWan22を使ってAIイラストを動かし、無料の動画編集ソフトで仕上げた作品です。


Wan2.2以降も2.5、2.6とアップデートが続いていますが、それらはオープンソースではなく有償のAPI向けモデルとして提供されたこともあり、ローカル向けとしては今もWan2.2の人気は衰えていないようです。何より、ローカル完結モデルではR-18動画の生成(R-18画像を動かす)ができるのが最大の魅力でしょう。


Wan2.2の生成については、普段のComfyUI環境に自分で導入するよりもEasyWan22で単独の環境を一括導入してしまった方が取り回しがしやすい(カスタムノード同士のconflictも最小限で済む)ので、こちらの記事群を参考に試してみるのが良いと思います。全4回の連載で、Wan2.2を使ったimg2video(静止画から動画化)を基本に、静止画から過去方向を推論したり、ループ動画を作ったり、NSFWLoRAを適用してR-18動画を作ったり…といったやり方を解説しています。





有償のSeedance2.0で動画生成してみよう

Wan2.2を使うならEasyWan22がおすすめなのですが、ComfyUI上では、他にもさまざまなモデルを使った動画生成用のテンプレートが用意されています。ここでは、現在ほぼ最高水準の動画生成ができる「Seedance2.0」を使った生成方法を紹介します。


と言っても、画面左の「テンプレート」メニューを選んで「Seedance2.0」を検索するだけです。下図のように、①最初と最後(もしくは片方だけ)のフレームを自分で指定して動画化するワークフロー、②キャラや背景など複数の素材画像を参照させて動画化する参照ワークフロー、③テキストだけで理想の動画を生成するtext2videoワークフローが用意されています。


こちらは上の図でいうと一つ目のフレーム指定ワークフロー。Ctrl+Bでこのようにバイパスすれば、最初のフレームだけを画像で指定することができます。プロンプトも日本語で大丈夫。API料金は黄色のノードの右上に書かれている通り、7秒の動画を1回生成するのに最大319.4credits消費します。必要クレジットは秒数で変化し、最大の15秒だと最大684.3creditとなります。

resolutionが動画のサイズで、ratioが画面比率。durationで何秒動画かを選びます。課金額は生成秒数で異なりますが、1ドル=159円(2026年4月現在)とすると、7秒動画を1回生成するのにざっくり約240円となる計算。かなり高額なので、あまり気軽に使うわけにはいきませんね。


なお、これはあくまでAPI利用、つまりネット経由でよそのモデルを使わせてもらっているだけですので、モデルそのものが自分のPC内にあるローカル生成とは異なることを覚えておきましょう。例えば、このように「服を脱いで裸になります」的な指示をすると、「性的情報を含むテキストが入力された」としてエラーが起こります。


このように、Seedance2.0など最新モデルを使った動画生成は非常に高品質なのですが、費用がかさむのとプロンプト検閲があるのがネック。やはりわざわざローカルで環境構築しているのですから、なんでもありなオープンモデルを使いたいところです。


Wan2.2で1枚の静止画を動画化する(i2v)

というわけで、次はEasyWan22を使わず、普通にComfyUI上でWan2.2を使う方法も触れておきます。Seedance2.0と同じように「テンプレート」欄を開き、モデル別の欄で「Wan2.2」をこのように選択すると、関連するワークフローが表示されます。「画像から動画へ(新)」を導入してみましょう。


今度はAPI利用ではないので、このように重量級モデル6点を全部揃えなさいと言われます。面倒ですが、一つ一つModelsフォルダ内の指定の保存先にダウンロードしましょう。ファイル名は例によって変更不可です。


こちらがワークフローを開いたところ。一見、ごくシンプルな内容に見えますね。これは「サブグラフ化」という処理をしていて、実際はこの真ん中のノードを右クリックで「展開」することができます。


こちらが展開後。(※ノードの位置を整えてからスクショしています)

Wan2.2はLowとHighの二つのモデルを同時に動かす仕組み。それぞれに4stepの高速LoRAをかませて動画生成するため、Kサンプラーが二つあるのが特徴ですが、基本的に静止画生成でも見掛けたノードが多いですね。


静止画生成にないのはこちらのノード。image2video用のノードで、プロンプトや開始画像、VAEを渡すと、決まった処理を加えてlatentを出力するノードです。幅と高さが動画のヨコタテの大きさで、長さはフレーム数です。81フレームでだいたい5秒の動画になります。長辺640pxか720pxくらいが目安。これでフリーズするようならEasyWan22でGGUF版に挑戦することをおすすめします。


さっそく画像を動かしてみましょう。Google翻訳などで英語プロンプトを作り、入力します。ネガティブプロンプトはデフォルトで中国語プロンプトが入っているので、とりあえずそのまま。

PP:An anime-style girl holds glowing cables in both hands, trying to connect them. She looks excited. When she connects the cables, a yellow electric shock runs through her body, and she comically gets electrocuted.(アニメスタイルの女の子が光るコードを両手に持ち、つなげようとしている。女の子はわくわくしている様子。コードをつなげると、全身に黄色い電撃が走って、コミカルに感電してしまう)


80秒ほどで動画が生成できました。81フレーム指定で計5秒の動画ができています。


こちらが生成結果。サイズが小さめなので画質は粗いですが、ともかくimage2videoは成功しましたね。

こちらは単純なimage2videoのワークフローですが、他にも2枚の静止画の間を推論するワークフローや、NSFW向けのワークフローなど、さまざまなものがCivitaiなどで共有されています。静止画生成よりもノード構成が複雑になりやすいですし、プロンプト指示も特殊なので、AIイラストとは別ジャンルと思って挑みましょう。



2枚の静止画を動画化する(Start/End frame指定)

さきほどは1枚の静止画から「未来方向に」推論した動画化でしたが、静止画2枚の「間」を推論して動画を作るワークフローもあります。テンプレートにあるこちらが、スタート・エンドフレーム(動画の最初と最後のフレーム)を指定できるワークフローです。


こちらがワークフローを開いたところ。タテに二つ大きなワークフローが並んでいて、下は全て無効化(バイパス)されていますが、上が20ステップかける通常版、下が4ステップで生成する高速化LoRA適用版です。


高速化LoRA版を使いたいので、使わない方のフレームは無効化しておきましょう。それぞれ青いフレームをクリックして三点リーダボタンから「グループノードをバイパス」します。


使用したのはこちらの2枚です。1枚目の画像をNanoBananaProで感電している様子に変換してもらいました。Upload start imageとUpload end imageにそれぞれ読み込ませたところです。


画面サイズはデフォルトが「640x640px」となっており、ちょうど中央が正方形に切り抜かれそうなのでこれをそのまま使ってみます。フレーム数は81=5秒ほどです。


こちらがプロンプトそのままで生成した動画。5秒では感電し始めたところで終わってしまいましたが、2枚の静止画の中間を推論して動画化することができました。


もちろん、これは動画生成の初歩の初歩にすぎず、まともな動画作品にするにはリファイナーなどさまざまなノードをたこ足のように増やしたり、生成したクリップを動画編集ソフトで仕上げたりする必要があります。R-18画像を動画にしたいなら、「それ」がどんな動きをするものかを学習させたLoRAを適用しないと、Wan2.2もどう動かせばいいのか分かりません。


Wan2.2を使ったローカル動画生成については、こちらのEasyWan22の記事(連載全4回)にまとめてありますので、併せてご参照ください。


・【第1回】カンタン環境構築から操作の基本まで ・【第2回】実践編(高品質化/ループ化/画風の一貫性保持) ・【第3回】NSFW編(R-18プロンプト・LoRA・モザイク)

・【第4回】「EasyWan22」でイラストを動画に◆H絵の「過去」と「未来」を推論



困ったらLLMに頼んでみよう

以上のように、ComfyUIではとかく何をやるにもウェブ上からワークフローを拾ってくるか、自分で組むかしないと作業が前に進まないのですが、そのためには最低限、さまざまなカスタムノードの役割やつなぎ方をある程度覚える必要があります。目の前の課題をクリアするためにはどのように組んだら良いか発想できるようになるには、Forgeなどと違ってかなりの熟練が必要。ComfyUIの学習で創作の作業時間が削られては意味がないので、ワークフロー構築で困ったときはLLMの力を借りるのがよいでしょう。



ChatGPTやGeminiなどにうまく動かないjsonファイルをそのまま投げて、いまやりたいこと、うまくできないことをストレートに聞いてみると、それなりに助けてくれます。「このワークフローにこういう機能を加えたいが、何のノードをどこにつなげばいい?」と尋ねると、** このような感じ **で教えてくれます。


<ノードIDとNodesMapを活用しよう>

「設定」の項目でも少し触れましたが、ふだん日本語モードでComfyUIを利用していると、ノード名も日本語訳されてしまうので、LLMが教えてくれたノードが画面上のどのノードのことなのか分からないことがよくあります(例:InpaintModelConditioning→インペイントモデル条件付け)。そういうときのために、左下の設定ボタンから「LiteGraph(リトグラフ)▶ノードIDバッジモード」でノードID(通し番号)をオンにしておくと、LLMの言う「KSampler(183)」がどのノードのことなのかすぐ分かって便利です。


左メニューの「NodesMap」を開くと、ワークフロー内にあるノードとそのIDを一覧することができます。見つけたいノードをダブルクリックするとメイン画面で強調表示してくれるので、併せて活用しましょう。


<"移植手術"もLLMにやってもらおう>

ComfyUIを使っていてよくあるのが、「ワークフローAのうしろにワークフローBをくっつけたい」とか「このワークフローの途中にこのカスタムノードを追加(もしくは換装)したい」といったニーズです。そういうときは、各ノードのコネクタとにらめっこして「移植手術」をするわけですが、正直やってられないのでLLMに任せましょう。


コツはこのように、とりあえず追加したいワークフローやノードだけを既存のワークフロー上に「コピペ」しただけの未配線jsonファイルを作り、LLMに丸投げする方法です。いっさい配線がなされていなくても、やりたいことをざっくり伝えれば、ちゃんと配線をつなぎ合わせてくれます。


こちらがLLM(ChatGPT5.2)がつなぎ合わせたjsonを読み込んだところ。上段が既存のtxt2imgワークフローで、下段の青色部分がDetailerワークフロー(画像の一部をアップスケールするフロー)です。与えたjsonでは上下が完全に断絶していたのですが、きちんとワイヤーがつながれています。


動かしてみると、ちゃんと通常のtxt2imgに引き続いて、キャラクターの顔面部分が自動検出され、Detailer作業が行われました。こうした作業は人間よりLLMのほうが大得意なので、遠慮せず頼りまくりましょう。



便利機能あれこれ「ComfyUI-Custom-Scripts」

こちらの「ComfyUI-Custom-Scripts」というカスタムノードを導入すると、さまざまな便利機能が使えるようになります。導入後、画面左下の「設定」に「pysssss」という項目が追加されるので、そこから設定のオンオフなどを操作できます。以下、主な便利機能を紹介します。(収録ノードには緑色のヘビのマークがついているのですぐ分かります)


・タグの予測変換「Autocomplete」

Forgeでもあったタグのオートコンプリート機能。プロンプト入力欄にタグを途中まで入力すると、常にdanbooruタグに準拠した予測変換が表示されます。(マウスクリックかキー上下で選択、ENTERで決定)

設定の「Auto-insert comma」は自動で単語の後にカンマを入れるか、「Replace _ with space」は「_」を半角スペースに自動変換するか。「Max suggestions」で表示上限を変えられます。予測変換はデフォルトではdanbooruタグリストに準拠していますが、「Manage Custom words」からカスタムすることも可能です。



・生成画像一覧「Image Feed」

画面下に生成画像履歴を一覧表示する機能。画面右上のこちらのボタンから表示できる。

Image Feed LocationとImage Feed Max ImagesでFeed位置と表示する枚数を選べる。Feedの大きさと、1行に何枚表示するかは画面左下から選択する。

ちなみに、重複検出機能である「Image Feed Deduplication」をenabledにしておくと、間違えて全く同じ設定の生成をしようとしたときに無駄な生成を回避してくれるので便利。


・生成完了で音を鳴らせる「Play Sound」

Forgeではルートフォルダにmp3を保存すると生成完了時に音を鳴らすことができますが、ComfyUIにはデフォルトでそうした機能がありません。が、こちらのカスタムノードを使うと、生成完了時などに「ComfyUI/custom_nodes/ComfyUI-Custom-Scripts/web/js/assets」内に置いたmp3を鳴らすことができます。ワークフローの最後、画像保存ノードに流れ込むコネクタあたりに併設しておくとよいでしょう。

ノード上でボリュームと鳴らすmp3を決められます。「always」モードだと入力時に音が鳴り、「on empty queue: queue」モードなら生成の順番待ち(キュー)がなくなった時に音がなります。

・「ワークフローを画像で保存」

ワークフローは通常jsonファイルで保存・共有できますが、png画像として共有することができるようになります。ワークフロー上の何もないところを右クリックして、「Workflow▶Export▶png」などと選ぶだけです。SNSなどExif情報が削除されてしまうプラットフォームでは共有できないので注意。

・ノードの整列・整理機能「Auto Arrange Graph」

Ctrlキーを押しながら複数のノードを選択肢、右クリックすると、「選択項目を揃える」という項目が表示され、上下左右のラインにそろえて整列できるようになります。「ノードを分布」でタテもしくはヨコ方向に等距離に並べることもできます。ノードに色を付けることもできるので、重要ノードを赤色にするなどして活用しましょう。


・プロンプト記憶・呼び出し機能「Load Text」

よく使うプロンプトの記憶・呼び出し機能を持つカスタムノード。やや使いにくいが、reForgeなどのA1111系webUIで生成ボタンのすぐ下にあるプルダウンメニューに近いことができる。ノードの「root_dir」欄で「Comfy\input」「Comfy\output」「Comfy\temp」のどれかを選ぶと、該当フォルダにあるテキストファイルを「file」欄で選べるので、選んだテキストファイルに書かれているプロンプトをプロンプト欄に流し込める仕組み。

例えば「masterpiece,best quality,amazing quality, 」とだけ書いたテキストファイル「クォリティタグ.txt」を「input」フォルダに入れておく。するとこのように、Load Textノードで読み込むことができ、プロンプト欄にテキストとして流し込める。間に「Show Text」ノードを挟んでおくと、なんのタグが流し込まれたか目視できる。

ただ、このノード構成だと選んだテキストそのもので生成されるので、A1111のように自分で書いたプロンプトの後ろに自動追記するには「String Function」というカスタムノードを使って下図のようにするとできる。が、記憶させているプロンプト群の中からいくつも選んで組み合わせるにはノード数をどんどん増やさないといけないので、A1111系のような便利さはない。




(以上、代表的なもののみ紹介しました)



覚えておきたいComfyテクニック

ここまでで紹介しきれなかったテクニックの中で、できるだけ早めに覚えておかないと損する基本操作やTIPSをできるだけぎゅっとまとめて掲載します。


<何をおいてもCtrl+Z>

画面を移動しようとして、間違えてノードを動かしてしまったり、ワークフローを壊してしまったら、落ち着いて「Ctrl+Z」キーで戻しましょう。戻りすぎたら「Ctrl+Y」でやり直し。意外と知らない人がいます。


<展開・折りたたみ・リサイズ>

他のユーザーのワークフローを使っていると、このような小さなノードを見掛けることがあります。これは本来の姿ではなく、「折りたたみ」状態になっているノードです。


左側のグレーの●をクリックすると、このように「展開」することができます。もう一度クリックすると折りたたまれます。折りたたみ状態だとコネクタが露出しないので、新しくワイヤーをつなげることができません。

このノードにどんなコネクタがつながっていて、どんな設定を司っているのかも展開してみないと分かりにくいので、仕組みが分からないノードがあったらとりあえず展開してみるとよいでしょう。

展開と折りたたみは「●」ボタンのほか、「右クリック▶折りたたむ/展開」でも可能です。展開と折りたたみ以外に「リサイズ」という操作もあり、こちらは余分に広げてしまった部分をノード本来の大きさに縮めることができます。


<ノードのピン留め>

右クリックして「ピン」を選択すると、そのノードをドラッグしても動かなくなります。ウェブから入手したワークフローに動かせないノードがあったら、大抵これ。

「ピンを解除」で再び動かせるようになります。

画面をスクロールしようとしてノードを動かしてしまうことはよくあるので、自分用に完成したワークフローはピン留めしてしまってもよいかもしれません。


<フレーム化>

「インペイント」や「アップスケール」など、ひとかたまりで一つの動作をするノード群がある場合は、Ctrlキーを押しながらドラッグして一括選択し、上に表示されるこちらのメニューから「ノードをフレーム化」してみましょう。「井」のようなボタンがそれです。


すると、選択した全体がこのように色つきのフレームで囲まれ、上部の色が濃い部分をドラッグすると全体をひとかたまりで動かせるようになります。フレームには名前をつけられるほか、右クリックして所属するノード全体を一気にバイパスしたりすることもできて便利です。


<サブグラフ化>

複数のノードをひとつにまとめて、すっきりした見た目にできる機能です。Wan2.2の項目で、サブグラフ化されていたワークフローを展開したアレですね。Ctrlキーを押しながらドラッグかクリックでまとめたい複数のノードを選んだら、上に表示されるバーメニューから「選択範囲をサブグラフに変換」するだけです。


すると、このように複数のワークフローがなんとなく一つにまとまり、テキスト入力できるプロンプト部分やSeed値だけが残りました。見た目上スッキリして使いやすくも思えるのですが、じゃあLoRAとかアップスケールとか、ステップやCFGはどうやって変更したらいいの…?となりますね。


サブグラフ化すると、多くのノードは内蔵化されてしまって直接操作不能になります。サブグラフ右上のボタンから「サブグラフ編集」モードを起動するか、いったん展開する必要があります。

基本的に普段いじらないノードをスッキリまとめるための機能なので、ワークフローの中核部分をなんでもかんでもサブグラフ化すると逆に使いにくくなることも覚えておきましょう。



<※この項目は随時追加していきます>




なんとなく分かった気になるワード辞典

ComfyUIでよく登場する意味不明な単語を簡単にまとめました。分からなくなったらとりあえずここを見て思い出しましょう。正確性よりもわかりやすさを優先していますので、あくまで「イメージ」です。


ノード

ComfyUIのワークフローを構成する最小単位。一つ一つに「画像を読み込む」「モデルを読む」「プロンプトを入れる」などの機能があり、ワイヤーをつなげられる入力や出力の端子(コネクタ)が付いている。

ワークフロー

ノード同士をワイヤーでつないだ工程表。Forgeの裏側で勝手に行われている処理を、ユーザーが見える形で組み立てられるのがComfyUIのメリットであり、面倒臭い点でもある。

コネクタ

ワイヤーを接続できるノードの丸い端子。モデルや画像など、種類ごとに分かりやすく色分けされている。ポートなどと呼ばれることもある。

ローダー

CheckpointやLoRA、VAEなど、各種モデルを読み込むノード。VRAMが厳しい時は、読み込んだモデルをアンロード(メモリから荷降ろし)すると軽くなることがある。そのかわり、次また読み込むときに時間が掛かる。

エンコード/デコード

データを別の形式に変換する処理がエンコード、復号する(戻す)処理がデコード。「エンコーダ/デコーダ」はそれらの作業をする担当、くらいに覚えておきましょう。海外のコンセントに日本から持っていった家電が刺さらないとき、変換器をかませるようなイメージ。

Checkpoint

学習済みモデル、つまりAIのモデル本体。昔は「.ckpt」という拡張子で共有されていたが、今はほとんど.safetensorsになった。VAEやCLIP(テキストエンコーダ)が内蔵されているcheckpointもある。

UNet(ユーネット)

Diffusionモデルが画像生成をする際の核になるモジュール。潜在空間(latent=目に見ない不思議空間)で人間に見えないお絵描きをする妖精さん。翻訳者のVAEがいないと、我々は彼の書いた絵が見えない。エンコーダからデコーダへつなぐモジュールがUの字のかたちになっているのでこう名付けられたらしい。

VAE(ブイエーイー)

潜在空間(Latent)と、普通の画像(pngなど)を変換する翻訳者。「VAEデコード」はLatentを人間が見える画像にする作業で、「VAEエンコード」は逆に、入力画像をいったんLatentに翻訳してUnetに渡してくれる作業。ForgeなどのwebUIでは存在感が少ないが、ComfyUIでは「最後に画像として出す」ために必ず関わる。

テキストエンコーダ

ユーザーが書いたテキスト(プロンプト)を、モデル本体が理解できる「ベクトル」に変換する担当。単語と画像のペアが載っている巨大な辞書のようなイメージで、これもAIの学習済みモデルの一種。この人の覚えている言葉によってプロンプトがdanbooru式か自然言語式かが決まり、頭のよさによって指示通りの画像が作れるかが決まる。NanoBananaは世界知を持つGeminiが担当しているので、あんなに空気が読めるらしい。

CLIP

SD系で使われているテキストエンコーダの一種。SDXLモデルの中にはCLIPが入っているので単体で生成できるが、Qwen系などはモデル本体とは別に用意して、専用のローダーで読み込む必要がある。

Latent(潜在)

人間には直接見えない、圧縮された不思議空間。SDXLなどのdiffusion系モデルは基本的にこの潜在空間で計算して、ユーザーが入力したプロンプトという問題を解き、VAEに画像として翻訳(デコード)してもらう仕組み。

API

ローカル実行ではなく、外部サービスに「この画像を生成して」とお願いして結果を返してもらう仕組み。ComfyUIではNanoBananaProやSeedream系など、クラウドの有償モデルをAPI経由で叩くノードがある。要するにお金を払ってよそのGPUを使う仕組みなので、厳密にはローカル生成ではない。

bf16/fp8

モデル本体の精度と重さに関わるデータ形式。bf16は高精度で重く、fp8は少し精度が落ちるがやや軽量なバージョンなのね、と理解しておけばOK。Qwen系など数十GBあるモデルでは、どれを選ぶかが非常に重要。「まず動かしたい」ならfp8が選ばれがち。

GGUF

「量子化された重みを格納する形式」のことと言われてもよく分からないが、要するに精度を犠牲にした軽量快速版。VRAMが心許なかったり、より早く動作させたい場合は、bf16やfp8版ではなく、GGUF版が選ばれる。拡張子.ggufで配布され、Q4とかK_Mとかが後ろにつく。数字やSMLが大きい方が重くてつよい。GGUF版のモデルはGGUF専用のカスタムノードでないと読み込めないので注意。




終わりに

というわけで、「ComfyUIが理解らない!知識ナシで使い倒せる完全入門ガイド」でした。どうでしょうか……ComfyUIが理解できたでしょうか!?「この記事を最後まで書き終えたら少しは理解できるかな」と思って書き始めてみましたが、私は引き続き全く分からないまま筆を置くことになりそうです。


なぜここでノードがこう分岐するのか、なぜこれがここに流れ込むのか、なぜこのノードが必要なのか…。ぼんやりとしか分からないまま、「LLMが言う通りに繋げたら何かうまくいったな…」という程度の解像度で、私はComfyUIを触っています。この記事はComfyUIを全く理解していない非エンジニアの文系人間がこれまでの知見をまとめたものですので、間違いや勘違い、または今後理解が多少進んで訂正される部分が多々あるかもしれませんが、同じ属性の方にとって比較的分かりやすい内容になっていたら嬉しいです。


ComfyUIは創作ツールとしては「時間泥棒」で、ワークフローをいじっていると自分は創作をしたいのか、それともワイヤーパズルを解きたいのか分からなくなってしまいますが、あれこれ苦心した末に問題が解決し、思った通りの画像が生成できるとハレルヤ気分を味わえる不思議なUIです。画像生成自体はおまけと思って、そのパズル感そのものを楽しむくらいの気持ちで触るのがコツかな…というのが、この記事を書いて得られた知見でした。


この記事を通じて、ComfyUIが分からない仲間が一人でも救われることを願っています。スタジオ真榊でした。


<追伸:この記事が何かの役に立ちましたら、ぜひこちらの投稿のリポストや紹介をお願いします…>



Attachments (190)

AioAZq7pd6V2HEmJztMQkGIL.png

AioAZq7pd6V2HEmJztMQkGIL.png

LrVDKt3x1hN7YAJ6KjH00ITj.png

LrVDKt3x1hN7YAJ6KjH00ITj.png

8BVjriuBBHMeunbpBEEZtVxZ.jpeg

8BVjriuBBHMeunbpBEEZtVxZ.jpeg

NRnQVWhE7jpkh99BJ6Mifshf.jpeg

NRnQVWhE7jpkh99BJ6Mifshf.jpeg

Ap1bVkEObZAs9Q07dOShdZ9c.jpeg

Ap1bVkEObZAs9Q07dOShdZ9c.jpeg

5ovIS5R0Zf8UgQMcWT9wQ9Ak.png

5ovIS5R0Zf8UgQMcWT9wQ9Ak.png

UK83qM4PwD9Zh6talHib3xdB.jpeg

UK83qM4PwD9Zh6talHib3xdB.jpeg

IGxuwHp1IDQAuaBkE8D8IsLz.png

IGxuwHp1IDQAuaBkE8D8IsLz.png

ebAAHJqpVL3alEgm1RPXrzAH.png

ebAAHJqpVL3alEgm1RPXrzAH.png

gMblx5HFBQBoYwxOV5beBQt5.png

gMblx5HFBQBoYwxOV5beBQt5.png

QR6MHECeBdP2uID5oMTjKrDu.png

QR6MHECeBdP2uID5oMTjKrDu.png

rUrodTgjFE08MiMge3EAbz8W.png

rUrodTgjFE08MiMge3EAbz8W.png

wG8IbDAaN194qJmwkvQYQZ7s.png

wG8IbDAaN194qJmwkvQYQZ7s.png

7nFqfYIS0buPIRLv5O4i7uJh.png

7nFqfYIS0buPIRLv5O4i7uJh.png

O2MsBEFiww41FVQnNf3s1YP4.png

O2MsBEFiww41FVQnNf3s1YP4.png

0VwT4iFwfiZxRyxR81c6O52M.jpeg

0VwT4iFwfiZxRyxR81c6O52M.jpeg

WfHyWrHUz49lDI5ObCEbG0zS.png

WfHyWrHUz49lDI5ObCEbG0zS.png

UPNmscVyhEiVOgONLFaDB5rW.png

UPNmscVyhEiVOgONLFaDB5rW.png

GZAQDJsxr2jz4wDrof0WTIAp.png

GZAQDJsxr2jz4wDrof0WTIAp.png

s8TvmCk0vjornRu9jgTbTSvB.png

s8TvmCk0vjornRu9jgTbTSvB.png

9YowaBAefKWgSRWLhoqJZ3zJ.png

9YowaBAefKWgSRWLhoqJZ3zJ.png

RZRgziL7UC3N7wjEduRwPSML.png

RZRgziL7UC3N7wjEduRwPSML.png

WjBM0IDi2awfRP5bjKShoLQj.jpeg

WjBM0IDi2awfRP5bjKShoLQj.jpeg

MDWoFHr1mxg38iiInKW087hN.png

MDWoFHr1mxg38iiInKW087hN.png

Zw6OoDjeOaXjcgQz4IOKAl05.jpeg

Zw6OoDjeOaXjcgQz4IOKAl05.jpeg

Srih4d3XVyOZdBUdvHHNOMKu.png

Srih4d3XVyOZdBUdvHHNOMKu.png

I8RbsJYucEe4rpccP9d9VYjg.png

I8RbsJYucEe4rpccP9d9VYjg.png

CrDbO7bH8CkPBmC0VDYySf4p.png

CrDbO7bH8CkPBmC0VDYySf4p.png

eiHiBd8tjTzCVh9leLEOfZKc.png

eiHiBd8tjTzCVh9leLEOfZKc.png

jGYPyarHtFCTmMRqG9uo8Cym.png

jGYPyarHtFCTmMRqG9uo8Cym.png

2oCPq48gbYHpdj6fQGLoOTkD.png

2oCPq48gbYHpdj6fQGLoOTkD.png

jKv1BvhfiYWjGWZZEGf4Gxta.png

jKv1BvhfiYWjGWZZEGf4Gxta.png

o1wJG30hVW8o2gWmfoa1m5PC.png

o1wJG30hVW8o2gWmfoa1m5PC.png

EaOiXVXdqsng9w5cbBPVOYMe.png

EaOiXVXdqsng9w5cbBPVOYMe.png

XPqpuZyLuREGDnaOegU6iA0l.png

XPqpuZyLuREGDnaOegU6iA0l.png

bWwVz6UpMq7vxpvFb4F9Ir3H.png

bWwVz6UpMq7vxpvFb4F9Ir3H.png

H9frvh6byvuRqObQDphppPkE.png

H9frvh6byvuRqObQDphppPkE.png

ji9w4AjaJiCLbVrgls1fYcT5.png

ji9w4AjaJiCLbVrgls1fYcT5.png

YYlKZf0dLSOHVQ7S1qOZ9ESO.png

YYlKZf0dLSOHVQ7S1qOZ9ESO.png

ehtp6BcY3eC3AzDgsqKUvq0e.png

ehtp6BcY3eC3AzDgsqKUvq0e.png

7ZYn5skgU9LUgd5RtwGNZ8Sr.png

7ZYn5skgU9LUgd5RtwGNZ8Sr.png

lavqLmQcgND8gXkhbBptZSgQ.png

lavqLmQcgND8gXkhbBptZSgQ.png

w1vpg5FGSwE6F5OTTolBmdgw.png

w1vpg5FGSwE6F5OTTolBmdgw.png

MNXrxWy56EIdzGgazhexLkYc.png

MNXrxWy56EIdzGgazhexLkYc.png

Qn4sU3qCw42XLbD1hl98iXm8.png

Qn4sU3qCw42XLbD1hl98iXm8.png

S6pSvbfd2P6dFRuCcwaV16lN.png

S6pSvbfd2P6dFRuCcwaV16lN.png

AusKT5vMwXcV3FRvrC3PJicU.png

AusKT5vMwXcV3FRvrC3PJicU.png

mIX8Z8LLAk0lgROwUANGXAoB.png

mIX8Z8LLAk0lgROwUANGXAoB.png

vsO4VJQdry4dpksKBAU9W16j.png

vsO4VJQdry4dpksKBAU9W16j.png

CEE7ViPX1JUAojFMf2fP5o0F.jpeg

CEE7ViPX1JUAojFMf2fP5o0F.jpeg

WWmgF4cHeqdjamWDB9IcgIlW.jpeg

WWmgF4cHeqdjamWDB9IcgIlW.jpeg

KjVpOcSk918MPsY2ZYSXx9oK.png

KjVpOcSk918MPsY2ZYSXx9oK.png

CYS3R1Z4Jpc8mDrmihWNtXsY.png

CYS3R1Z4Jpc8mDrmihWNtXsY.png

bxhTZKPgzPNz11mdyfSJYRun.png

bxhTZKPgzPNz11mdyfSJYRun.png

3pT9AHx3T2xhYXsDZ3ZqV7mL.png

3pT9AHx3T2xhYXsDZ3ZqV7mL.png

rXjYruoox2vo3bDbQFrUlQZ0.png

rXjYruoox2vo3bDbQFrUlQZ0.png

ZXNJjneymVxN8BIi0aHtiHBM.png

ZXNJjneymVxN8BIi0aHtiHBM.png

omyWfwXW8fRr4VXfjnwEL8eh.png

omyWfwXW8fRr4VXfjnwEL8eh.png

AQdsKZjuN7J3EFzbihxKpZJP.png

AQdsKZjuN7J3EFzbihxKpZJP.png

Y4oUBISMc7EsGjRlTuC9mrXJ.jpeg

Y4oUBISMc7EsGjRlTuC9mrXJ.jpeg

OoKmWy5rt2GsGJPdqiqd6R7A.png

OoKmWy5rt2GsGJPdqiqd6R7A.png

Hs6ocn09nlBqfZm7Ue6BcCFO.png

Hs6ocn09nlBqfZm7Ue6BcCFO.png

w6uziMDxvrXO9us9MRzllVQw.png

w6uziMDxvrXO9us9MRzllVQw.png

WSdCMtJi949sE5GPHcPTv1jn.png

WSdCMtJi949sE5GPHcPTv1jn.png

NAQJhNww9kApthimeAGaubvi.png

NAQJhNww9kApthimeAGaubvi.png

YUXivzmPxcDu6O6H011FMX6j.png

YUXivzmPxcDu6O6H011FMX6j.png

avC1plvpyeFRy2rq8YlGZCa0.png

avC1plvpyeFRy2rq8YlGZCa0.png

1j5csOQYCQGXrbfBE84BV6Bk.png

1j5csOQYCQGXrbfBE84BV6Bk.png

My4dB9dN6bE9KpwH2Zd5qJBZ.png

My4dB9dN6bE9KpwH2Zd5qJBZ.png

ShFPbKUBhYtFX8g0FNCApgKK.png

ShFPbKUBhYtFX8g0FNCApgKK.png

ZMDfXbnAWoISALWRDL4vKnkC.png

ZMDfXbnAWoISALWRDL4vKnkC.png

f2XH33QxwptAJH9G1PsXK7oU.png

f2XH33QxwptAJH9G1PsXK7oU.png

eAkN5KeEaMj0SLRKjO8hfeBF.png

eAkN5KeEaMj0SLRKjO8hfeBF.png

10jePd8mt0MBEvxSCMfTjKlS.png

10jePd8mt0MBEvxSCMfTjKlS.png

PSuU9ExHtLzsI8jCceP2kmYf.png

PSuU9ExHtLzsI8jCceP2kmYf.png

WzsAczgyh9HCzVigMnLTHpVI.png

WzsAczgyh9HCzVigMnLTHpVI.png

AHcpkZDmV8IPphROcz3FLRuW.png

AHcpkZDmV8IPphROcz3FLRuW.png

bItKw7rm2iVEu8TVr8YBHoKX.png

bItKw7rm2iVEu8TVr8YBHoKX.png

KwiUMZXjnjRI78LbkHxDPXj9.png

KwiUMZXjnjRI78LbkHxDPXj9.png

d9KkXyV7NSZOBfhoQLWwpqTS.png

d9KkXyV7NSZOBfhoQLWwpqTS.png

nggiICDPu5Qai2fTl1Y6Bjt4.png

nggiICDPu5Qai2fTl1Y6Bjt4.png

JeSXxsxspcPRNCxbs5pWzFBU.png

JeSXxsxspcPRNCxbs5pWzFBU.png

JN7bQJFGKQkNTbgfAhevHl26.png

JN7bQJFGKQkNTbgfAhevHl26.png

wVzsXXveaesNSnoazDwznEw5.png

wVzsXXveaesNSnoazDwznEw5.png

sJ4wt9NJwXJsFe858rArbnIv.png

sJ4wt9NJwXJsFe858rArbnIv.png

79cYFCC2WsEx4hDGJIWexb4T.png

79cYFCC2WsEx4hDGJIWexb4T.png

CsvGPAdahe4eF6fty2aLCLYa.png

CsvGPAdahe4eF6fty2aLCLYa.png

kHbgUtYnxJonIfriAmjJ6nBD.png

kHbgUtYnxJonIfriAmjJ6nBD.png

5B9UEWX7wfVczsuT36XWUowX.png

5B9UEWX7wfVczsuT36XWUowX.png

lH3ku1s160d4TrzOTv4j7vgH.png

lH3ku1s160d4TrzOTv4j7vgH.png

tlh1B03WsMxFvTvEBnCpgvUe.png

tlh1B03WsMxFvTvEBnCpgvUe.png

IRbQqVhGXQM2fPN3Z2eXey1W.png

IRbQqVhGXQM2fPN3Z2eXey1W.png

1m4krkKyNmPR4Dzp5RWUTlPU.png

1m4krkKyNmPR4Dzp5RWUTlPU.png

xHjG4QyOu1vvf5HiuxJ8UyZ2.png

xHjG4QyOu1vvf5HiuxJ8UyZ2.png

Fj2vngG6cZZSBXfrzHsbqp3Q.png

Fj2vngG6cZZSBXfrzHsbqp3Q.png

Pa6BeFJRrFbha645kdUN1FED.png

Pa6BeFJRrFbha645kdUN1FED.png

1DvKEnYvyNVnOMMycpbc0g21.png

1DvKEnYvyNVnOMMycpbc0g21.png

X9bC3QQFLFE9RTb4lcqInnOz.png

X9bC3QQFLFE9RTb4lcqInnOz.png

H0YjjfBCCwKZMLFA0s1433nt.png

H0YjjfBCCwKZMLFA0s1433nt.png

7GFB2GpYYuIDdQZLNvIFX3h4.png

7GFB2GpYYuIDdQZLNvIFX3h4.png

Al0YgsIz3DZxitASZ9HbD24g.png

Al0YgsIz3DZxitASZ9HbD24g.png

WHZYHJA13qxl2NtZmnh59OgP.jpeg

WHZYHJA13qxl2NtZmnh59OgP.jpeg

ksU6cJONAPXmgWCho5wAVOkh.png

ksU6cJONAPXmgWCho5wAVOkh.png

QwenImageEdit2511_image2image.zip

QwenImageEdit2511_image2image.zip

MVw89ieWceil6SZE695wYQve.png

MVw89ieWceil6SZE695wYQve.png

YCz5qkWJwAqaADCmRZlnBVNY.png

YCz5qkWJwAqaADCmRZlnBVNY.png

svB1f14T3dj9pgtmBYA43NPm.png

svB1f14T3dj9pgtmBYA43NPm.png

OZBliHU8H6MmMQqE4Z5Mn3Yp.png

OZBliHU8H6MmMQqE4Z5Mn3Yp.png

K0BCdqEM1JU8ol74rSF40eTZ.png

K0BCdqEM1JU8ol74rSF40eTZ.png

Aybuo6bk2HywiBNlv53NCTnI.png

Aybuo6bk2HywiBNlv53NCTnI.png

9E2U7eeBOWyB7Lpgn1fBBw2R.png

9E2U7eeBOWyB7Lpgn1fBBw2R.png

7tjOARxYxgL11G0O0UWGxmri.png

7tjOARxYxgL11G0O0UWGxmri.png

FtohfgITb5qfrYzsShI18CuG.png

FtohfgITb5qfrYzsShI18CuG.png

4uhfyy1a1Z4gasOBZ9mNEcVk.png

4uhfyy1a1Z4gasOBZ9mNEcVk.png

PtSE3LtGhAMVdXA7u34BLtak.jpeg

PtSE3LtGhAMVdXA7u34BLtak.jpeg

I7tGmX5sUX2KYlJKcoPJ8YhP.jpeg

I7tGmX5sUX2KYlJKcoPJ8YhP.jpeg

dxANo7ICiEYCwneOg4zVFUK3.png

dxANo7ICiEYCwneOg4zVFUK3.png

5yjJVsNmmBUeiU20PYQjIqKx.png

5yjJVsNmmBUeiU20PYQjIqKx.png

a7QqwOgfnBANiVQEofG1untp.png

a7QqwOgfnBANiVQEofG1untp.png

I8M37TlvFSQ31AlDeJh6hFWb.png

I8M37TlvFSQ31AlDeJh6hFWb.png

Ql1U5DcayQ6eyjENpNNGXaR8.png

Ql1U5DcayQ6eyjENpNNGXaR8.png

xntEUrh7Jl2Syne2T4ZbJH0u.gif

xntEUrh7Jl2Syne2T4ZbJH0u.gif

U5r7GyFl5hEL7HcCX4xFUrwY.gif

U5r7GyFl5hEL7HcCX4xFUrwY.gif

VshA7UrvnVwWhbeGyGCGxVIW.png

VshA7UrvnVwWhbeGyGCGxVIW.png

Wx5K1xC2mkQdZ607lAW1iDMy.jpeg

Wx5K1xC2mkQdZ607lAW1iDMy.jpeg

1fp1NA0KBYl8vWJhH7mDyqwr.png

1fp1NA0KBYl8vWJhH7mDyqwr.png

seVCvDVVjsNb7IGJD3FzEAJa.jpeg

seVCvDVVjsNb7IGJD3FzEAJa.jpeg

7LYu66lzkZKF5cz2hWYU7lyK.png

7LYu66lzkZKF5cz2hWYU7lyK.png

nVqSodgwwWeX1bubBKsWAsiq.jpeg

nVqSodgwwWeX1bubBKsWAsiq.jpeg

qfnsAITnXjFwHRSY9CSIYiFQ.png

qfnsAITnXjFwHRSY9CSIYiFQ.png

Hires.fixワークフロー.zip

Hires.fixワークフロー.zip

kAbdnaLhGBIaE42HgTn7bjNS.png

kAbdnaLhGBIaE42HgTn7bjNS.png

0llOIVFV2oCSztJ3XzH6pJT1.png

0llOIVFV2oCSztJ3XzH6pJT1.png

l95KNUe3OCDMe2PbYddrdwvx.jpeg

l95KNUe3OCDMe2PbYddrdwvx.jpeg

a9rd7xKzdyGeYIVtPRKyM5LA.png

a9rd7xKzdyGeYIVtPRKyM5LA.png

ControlNet Inpaint and hiresfix.zip

ControlNet Inpaint and hiresfix.zip

Ma2EeLuXJUt5pRjfAm6JvitW.jpeg

Ma2EeLuXJUt5pRjfAm6JvitW.jpeg

Bq6IJRqN3iHiIVMYbWDQpJiw.jpeg

Bq6IJRqN3iHiIVMYbWDQpJiw.jpeg

JcwmG28ehoc5G9DPieeCGeaB.png

JcwmG28ehoc5G9DPieeCGeaB.png

rbEHmOHBf07EThwuiQCPrSNO.png

rbEHmOHBf07EThwuiQCPrSNO.png

EH1RWcZ6cPKg6SYFB7AFIMTx.jpeg

EH1RWcZ6cPKg6SYFB7AFIMTx.jpeg

28pEO5VW6MwAyOUqcxhj3qVG.png

28pEO5VW6MwAyOUqcxhj3qVG.png

hV4YNXvZwtKunnvSfPHd536L.png

hV4YNXvZwtKunnvSfPHd536L.png

dVKOVq1qibBFKBDz2AWb29Cz.png

dVKOVq1qibBFKBDz2AWb29Cz.png

JxJHny1ZP30iJfbaNpKb4keJ.jpeg

JxJHny1ZP30iJfbaNpKb4keJ.jpeg

R136DmgAgtugkfCo8BEdKc1e.jpeg

R136DmgAgtugkfCo8BEdKc1e.jpeg

9tjA6bTNMVcRM4gmQ5ee7aUe.png

9tjA6bTNMVcRM4gmQ5ee7aUe.png

qBsUAk4221UvTmljjXNhXMFF.png

qBsUAk4221UvTmljjXNhXMFF.png

jzs0RfUia2xoJZvSTA3phBkK.png

jzs0RfUia2xoJZvSTA3phBkK.png

r4EYOsWVywiI8hdU0ZJl0JqD.png

r4EYOsWVywiI8hdU0ZJl0JqD.png

rSfS3NcFFji77pI0RdIxVxWN.png

rSfS3NcFFji77pI0RdIxVxWN.png

Y3z4QH5qovtVjUiOYjQEmzE7.png

Y3z4QH5qovtVjUiOYjQEmzE7.png

Mr4Qt7lquPoLtwxQWLU1Nzi9.png

Mr4Qt7lquPoLtwxQWLU1Nzi9.png

da3M8qpv015EbNHnH3j0FcOs.png

da3M8qpv015EbNHnH3j0FcOs.png

ATvvv1olen3gtoTMHMgwloZo.png

ATvvv1olen3gtoTMHMgwloZo.png

Wan2.2_image_to_video_00002_.mp4

Wan2.2_image_to_video_00002_.mp4

rgWdqXrhFuSYv97vOh5KHBW6.png

rgWdqXrhFuSYv97vOh5KHBW6.png

at6V8ujTNBkhLvbFjzFo1h22.png

at6V8ujTNBkhLvbFjzFo1h22.png

70OEt5kLL5axfPa9FLp3AJUn.png

70OEt5kLL5axfPa9FLp3AJUn.png

pBMiAX1i93uokJvXkmMrcycL.png

pBMiAX1i93uokJvXkmMrcycL.png

03gHAP39qt8afA02TDtl36g1.png

03gHAP39qt8afA02TDtl36g1.png

ComfyUI_00002_.mp4

ComfyUI_00002_.mp4

PCjrZZpTiUmnq91QnP5rrOQm.jpeg

PCjrZZpTiUmnq91QnP5rrOQm.jpeg

CjjBosYxrkQlRcTW9Zuz7zD0.jpeg

CjjBosYxrkQlRcTW9Zuz7zD0.jpeg

c0WBOr3Cu1S2hyQiekEvLg4d.png

c0WBOr3Cu1S2hyQiekEvLg4d.png

8TRhscnZ0eE1XUhShmjyPR7Z.png

8TRhscnZ0eE1XUhShmjyPR7Z.png

tY2ppfrxnx28fNvgLbJYwgCU.png

tY2ppfrxnx28fNvgLbJYwgCU.png

OFLglfXBaEdgxjsjt52tt4e5.png

OFLglfXBaEdgxjsjt52tt4e5.png

1QcU24tePSYZCcZH3JQwwTv1.png

1QcU24tePSYZCcZH3JQwwTv1.png

rlw7p3m3MQhB4D0EQ5TKT1TU.jpeg

rlw7p3m3MQhB4D0EQ5TKT1TU.jpeg

nObhIBqsYC82tDhU0zhDKsvJ.png

nObhIBqsYC82tDhU0zhDKsvJ.png

SPnhosdrPmYoAAGbdYArlJtl.png

SPnhosdrPmYoAAGbdYArlJtl.png

WTGvUurNYcOWuo1lTAoxTidx.png

WTGvUurNYcOWuo1lTAoxTidx.png

4zn4BB5cFbU0z2MN3Q10Iyzn.png

4zn4BB5cFbU0z2MN3Q10Iyzn.png

yjo8FeNDsUqVqfPPxAF88oUf.png

yjo8FeNDsUqVqfPPxAF88oUf.png

IkgGdNzKxXYKPRHVc6mUYq9W.png

IkgGdNzKxXYKPRHVc6mUYq9W.png

lTd9Wvyt2er9oeHH3kLUfEQn.png

lTd9Wvyt2er9oeHH3kLUfEQn.png

qaesTQxUoGRZZKfr20IVw2qp.jpeg

qaesTQxUoGRZZKfr20IVw2qp.jpeg

x2bE6yNk3ijK4YoqrsdLQ2sP.png

x2bE6yNk3ijK4YoqrsdLQ2sP.png

1WtQLneHjz9gUpSIvgUsNOP9.png

1WtQLneHjz9gUpSIvgUsNOP9.png

lrNOOSJLLvDyzM2lgekSVVhx.png

lrNOOSJLLvDyzM2lgekSVVhx.png

EU0jaJtuhaAD4WZd4E4v4gfz.png

EU0jaJtuhaAD4WZd4E4v4gfz.png

5LPnIyyVJP8fHVMu7vkragTn.png

5LPnIyyVJP8fHVMu7vkragTn.png

4mXYm7cmI8mOruklKHGpSQXn.png

4mXYm7cmI8mOruklKHGpSQXn.png

BUS06HnEYtC4UuHNDYdlndir.png

BUS06HnEYtC4UuHNDYdlndir.png

Mj1n2q7KyLr9hPfZs3Yvequa.jpeg

Mj1n2q7KyLr9hPfZs3Yvequa.jpeg

wJf161T5lsYdX4Ec2v3HQz0d.png

wJf161T5lsYdX4Ec2v3HQz0d.png

RuM6JiDQ9dDidRP5Ajc1B7l8.png

RuM6JiDQ9dDidRP5Ajc1B7l8.png

0NqaD7qhAkbO9v9Koi535cH6.jpeg

0NqaD7qhAkbO9v9Koi535cH6.jpeg

ZlCMndPAqR8bgKpfufuT67Je.jpeg

ZlCMndPAqR8bgKpfufuT67Je.jpeg