見出し画像

Windows上のComfyUIでStable Cascadeを試す(推奨VRAM 8GB)

Last update 2-25-2024
※VRAM 6GBでLiteモデルが、8GBでLargeモデルが利用できそうです(少々ギリギリかも)。
※本記事では実際の手順を示していますが、通常の記事よりも説明を省略しています。




▼ 0. 本記事について

0-1. 概要

 現在、Stable Cascadeで生成を行う記事を2つ公開中です(後述)が、ComfyUIで生成する記事を見かけました。ComfyUIは独特な設計のため取っつきが悪いかもしれませんが、実績のあるツールで扱った方が有利だと思いますので、さっそく試してみます。

 上記の記事(と関連記事)にも十分な情報がありますので、ぜひご覧ください。

0-2. 筆者の過去の記事

 ご参考まで、下記の記事にて別の方法の手順を説明しています。

a. GUI版(VRAM 12GB以上)

b. CUI版(VRAM 6GB以上)



▼ 1. ComfyUIのインストール

1-1. 参考:過去の記事

 下記の記事をご覧いただく必要はありません。そちらでは「git clone」を使用していました。

1-2. 動作環境

 動作の確認は、VRAM 12GBのGeforce RTX 3060、CUDA Toolkit 11.8が導入されたPCで行いました。最低でもVRAM 6GBが必要で、8GB以上を推奨します。本記事で利用するポータブル版では、Pythonは必要無さそうです。

1-3. ComfyUIの公式リポジトリ

https://github.com/comfyanonymous/ComfyUI

1-4. ダウンロード~インストール

 公式リポジトリにアクセスして、「Installing」→「Windows」にある「Direct link to download」からポータブル版をダウンロードします(約1.3GB)。

ポータブル版をダウンロードする

 次に、これを適当なディレクトリに解凍(7z形式に対応したツールが必要)します。

解凍したポータブル版の内容

1-5. 参考:アップデートの方法

 アップデートは、「update」ディレクトリ内の「update_comfyui.bat」を実行するだけです。試しに、インストール後すぐに動作を確認してみました。

stashing current changes
nothing to stash
creating backup branch: backup_branch_2024-02-24_23_56_12
checking out master branch
pulling latest changes
Done!



▼ 2. Stable Cascadeのための準備

2-1. モデルの選択

 先に知っておいていただきたい点があります。モデルはSTAGEA、B、Cに分かれていて、BとCのモデルは4種類あります。なお、生成時の処理はC→B→Aの順です。

 STAGE BとCのモデルが4種類ずつあるのは、LargeモデルとLiteモデルそれぞれにfloat32版とbfloat16版があるためです。Liteモデルは品質が劣る(パラメーター数が異なる)代わりにコンパクトです。float32とbfloat16はデータの精度で、見た目の品質はほとんど変わりません。

 最も重要な点は、モデルによってVRAM使用量が変わることです。下記を参考に適切なモデルを選択します。STAGE CでLiteモデルを選ぶと、ぱっと見で分かるほどに品質が落ちるので留意してください。

  • VRAM 6GB:stage_b_lite_bf16 と stage_c_lite_bf16

  • VRAM 8GB以上:stage_b_bf16 と stage_c_bf16

2-2. モデルのダウンロード

 まずは https://huggingface.co/stabilityai/stable-cascade/tree/main にアクセスします。次に、一つずつ確認しながらStable Cascadeのモデルをダウンロードして設置します。どれを選択するかは、一つ前の項を参考にします。基本的にbf16の方を選んでください。

STAGE A
stage_a.safetensors (73.7 MB)
→「ComfyUI\models\vae」に移動する。

STAGE B
stage_b.safetensors (6.25GB)
stage_b_bf16.safetensors (3.13GB)
stage_b_lite.safetensors (2.8GB)
stage_b_lite_bf16.safetensors (1.4GB)
→いずれかを「ComfyUI\models\unet」に移動する。

STAGE C
stage_c.safetensors (14.4GB)
stage_c_bf16.safetensors (7.18GB)
stage_c_lite.safetensors (4.12GB)
stage_c_lite_bf16.safetensors (2.06GB)
→いずれかを「ComfyUI\models\unet」に移動する。

CLIP (Text encorder)
text_encoder\model.safetensors (1.39GB)
→「ComfyUI\models\clip」に移動する。

2-3. ワークフローの入手

 ComfyUIで生成を行うためには、ワークフロー(回路図のようなもの)が必要です。Stable Cascade用のワークフローは、ComfyUIの作者が公開しているものを利用します。

参考(ComfyUI作者のコメント):
https://github.com/comfyanonymous/ComfyUI/issues/2785#issuecomment-1949722389 

 下記リンク先へアクセスして、「stable_cascade_workflow_test.json」の「Raw」を右クリックしてダウンロードします。置き場所は特に決まっていません。

https://gist.github.com/comfyanonymous/0f09119a342d0dd825bb2d99d19b781c

「名前を付けてリンク先を保存」でダウンロードする



▼ 3. ComfyUIの起動から生成まで

3-1. ComfyUIの起動

 準備が整ったので、早速生成を始めます。「run_nvidia_gpu.bat」(ポータブル版の場合)を実行してComfyUIを起動します。Windows上からバッチファイルを直接ダブルクリックしても構いません。

 ComfyUIが起動するとWebブラウザが開くようですが、開かない場合はコマンド プロンプトの表示に従って http://127.0.0.1:8188/ 等のURLへアクセスします。

3-2. ワークフローの読み込み

 先ほどダウンロードしたファイル「stable_cascade_workflow_test.json」を、ComfyUIの画面にドラッグ&ドロップします。「Load」のボタンから読み込んでも構いません。

ワークフローを読み込むためファイルをドラッグ&ドロップする

 続きの説明は後にして、生成画面を先に掲載します。ワークフローとは、このように様々なノードを線で結んだ状態を記録したものです。ワークフローを自由に構成できることが、ComfyUIの最大の特徴です。

ワークフローを読み込んで生成を行った

3-3. レイアウトの変更

 全てのワークフローを画面に表示することは困難を伴いますので、せめて使いやすいようにレイアウトを変更してみます。ブラウズ画面の倍率も変更すると良いでしょう(Ctrlを押しながら+と-で変更できる)。

  • ノード(それぞれのボックス)は、ドラッグして好きな位置に移動できる。

  • 画面全体は、空白地帯をドラッグして移動できる。

 下記画面は適当に動かしただけです。この状態は、生成した画像にも記録されます。先ほどはワークフローのファイルを読み込みましたが、画像ファイルを読み込むと生成時の状態が再現されます。

ノードは自由に動かすことができる

3-4. ノードの設定

 生成を実行する前に設定を確認します。説明の都合上、レイアウトを若干変更しています。

 下記画面の左上のノードで、左右の矢印をクリックしてSTAGE Bのモデルのファイルを正しく選択します。続けて、下のSTAGE CとCLIPも選択します。2-2.での選択により、STAGE BとCのファイル名が異なります。プロンプト欄は、上がポジティブプロンプト、下がネガティブプロンプトです。

モデルとプロンプトの設定

 下記画面の右下のノードで、左右の矢印をクリックしてSTAGE Aのモデルのファイルを正しく選択します。生成画像のサイズを変更したい場合は、widthとheightを変更します。他はそのままで構いません。

残りの設定

3-5. 生成の実行

 設定が終わったら「Queue Prompt」をクリックします。進捗状況が控えめに表示され、最後に生成した画像が表示されます。

生成を実行したところ

 生成した画像は、「ComfyUI\output」下に保存されます。

生成した画像を確認する

3-6. 終了の方法

 起動時に開かれたコマンド プロンプトのウインドウで「Ctrl + C」を押すか、おもむろにコマンド プロンプトの画面を閉じてください。



▼ 4. TIPS

仕様における留意点

 ComfyUIは動作が最適化されているため、変更の無かったフローを実行しない事があります。おそらく、これに起因して生成しない時があるので(0秒で完了してしまう)、現状の設定で再度生成を行いたい場合はComfyUIを起動し直す必要があります(終了時の状態から始まります)。もちろん、シード値等を変更すれば生成されます。

画像の読み込み

 先に説明したとおり、生成した画像にもワークフローが含まれています。ここでは作業を再開する想定で、画像からワークフローを読み込んでみます。

 まず、「Clear」をクリックしてワークフローを消します。視覚的に分かりやすくするだけなので、これ以降は行わなくても構いません。

 次に、生成した画像を直接ドラッグ&ドロップすると、ワークフローが表示されます。各ノードの選択や値も再現されるので、続きをすぐに始めることができます。

画像をドラッグ&ドロップしてワークフローを再現する

KSamplerの設定

 下記画面にて、左側はSTAGE C、右側はSTAGE BのKSamplerです。簡単に補足します。

KSamplerの設定(STAGE CとB)
  • シード値(seed)
    一般的なシード値は、STAGE Cのものが該当します。STAGE Bのシード値のみを変更すると、全体的にわずかな変化が見られます。
    よって、STAGE Bのシード値を固定にして再現性を確保したり、逆にSTAGE Cのシード値を固定にしてベストの画像を追求する…といった活用方法が考えられます。

  • シード値の変更方法(control_after_generate)
    randomize … 生成のたびに値をランダムに変更する
    increment, decrement … 生成のたびに値を増減する
    fixed … 値を変更しない(固定)

  • ステップ数(steps)
    基本的にはそのままとします。生成にかかる時間と品質に影響します。

  • CFGスケール(cfg)
    基本的にはそのままとします。変化を確認したい場合は、STAGE C側のみ変更してください。低すぎても高すぎても品質が落ちます。

  • サンプラー(sampler_name)とスケジューラー(scheduler)
    それぞれに特徴があり大きな影響を与えるのですが、基本的にはそのままとします。変化を確認したい場合はシード値を固定にして、STAGE C側のみ片方ずつ変更してみてください。なお、最適なCFGスケールやステップ数が異なる場合があります。

  • デノイズ(denoise)
    基本的にはそのままとします。



▼ 5. VRAM使用量

 モデルの選択によってSTAGE CとBのVRAM使用量が、画像のサイズによってSTAGE AのVRAM使用量が変化します。参考まで、GeForce RTX 3060でこれらの値と実行時間を確認してみます。画像のサイズは1024x1024です。

 前提として、GPUメモリ(専用GPUメモリと共有GPUメモリの和)は、ComfyUI起動前に0.9~1.0GB、生成開始前に1.1~1.2GBを使用していました(毎回そうなるように調整)。不要なアプリケーションを終了しておけば、VRAM使用量はさらに下がることになります。

5-1. stage_b_bf16 + stage_c_bf16

 最大で8.0GBです。VRAM 8GB以上の環境向けで、8GBの場合は事前に不要なアプリケーションを閉じておく必要がありそうです。41.0秒かかりました。

5-2. stage_b + stage_c

 最大で8.0GBです。68.8秒かかりました。見た目の品質はほとんど変わらないため、こちらを選択するメリットは無いと思われます。

5-3. stage_b_lite_bf16 + stage_c_lite_bf16

 最大で6.3GBです。VRAM 6GBの環境向けですが、実行時はできるだけアプリケーションやウインドウを閉じておく必要がありそうです。17.7秒かかりました。

5-4. stage_b_lite + stage_c_lite

 最大で6.3GBです。16.2秒かかりました。こちらを選択するメリットは特に無いと思われます(実行時間は何らかの誤差)。



▼ 6. おまけ

生成画面の画像

 記事中の、ComfyUIの画面に出てきた画像です。プロンプトが同じなので、内容はほとんど変化しません。プロンプトは「anime style, watercolor, close up, 1girl, big eye, pigtail, sky blue floral skirt, white ribbon blouse, gray pigtails, farm rural village, spring flower, sitting, hold cat, meadow, distant mountain,」と「teeth」です。



▼ 7. その他

 私が書いた他の記事は、メニューよりたどってください。

 noteのアカウントはメインの@Mayu_Hiraizumiに紐付けていますが、記事に関することはサブアカウントの@riddi0908までお願いします。

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