こんにちは、martina.です。普段はメタバース・3DCG関連のお仕事をしているAICUコラボクリエイターです!
本記事では、これからComfyUIを触ってみたい超初心者の方に向けて、クラウド上で使える「共有ComfyUI」を無料でお試しして、AI画像を出力するまでの手順を丁寧に解説します。難しい専門用語はできるだけ噛み砕き、ステップ・バイ・ステップで進めていきますのでご安心ください。
実際に手を動かしながら読み進めて、AI画像生成の第一歩を踏み出しましょう!
文末には #ComfyUI検定試験 に向けたクイズも用意しましたので、理解の確認に使ってくださいね!
まずは「共有ComfyUI」について簡単に紹介します。
そもそもComfyUIとは、Stable Diffusionなどの画像生成AIモデルをノードと呼ばれるブロックを繋いで操作できるオープンソースのツールです。高度な画像生成ワークフローを視覚的に組み立てることができ、コード不要で柔軟な画像生成が可能です。
ただし、通常ComfyUIを使うには自分のPCに環境を構築し、大きなAIモデルを扱うための高性能GPUも必要になります。
初心者にとってこれらの準備はハードルが高いですよね ><
共有ComfyUIは、AICU Japan株式会社が提供するクラウド上のComfyUI環境で、インターネット経由で手軽にComfyUIを利用できます。
主なメリットは、
インストール不要&高性能GPU不要:ブラウザからアクセスするだけでOK。自分のPCにソフトをインストールしたり、大きなモデルデータを準備したりする必要がありません。手元のPCやタブレット・スマホからでも利用でき、GPUの性能はクラウド側で賄われます。
すぐに使える:わずらわしい環境構築なしに、ComfyUIの機能をすぐ体験できます。難しい設定を飛ばして「触ってみたい!」をすぐ実現できます。
高速な生成:共有ComfyUIでは高性能なクラウドGPUが割り当てられています。自宅PCでは数十秒〜数分かかる処理も、クラウドならサクサクです!
最新モデルやノードが利用可能:サービス側であらかじめ人気の画像生成モデル(チェックポイント)や追加機能(カスタムノード)がインストールされています。初心者が一からモデルを探して入れる必要がなく、最初から色々試せる環境が整っています。
みんなで使っているので教えあえる: 分からないことがあればコミュニティで聞くことができます。共有ComfyUIの利用者はAICUの有料記事に自由にアクセスできますし、過去記事を学んだチャットボット「Will」がディープな記事を紹介してくれます。流行りのモデルに出会うことも一人で使うよりも早くアクセスできますね。
https://corp.aicu.ai/ja/comfyui-20250328共有ComfyUIを使うには、まず提供サイトでユーザー登録(ログイン)が必要です。
といっても難しい手続きはなく、メールアドレスさえあればすぐに始められます!
①公式サイトにアクセス:ブラウザで共有ComfyUIのサイトにアクセスします。
②メールアドレスでログイン/登録:初めて利用する場合はメールアドレスを入力すると、そのアドレス宛に確認コード(ワンタイムパスワード)が届きます。そのコードをサイト上で入力すればログイン完了です。
③ComfyUIを起動:ログイン後、「サービス」タブから、1番右の「共有ComfyUI」の「無料お試し期間を始める」をクリックします。
続いてお支払い画面が表示されるので、クレジットカード情報の入力、プランポリシーへの同意を行い、「無料お試し期間を開始」をクリックしてください。
ログインが完了すると、ブラウザ上にComfyUIの操作画面が現れます。
初めて見る画面は少し独特かもしれませんが、各部分の役割を押さえれば怖くありません。
ここではComfyUIの画面構成と主要な要素(ノード、キャンバス、出力エリアなど)を説明します。
キャンバス(ノードエディタ):画面の大部分を占める黒地の領域が「キャンバス」です。ここにノードと呼ばれるブロックを配置し、線で繋いでいくことで画像生成の処理手順(ワークフロー)を組み立てます。キャンバス上はドラッグで移動・右クリックで操作メニュー表示ができます。
ノード(部品):キャンバス上に配置する四角いブロックがノードです。ノードは各種処理を表しており、例えば「モデルを読み込むノード」や「テキストをAIが理解できる形にエンコードするノード」、「画像を生成するノード」などがあります。ノードには左側に入力端子(小さな丸印)、右側に出力端子が描かれており、これらを線で繋ぐことでデータの流れを表現します。線(リンク)を繋ぐには、あるノードの出力端子からドラッグして他のノードの入力端子までドロップします(ゴムひもを伸ばす感覚です)。正しく繋がると線で2つのノードが接続されます。
プロパティ(ノード設定):各ノードはそれぞれ設定項目(プロパティ)を持っています。ノード上部に表示される名前やボタン、テキストボックスが設定UIになっている場合もありますし、ノードをダブルクリックしたり右クリックメニューからProperties(プロパティ)を選ぶことで詳細設定パネルが開く場合もあります。例えば「テキストを入力するノード」であればプロンプト(生成したい画像の説明文)を入力するテキスト欄がプロパティです。後述する各ノード追加時に、それぞれどんな設定をするか説明します。
以上がComfyUI画面のおおまかな構成です。
最初は空っぽのキャンバスに何をしていいか戸惑うかもしれませんが、次章から実際にノードを置いていくので一緒にやってみましょう!
それではいよいよ、画像生成のワークフローを組んでみます。
ここでは「テキスト(プロンプト)から1枚の画像を生成する」ために必要な最小限のノードを追加し、順番に繋げていきます。
難しく感じるかもしれませんが、ノードは基本的に上流から下流へ繋げていくだけです。一緒にやってみましょう!
今回は以下の6種類のノードを使います(名前は英語ですが順に説明します):
Load Checkpoint(モデル読み込みノード)
CLIP Text Encode (Prompt) ×2(テキストエンコードノード:ポジティブ用とネガティブ用)
KSampler(画像生成サンプラーのコアノード)
Empty Latent Image(空の画像キャンバスを用意するノード)
VAE Decode(潜在画像を実画像に復元するノード)
Preview Image(プレビュー表示ノード)
では、順を追ってキャンバスに配置し接続していきましょう。
まずはAIモデルを読み込みます。Stable Diffusion系の画像生成ではモデル(チェックポイント)を読み込まないと何も始まりません。ComfyUIではLoad Checkpointというノードを使ってモデルデータを読み込みます。
キャンバス上の何もない所でダブルクリックし、メニューの検索バーで「Load Checkpoint」と入力し、画像の赤枠の項目をクリックします。するとキャンバス上に「Load Checkpoint」という名前のノードが追加されます。
追加されたLoad Checkpointノードを確認しましょう。このノードにはモデルを選択するためのUIがあります。ノード内のモデル部分をクリックすると、利用可能なモデルの一覧が表示されます。共有ComfyUIではあらかじめStable Diffusion関連のモデルがいくつか用意されています。ここではお好きなモデルを1つ選択してください。
Load CheckpointノードからはMODEL(モデル本体)、CLIP(テキストエンコーダ)、VAE(画像復元デコーダ)といった複数の出力が提供されます(ノード上にそれぞれのラベルが付いた出力丸があるはずです)。これらを後続ノードに繋いでいくことでモデルの各機能を利用できます。
モデルを読み込んだだけでは何も起こりません。
次に画像の内容を指示するテキスト(プロンプト)を入力するノードを用意しましょう。Stable Diffusionでは「ポジティブプロンプト」と「ネガティブプロンプト」の2種類のテキストが指定できます。ポジティブプロンプトは「出力画像に積極的に反映したい要素」、ネガティブプロンプトは「除外したい要素(出力してほしくない特徴)」です。
ComfyUIではこれらを CLIP Text Encode (Prompt) というノードで実現します。
再びキャンバス上でダブルクリックし、「CLIP Text Encode (Prompt)」と検索して選択します。このノードはテキスト(文字列)をAIが扱いやすいベクトル(数値データ)にエンコードする処理を行います。
今回は2つ追加してください。同じ操作をもう一度行い、合計2つのCLIP Text Encodeノードをキャンバスに配置するか、ノードの上で右クリックをして、Cloneを選択しましょう。
2つのCLIPノードをそれぞれ、先ほどのLoad Checkpointノードに接続します。Load Checkpointノードの右側にある「CLIP」という出力端子からドラッグし、今追加したCLIP Text Encodeノードの左側(入力)のポートにドロップします。2つあるCLIPノードの両方に、Load CheckpointのCLIP出力から線を繋ぎましょう。これでモデルに内蔵されたテキストエンコーダ(CLIP)を使ってプロンプトを処理できるようになります。
次に、2つのCLIPノードを区別します。1つ目のCLIP Text Encodeノードはポジティブプロンプト用、2つ目はネガティブプロンプト用として使います。それぞれのノードに実際の文を入力しましょう。
ポジティブ用のCLIPノードに、例えば「a beautiful landscape with mountains」(美しい山岳風景)など、お好みのプロンプト文を入力してみてください。日本語で入力できるモデルもありますが、基本は英語が無難です。簡単な単語の並びでも大丈夫です。
ネガティブ用のCLIPノードには、「low quality, blurry」など出力画像で避けたい要素を入力します。
今の段階で、Load CheckpointノードからCLIPノード2つへ、それぞれ線が繋がっている状態になっているはずです。またCLIPノードには自分で入力したテキストが設定されています。このテキスト情報(プロンプト情報)が後ほど画像生成AIに渡されます。
続いて、実際に画像(正確には画像の元になるデータ)を生成する処理を担うノードを追加します。Stable Diffusionではサンプリングと呼ばれるプロセスでAIが徐々に画像を描き出します。そのコア部分を受け持つのがKSamplerというノードです。
キャンバス上でダブルクリックし、「KSampler」を検索してノードを追加します。KSamplerノードが現れたら、先ほどまでに置いたノード群と接続しましょう。
KSamplerノードの入力端子を確認します。「model」(モデル本体)、「positive」(ポジティブプロンプト条件)、「negative」(ネガティブプロンプト条件)、「latent_image」(潜在画像)などの入力があります。
まずmodel入力に、Load CheckpointノードのMODEL出力を繋ぎます。Load Checkpointノードから伸びているMODELという端子からドラッグし、KSamplerノードのmodelという入力端子にドロップしてください。これでKSamplerはStable Diffusionモデル本体(UNetなど)にアクセスできます。
次にpositive入力に、ポジティブ用CLIPノードの出力を繋ぎます。同様に、ポジティブCLIPノードの右側出力から線をドラッグし、KSamplerのpositive入力へ。negative入力にもネガティブ用CLIPノードから線を繋ぎます。これでテキストで与えた指示(プロンプト)がKSamplerに渡るようになります。
💡KSamplerノードには各種パラメータ(サンプルステップ数、CFGスケール、シード値など)の設定項目もあります。
今回はデフォルト値で問題ありませんが、興味があればノードのプロパティを確認してみましょう。「Steps」(ステップ数:生成の繰り返し回数)や「Seed」(乱数シード値:画像のランダム性を決める番号)などがあります。
次に、生成する画像の「下地」となるものを用意します。
AIは何もないところからいきなり絵を描くのではなく、まずランダムなノイズ画像(塗り潰しキャンバス)を用意し、そこから徐々に絵を浮かび上がらせていく仕組みになっています。
ComfyUIではこの「最初のノイズキャンバス」をEmpty Latent Imageノードで作ります。
ダブルクリックから「Empty Latent Image」を選択してノードを追加します。
このノードには画像サイズを指定するプロパティがあります。ノードを選択し、Width(幅)とHeight(高さ)を設定しましょう。初期値は512×512の標準的なサイズになっているはずです。今回は特に変更せず512×512のままとします。お好みで変更可能ですが、大きくすると処理時間が伸びます。SDXLなどのXL系のモデルは1024×1024で開始することをお勧めします。
Empty Latent Imageノードの出力を、KSamplerノードのlatent_image入力に繋げます。これでKSamplerは、受け取った空の潜在画像に対して絵を描き始めることになります。
ここまででKSamplerノードは潜在画像(latent image)形式で結果を出力する準備が整いました。
しかし、そのままでは人間が見てもノイズのようなデータです。
そこで、AIが内部で使う潜在表現を人間が見られる実際の画像(ピクセルデータ)に変換する必要があります。
それを行うのがVAE Decodeノードです。
ダブルクリックから「VAE Decode」を選び、ノードを追加します。VAEとはVariational Autoencoderの略で、Stable Diffusionモデルに組み込まれている画像エンコード・デコード用のネットワークです。ここではDecode(復号)を使って潜在→画像に変換します。
接続
samples入力に、KSamplerノードの出力(潜在画像)を繋げます。KSamplerの右側に「LATENT」と書かれた出力端子があるので、そこからVAE Decodeノードのlatent入力へドラッグしてください。これでKSamplerが生成した潜在画像データがVAE Decodeに渡ります。
VAE入力には、Load CheckpointノードのVAE出力を繋ぎます。実はStable DiffusionのモデルデータにはVAEが含まれていることが多く、Load Checkpointノードはそれも読み込んで提供しています。Load Checkpointノードの右側に「VAE」と書かれた出力端子があるので、そこから線を出してVAE DecodeノードのVAE入力に繋いでください。
これで、潜在画像+VAEモデルが揃い、VAE Decodeノードが人間の目に見える画像データを生成できる状態になりました。
最後に、生成された画像を実際に画面に表示して確認するためのノードを繋ぎます。
ダブルクリックから「Preview Image」を選択し、ノードを追加します。
Preview Imageノードの「images」に、VAE Decodeノードの出力を繋ぎます。VAE Decodeの右側に「IMAGE」と書かれた出力端子があるので、そこからPreview Imageノードのimages入力へドラッグしてください。これで最終的な画像データがプレビューノードに渡ります。
Preview Imageノードには特別な設定はありません。
お疲れさまでした!
今キャンバス上には、モデル読み込みからテキストエンコード、サンプリング、VAE復元、プレビューまで一直線につながった一連のノードが並んでいるはずです。
ざっとおさらいすると、「Load Checkpoint」→「CLIPエンコード(positive/negative)」→「KSampler」→「Empty Latent」→「VAE Decode」→「Preview Image」という流れです。
ノードごとの配置は、ずれていても構いませんが、必ず上記の通り全ての接続が繋がっていることを確認してください。
これで画像生成の下準備は整いました!
ワークフローの構築ができたら、いよいよ実行してみましょう。
共有ComfyUIでは、準備が整ったらQueueボタンを押すことで現在のワークフローを実行し、画像生成を開始します。
あとはQueueボタンを押すのみ!
画面下の「Queue」と書かれたボタンをクリックしてください。
すると、現在キャンバス上にある一連のノードが順番に処理を開始します。
ボタンを押すと即座に画像生成がスタートします。共有ComfyUIでは進行状況のログが左側のバーにある「キュー」にて確認できます。
キューを確認すると画像が処理されて完成していく様子が確認できます。
通常数秒〜十数秒で完了します。
💡万が一、数十秒経っても変化がない場合、接続ミスなどが考えられます。エラー表示や最終的なノードワークフローがこれまでの手順とあっているかご確認ください。
処理が完了すると、キャンバス上のPreview Imageノード内でも実際に生成された画像が表示されます!おそらく小さなサムネイルとしてノード内に出るので、確認してみてください。ノードをクリックすると拡大表示されたり、詳細を確認できる場合もあります。
正常に実行できていれば、指定したプロンプトに基づく画像が1枚生成され、プレビューに表示されたはずです。
今回はポジティブプロンプトに「a beautiful landscape with mountains」を入れたので、美しい山の風景画像が得られていることでしょう!
ComfyUIでPreview Imageノードに接続して表示された画像は、一時的にメモリ上に存在しているものです。つまり「画面に見えているだけ」の状態で、まだファイルとして保存されたわけではありません。
したがって、大事な画像はユーザーが保存操作を行う必要があります。
プレビューに表示された画像を右クリックして「Save Image」をクリックしましょう。
これで画像ファイルとして任意の場所にダウンロードされました。
ここまで、共有ComfyUIを使ってテキストから画像を1枚生成する手順を解説しました。
環境登録から始まり、ComfyUIの画面説明、ノードを組んで実行、そして出力画像の保存まで、一連の流れを体験できたと思います。
最初はノードや接続に戸惑うかもしれませんが、実際に動かしてみると「思ったより簡単かも!」と感じられたのではないでしょうか。
最後にここまで作ったノードワークフロー内で何が行われていたのか、簡単に振り返ってみましょう。
Load Checkpoint:選択したStable Diffusionモデル(チェックポイント)を読み込み、そのモデルの各構成を後続ノードに提供しました。
CLIP Text Encode (Prompt):入力したテキスト(プロンプト)をモデル付属のCLIPエンコーダーで数値ベクトルに変換しました。ポジティブ・ネガティブ2つに分け、それぞれの条件を用意しました。
KSampler:読み込んだモデルに対して、ランダムなノイズ画像から徐々に絵を生成する拡散モデルの過程を実行しました。CLIPで得たテキストのベクトル情報(「山の風景を描いて!」という指示)を参照しつつ、Empty Latent Imageで渡された初期ノイズを何ステップかかけて洗練し、画像を描き出しています。
Empty Latent Image:指定サイズの初期画像(ノイズキャンバス)を提供しました。KSamplerはこれを出発点にして画像生成を行いました。シード値が同じなら毎回同じノイズが生成され、再現性が高くなります。一方、シードが違えば別のノイズになるため、出力画像も変化します!これはChatGPT等ではできないテクニックです。
VAE Decode:KSamplerが生成した画像データを、元の画像空間にデコード(復元)しました。人間には判読できなかった潜在表現が、このノードを通すことで普通の画像(ピクセルデータ)に戻ります。
Preview Image:得られた最終画像をキャンバス上に表示しました。
この一連の流れにより、テキストから画像が生成されます。
「プロンプトをAIに理解させて、AIモデルでノイズから画像を描き、最後に人間向けの画像に変換して見せている」と捉えていただければOKです!
初心者のうちは多少つまずくこともありますが、落ち着いて原因を切り分けていけば必ず解決できます。
それでも不明な点があれば、サービス提供元の AICU.jp コミュニティサイトの掲示板で質問してみるのが良いでしょう。
本記事は共有ComfyUI入門の第1歩でした。
a) インストール不要で、ブラウザからアクセスできる。
b) 高性能GPUが不要で、クラウド側のGPU性能を利用できる。
c) 最新の画像生成モデルやカスタムノードが事前にインストールされている。
d) 自分のPCにインストールするため、生成速度が速い。
a) キャンバスは、ノードを配置する画面全体の黒地の領域である。
b) ノードは、キャンバス上で右クリックすることで追加できる。
c) プロパティは、ノード間を繋ぐ線の太さを調整する設定項目である。
d) 線(リンク)は、入力端子から出力端子へドラッグすることで接続できる。
a) Load Checkpoint ノードは、Stable Diffusionモデルを読み込む。
b) CLIP Text Encode (Prompt) ノードは、テキストをAIが扱いやすいベクトルにエンコードする。
c) KSampler ノードは、RGB画像に対してノイズを除去して画像を描き出す。
d) VAE Decode ノードは、潜在画像を実画像に復元する。
a) ワークフローを構築後、保存ボタンを押して画像生成を開始する。
b) 画面下の「Queue」ボタンをクリックして、ワークフローを実行する。
c) 生成された画像は、自動的にPCのデスクトップに保存される。
d) 画像の生成が完了したら、ターミナルから保存コマンドを実行する。
次回以降の記事でも、今回のワークフローを発展させてComfyUIのさまざまな可能性に挑戦してみる予定です。
さらに実践的でワクワクする内容をお届け予定ですので、お楽しみに!
最後までお読みいただきありがとうございました。
共有ComfyUIでのAI画像生成をぜひ楽しんでくださいね✨
またお会いしましょう!
—
この記事の続きはこちらから https://note.com/aicu/n/n8726811ba95b
Originally published at note.com/aicu on Apr 1, 2025.