- ソフト・サービス
- ComfyUI
- ComfyUIの画像生成
- ComfyUIのVAEデコードとエンコード|VAEの差し替え・タイル処理
ComfyUI
ComfyUIのVAEデコードとエンコード|VAEの差し替え・タイル処理

ComfyUIのVAEデコードとエンコード|VAEの差し替え・タイル処理
*2026年9月29日に確認した内容です。ComfyUI の公式ドキュメント(「テキストから画像へ」・組み込みのノードの「VAEDecode」「VAEEncode」「VAELoader」「VAEDecodeTiled」「VAEEncodeTiled」)によります。画面と画像は、編集部の PC(Windows 11・NVIDIA GeForce RTX 4060)のポータブル版(Python ごと1つのフォルダに入った Windows 向けの ComfyUI。ComfyUI v0.37.0・フロントエンド 1.52.7・画面の表示は日本語)で作りました。
VAE(変分オートエンコーダ)は、画像と潜在(画像を縮めた数の並び)を行き来させるモデルです。ComfyUI では、VAE Decode で潜在を画像に戻し、VAE Encode で画像を潜在にします。VAE は、チェックポイントに入っているものを使うほか、Load VAE で別の VAE に差し替えられます。大きい画像は、タイルに分けて処理するノードでメモリを抑えて扱えます。
VAEは潜在と画像を行き来させる
ComfyUI の KSampler は、潜在の上でノイズを取り除いて画像を描きます。公式ドキュメントの手引きでは、VAE Decode のノードが、KSampler が出した潜在の画像をピクセルの画像に変えるとしています。
VAE は、「チェックポイントを読み込む」の「VAE」の出力から取れます。1つのファイルにまとまったチェックポイントには、画像を作るモデル・CLIP・VAE の3つが入っているからです。
VAE DecodeとVAE Encode
| ノード(画面の名前) | 受け取るもの | 出すもの |
|---|---|---|
| VAE Decode(VAEデコード) | サンプル(潜在)・vae | 画像 |
| VAE Encode(VAEエンコード) | ピクセル(画像)・vae | 潜在 |
VAE Decode は、文章から画像を作るワークフローの最後で、KSampler の潜在を画像に戻します。VAE Encode は、元の画像から新しい画像を作る img2img で、読み込んだ画像を潜在にして KSampler に渡します。img2img の組み方は、「ComfyUIのimg2img|Load Image・VAE Encode・デノイズ」の記事で解説しています。
VAE は、モデルの種類(SD1.5・SDXL・Flux など)ごとに違います。公式ドキュメントの「モデルの問題」のページでは、Flux のチェックポイントに SD 用の VAE(taesd など。taesd は小さく速い簡易の VAE)を使うと、VAE Decode のところでテンソル(数の並び)の形のエラーになる例を挙げています。直し方は、「ComfyUIのモデルのエラー|形式の違い・見つからないモデル」の記事で解説しています。
別のVAEに差し替える
VAE を差し替えるときは、「VAEを読み込む」(Load VAE)のノードを置き、その「VAE」の出力を VAE Decode の「vae」につなぎます。公式ドキュメントによると、Load VAE は ComfyUI/models/vae のフォルダの VAE を読み、taesd や taesdxl のような近似の VAE(小さく速い、簡易の VAE)も読めます。VAE のファイルの置き場所と読み込みの基本は、「ComfyUIのモデルを読み込むノード|Load Checkpoint・Load Diffusion Model・Load CLIP・Load VAE」の記事で解説しています。

編集部は、SD1.5 で作った同じ潜在(シード 42)を、3つの VAE で画像に戻して比べました。1つめは SD1.5 のチェックポイントの VAE、2つめは別のチェックポイント dreamshaper_8 の中の VAE、3つめは taesd です。

3枚とも構図は同じで、色と細部が少しずつ違いました。SD1.5 の VAE の画像との1画素あたりの差の平均は、dreamshaper_8 の VAE が 5.8、taesd が 8.3(0〜255 の中で)でした。別のチェックポイントの VAE を使うときは、「チェックポイントを読み込む」をもう1つ置いてそのチェックポイントを読み、その「VAE」の出力だけを「VAEデコード」の「vae」につなぎます。
大きい画像をタイルに分けて処理する
VAE Decode (Tiled)(画面の名前は「VAEデコード(タイル)」)と VAE Encode (Tiled)(「VAEエンコード(タイル)」)は、画像をタイル(小さな区画)に分けて、1つずつ VAE で処理するノードです。公式ドキュメントでは、大きい画像を、メモリの使用量を抑えながら処理するためのノードとしています。

| 画面の名前 | 初めの値 | 公式ドキュメントの説明 |
|---|---|---|
| タイルサイズ | 512 | 1つのタイルの大きさ(64〜4096) |
| オーバーラップ | 64 | となりのタイルと重ねる量(0〜4096) |
| temporal_size | 64 | 動画の VAE だけで使う。一度に処理するフレームの数 |
| temporal_overlap | 8 | 動画の VAE だけで使う。重ねるフレームの数 |
公式ドキュメントによると、VAE Decode (Tiled) では、タイルサイズがオーバーラップの4倍より小さいと、オーバーラップはタイルサイズの4分の1に縮められます。
VRAM(GPU のメモリ)を減らすほかの方法は、「ComfyUIのVRAMの節約と速さ|起動オプション・タイル・キャッシュ」の記事で解説しています。VAE の考え方は、「潜在空間とVAE|画像を小さく縮めた計算」の記事で解説します。
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。


