メインコンテンツへスキップ
見出し画像

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までお願いします。

     
     
    5060Ti (16GB) と 3060 (12GB) を所持。記載が無い限り文章は手書きです。記事に関することは X の riddi0908 までお願いします。質問箱は気まぐれにお返事します。

    あなたへのおすすめ