[ComfyUI] Stable Diffusion 3.5の詳しい使い方 LoRAの使い方も紹介
2024年春ごろにのStability AIが発表して生成デモの画力が話題になった「Stable Diffusion 3」でしたが、いざ公開されるとデモ程の画力は無く、芝生の上に横たわった女性の生成画像は一時期ネット上で話題になっていました。その挽回として発表されたのが「Stable Diffusion 3.5」になります。現在無料でローカル生成できるモデルの流行はBlack Forest Labsの「Flux.1」ですが、その対抗馬としてのモデルではないのでしょうか。今回は「Stable Diffusion 3.5」のMideum・Large・Large Turboの3つのモデルの使い方を紹介します。
【Amazon.co.jp限定】バッファロー 外付けハードディスク 4TB テレビ録画/PC/PS4/4K対応 バッファロー製nasne™対応 静音&コンパクト 日本製 故障予測 みまもり合図 HD-AD4U3
¥14,480
ASIN:B07BK6696F
【Amazon.co.jp限定】Western Digital ウエスタンデジタル WD Blue 内蔵 HDD ハードディスク 8TB CMR 3.5インチ SATA 5640rpm キャッシュ256MB PC メーカー保証2年 WD80EAAZ-AJP エコパッケージ【国内正規取扱代理店】
¥18,980
値引き¥1,040 (5%)
ASIN:B0CP7D7QYK
バッファロー BUFFALO ミニステーション USB3.1(Gen1)/USB3.0用ポータブルHDD 2TB HD-PCFS2.0U3-BBA
¥11,980
ASIN:B07D7978NV
UnionSine 外付け ハードディスク超薄型外付けHDDポータブルハードディスク 500GB 2.5インチ USB3.0に対応 PC/Mac/PS4/XBox/テレビ録画(黒)HD2510
¥4,570
ASIN:B091FS79T8
外付けHDD 外付けハードディスク 500GB容量 USB3.0 超高速データ転送 2.5インチ機械式 /PC/TV/Mac/PS4/XBox適用に対応 テレビ録画 携帯便利 収納袋付属MA-500GB
¥4,180
ASIN:B0D7T6VLRN
外付けHDD 外付けハードディスク 500GB容量 超高速データ転送 2.5インチ機械式 /PC/TV/Mac/PS4/XBox適用に対応 テレビ録画 携帯便利 収納袋 USB3.0接続ポータブルHDD-MB
¥4,180
値引き¥878 (17%)
ASIN:B0DCYRBXZD
【Amazon.co.jp限定】Seagate BarraCuda 3.5インチ 8TB 内蔵 ハードディスク HDD PC 2年保証 6Gb/s 256MB 5400rpm 正規代理店品 ST8000DM004
¥18,980
ASIN:B07911QK3X
Stable Diffusion 3.5の3つのモデルについて
Stable Diffusion 3.5はファインチューンやLoRA等の拡張性の高い最新モデルで、🔗Stability AI Community Licenseに登録すれば商用、非商用ともに使用可能なモデルとなっています。スペックの高くないマシンの方でもストレスなく使えるようにTurbo,Mediumモデルも用意されています。
SD3.5には3つのモデルがあり、各モデルの特徴を簡単にまとめてみました。
- Stable Diffusion 3.5 Large:Stabule Diffusionの中でもっともパワフルなベースモデル。80億パラメーターと、120億パラメーターのFlux.1より少なめですが、効率化により高品質な1メガピクセルの画像を生成できます。🔗Multimodal Diffusion Transformer (MMDiT) Text-to-Imageを採用することで画質・タイポグラフィ・リソース効率パフォーマンスが向上しています。
- Stable Diffusion 3.5 Large Turbo:Stable Diffusion 3.5 Largeの蒸留バージョンになり、高速な4Stepsで高品質なイラストを生成する事ができます。LargeのMultimodal Diffusion Transformer (MMDiT) Text-to-Imageに加え、高速生成を可能にする🔗Adversarial Diffusion Distillation (ADD)を採用し、生成パフォーマンスを向上させています。
- Stable Diffusion 3.5 Medium:25億のパラメーターと改良版のMultimodal Diffusion Transformer with improvements (MMDiT-X) text-to-imageを採用したベースモデルになります。品質とカスタマイズ性のとれたこのモデルは0.25~2メガピクセルの画像を生成する事ができます。
テキストエンコーダー
Stable Diffusion 3.5はSD3と同じく3つのエンコーダーを使います。
- CLIPs: OpenClip model (ViT-G/14), Open AI CLIP ViT-L/14:2つのモデルはSDXLのテキストエンコーダーと同じで77トークンのコンテンツレングスを持っています。
- T5: Google T5-xxl:Flux.1でも使われているエンコーダーで77/256トークンのコンテンツレングスを持っています。
モデルのダウンロード
モデルのダウンロードにはStability AIのHuggingFaceに公開されています。また、Stability AI Community Licenseを承諾する必要があります。承諾が面倒な方は、CivitaiにFp32・Fp16と8Fpの🔗軽量版があります。VAEは内臓されているので別途ダウンロードする必要はありません。
Stable Diffusion 3.5 Large (16.5GB) Stable Diffusion 3.5 Large Turbo (16.5GB) Stable Diffusion 3.5 Medium (5.11GB) テキストエンコーダー上記のリンクよりclip_g.safetensors
・clip_l.safetensors
(t5xxl_fp16.safetensors
またはt5xxl_fp8_e4m3fn.safetensors
)の3つを使います。
ComfyUIでStable Diffusion 3.5を使ってみる
ここからはComfyUIを使ってStable Diffusion 3.5の使い方を解説します。
先ほど紹介したモデルのリポジトリにワークフローのがあるので、まずはそちらのファイルから見ていきましょう。今回はStable Diffusion 3.5 Largeのワークフロー例SD3.5L_example_workflow.json
を使って解説します。3つ共に同じ構成になっており、パラメーターのみ違うので自分のお好みのワークフローを見ていただいても問題ありません。
Stable Diffusion 3.5公式ワークフロー例
ワークフローをダウンロードしたらComfyuUIで開きます。この状態で「Queue」ボタンを押しても、モデルのパスが自分の環境と違う為にエラーが出てしまうので、「Load Checkpoint」と「TripleCLIPLoader」ノードの選択を再設定します。再設定したら「Queue」ボタンで生成してみましょう。
それぞれのモデルの結果をデフォルトのパラメーターで出力してみました。生成時間はサンプリング時間なので、モデルのロード時間は含まれていません。比較しやすい様にそれぞれ載せています。プロンプトは下記の様になっています。
beautiful scenery nature glass bottle landscape, purple galaxy bottle,
Stable Diffusion 3.5公式ワークフローで使っているノード
Stable Diffusion 3.5ワークフローに使っているノードを解説します。プロンプトやデコーダー等の基本ノードの説明は省いています。
Load Checkpointチェックポイントモデルを読み込みます。
TripleCLIPLoader3つのテキストエンコーダーを読み込みます。順番は決まっていませんが、clip_g.safetensors
、clip_l.safetensors
そしてT5xxlエンコーダーはt5xxl_fp16.safetensors
を選択するか、RAMが少ない方はt5xxl_fp8_e4m3fn.safetensors
を選択しましょう。
SD3用の空のラテントイメージを作成します。標準の「Empty Latent Image」でも結果は変わりませんでした。違いはそれぞれサイズのデフォルト値とが違うのと、解像度が「EmptySD3LatentImage」は16ピクセルで割り切れる解像度で「Empty Latent Image」は8で割り切れる解像度になるところです。
ModelSamplingSD3タイムステップスケジューリングシフトのシフト値を調整します。シフト値が多きい程大幅にシフトしていくので芸術性が上がる場合があります。下げ過ぎたり上げ過ぎるとノイズの多い結果になります。モデルにもよりますが0.5~10.0辺りで調節します。
ConditioningZeroOutコンディショニング(プロンプト)の特定部分をゼロにしてモデルの影響を中和しています。
ConditioningSetTimestepRangeコンディショニングの適応を生成のどの段階で適応するかを指定する事ができます。数値は0.1だと10%になり生成の10%の段階となります。
Conditioning (Combine)2つのコンディショニングを混ぜています。今回のSD3.5 Largeのグラフでは普通のネガティブプロンプトが開始から10%まで適応されていて10%から100%までConditioningZeroOutをしたネガティブプロンプトが適応されます。また、SD3.5 Turboは蒸留モデルなのでネガティブプロンプトを使うことができません。
公式Stable Diffusion 3.5 Largeワークフローをカスタムしてみる
DCAIのComfyUI記事では定番になってきましたが、公式ワークフローを実用的にカスタムしてみましょう。今回導入したいリストは下記の様になります。
- LoRAの適応
- LargeからMediumを使ったアップスケールの導入
Stable Diffusion 3.5のアップスケールの2ndパスにSD3.5 Largeを使うと1Mピクセル以上の範囲を生成する事ができません。公式が紹介しているアップスケール方法を参考にSD3.5 Mediumを使って最大2Mピクセルまでのアップスケールプロセスを導入します。KSampler (Advanced)を使って1stステップ終了時点からさらにステップを計算するのでA1111 WebUIのHires. fixに近いプロセスになります。この方法以外ではコントロールネットのTiled Diffusionを使うこともできます。
LoRAのダウンロード
今回使用するのは前回の記事でも紹介していた、blairesilver13氏が公開している「Daubrez Painterly Style」のSD3.5バージョンを使います。下記のリンクよりダウンロードしてください。
LoRAの導入
LoRAの導入は「Load Checkpoint」と「ModelSamplingSD3」の間に「LoraLoaderModelOnly」を挿入します。
- LoraLoaderModelOnly:loaders > LoraLoaderModelOnly
Seed/Stepsの外部化
後ほど導入する「KSampler (Advanced)」の為にSeedとStepsを外部化します。
「KSampler」の右クリックメニューからConvert Widget to Input > Convert seed to inputを選択しseedを外部ノードが繋がるようにします。Stepsも同様に外部化します。「Primitive」を2つ配置してそれぞれseedとstepsに接続します。
- Primitive:utils > Primitive
アップスケールプロセスの導入
アップスケーラーの導入1stパス(KSampler)後の「VAE Decode」のアウトから「Upscale Image (using Model)」に繋ぎます。
「Load Upscale Model」を配置して先ほど設置した「Upscale Image (using Model)」に繋ぎます。
「Upscale Image (using Model)」のアウトを「Scale Image to Total Pixels」に繋ぎます。
「Scale Image to Total Pixels」アウトを「VAE Encode」に繋ぎvaeインプットに「Load Checkpoint(SD3.5 Large)」のVAEアウトを繋ぎます。
- Upscale Image (using Model):image > upscale > Upscale Image (using Model)
- Load Upscale Model:image > upscale > Load Upscale Model
- Scale Image to Total Pixels:image > upscale > Scale Image to Total Pixels
- VAE Encode:latent > VAE Encode
まずは、「KSampler (Advanced)」を配置します。配置したら右クリックメニューからConvert Widget to Inputを使ってnoise_seed
とstart_at_step
を外部化しましょう。1stパスで外部化した「Primitive (seed)」をnoise_seedに繋ぎ、「Primitive (steps)」をstart_at_stepに繋ぎます。
latent_imageにはアップスケール後の「VAE Encode」を繋ぎます。
negativeには1stパスと同じ「Conditioning (Combine)」を繋ぎましょう。
positiveには別のプロンプトが入るのですが、「CLIP Text Encode (Prompt)」のインプットを維持したままコピー(Ctrl+C -> Ctrl+Shift+V)してアウトをpositiveに繋ぎます。
modelにはSD3.5 Mediumを使いたいので、「Load Checkpoint」と「ModelSamplingSD3」を配置してMODELアウトを繋ぎましょう。
「KSampler (Advanced)」アウトを「VAE Decode」に繋ぎvaeインプットには先ほど配置した「Load Checkpoint(SD3.5 Medium)」のVAEアウトを繋ぎます。
最後に「Preview Image」もしくは「Save Image」に接続すれば完成になります。
- KSampler (Advanced):sampling > KSampler (Advanced)
- CLIP Text Encode (Prompt):conditioning > CLIP Text Encode (Prompt)
- Load Checkpoint:loaders > Load Checkpoint
- ModelSamplingSD3:advanced > model > ModelSamplingSD3
- VAE Decode:latent > VAE Decode
- Preview Image:image > Preview Image
- Save Image:image > Save Image
Stable Diffusion 3.5 Largeワークフローカスタムの使い方
グラフが完成したらパラメーターを入力していきましょう。
基本モデルの読み込みおよび基本情報の入力
Load Checkpoint (Large)1stパスで高品質なLargeを使います。
- ckpt_name:sd3.5_large.safetensors
読み込み順は決まっていません。
- clip_name1:clip_g.safetensors
- clip_name2:clip_l.safetensors
- clip_name3:t5xxl_fp16.safetensors
- width:1344
- height:768
生成結果を同じにしたい場合は下記の値にします。
- value:481259788557381
- control_after_genetate:fixed
- value:30
- control_after_genetate:fixed
LoRAの影響をあまり強くしたくなかったので0.35にします。
- lora_name:sd35L-daubrez-v1_db4rz_1800.safetensors
- strength_model:0.35
生成のブラッシュアップはシフト値で調節します。
- shift:3.10
Flux.1と同じく自然言語とDanbooruスタイルを混ぜています。
A masterful highly intricate detailed cinematic digital painting.
A portrait of a girl, who is looking at viewer and (wearing techwear jacket:1.1). Logo of "DCAI" on jacket.
In the background a huge robots are standing.
The streets are very dirty. Abandoned cars on the road.
It is a summer day.
Colorful buildings stand in ruins, and grass and trees grow everywhere.
A flat color style, Japanese anime style, tetradic colors in details, very detailed, masterpiece, intricate details, focus on girl, upper body, (anime face:1.2), clear eyes, close-up shot, correct perspective, volumetric light, light diffusion
headphone, lower body, worst quality, ugly, deformed, bad anatomy, (realistic face:1.1)
サンプリング(1stパス)の設定
KSampler (1st Pass)- cfg:3.00
- sampler_name:dpmpp_2m
- scheduler:sgm_uniform
- denoise:1.00
アップスケーラーの設定
Load Upscale Model- model_name:4x-UltraSharp.pth
SD3.5 Mediumは2メガピクセルが限界なので2.00に設定します。
- upscale_method:lanczos
- megapixels:2.00
サンプリング(2ndパス)の設定
Load Checkpoint (Medium)2ndパスでは品質は劣りますが2メガピクセルまでに対応しているMediumを使います。
- ckpt_name:sd3.5_medium.safetensors
品質の良い1stパスの結果から大きく離れたくなかったので値を小さく設定しています。
- shift:0.50
SD3.5 Mediumはあまりたくさんのトークンを好まないのでプロンプトを最低限にしています。
hyper detailed, masterpiece, intricate details, UHD, 8K
1stパスの30ステップ目から始まるのでここでの設定60は実質30ステップになります。
- add_noise:enable
- steps:60
- cfg:3.5
- sampler_name:dpmpp_2m
- scheduler:sgm_uniform
- end_at_step:1000
- return_with_leftover_noise:disable
以上で設定は完了です。今回はいつも使っているカスタムノードの「Image chooser」を使わない方法を紹介します。この方法を使うには、ComfyUIの新しいインターフェースを使う必要があります。
Image chooserを使わないオペレーションの紹介
1. 2ndパス側の「Preview Image (Medium 2Mpx)」もしくは、「Save Image」をミュート(Ctrl+M)もしくはバイパス(Ctrl+B)します。
2. 「Primitive (Seed)」randomize
に設定します。※今回はseedの例ですがパラメーターの変更とかでも使えます。
3. 「Queue」ボタンを押すと1stパスの「Preview Image (Large 1Mpx)」でプロセスが止まります。
4. 1stパスで満足のいく結果が出れば、左にあるQueueリストをクリックもしくはキーボードのQ
で開きご希望の生成画像をを右クリックして「Load Workflow」を選択すると新しいワークフローが開きます。
5. 新しいワークフローの2ndパス側の「Preview Image (Medium 2Mpx)」もしくは、「Save Image」のミュートまたはバイパスを解除します。
6. 「Primitive (Seed)」fixed
に設定ます。
7. 最後に「Queue」ボタンを押せばアップスケールのプロセスから再開する事ができます。
この方法の「Primitive (Seed)」の切り替えやワークフローが増えるのがめんどくさい方は「Image chooser」を導入しましょう😄
しかし、この方法で便利な所はバッチ生成のSeed管理が楽になるところです。執筆時のバージョンでは通常のEmptySD3LatentImageのバッチ処理で気に入った生成を共有しようとしても、シードが12345679でバッチ処理のX番目と言った感じになるので、新しく開いたワーフフローで生成されたPNGファイルや保存したjsonファイルだと簡単に共有できます。
バッチ処理の場合も「EmptySD3LatentImage」のbatch_sizeを1
のまま、「Queue」ボタンの横にあるBatch countでバッチ数を設定すれば、同様に使うことができます。
最終結果
すこし、話がそれてしまいましたがワークフローの生成結果になります。やはり、アップスケールがSD3.5 Mediumを使っているだけあって少し品質が落ちてしまいました。品質を維持しながらアップスケールをしたい場合はコントロールネットのTiled DIffusionを使う方が良いかもしれません。
このワークフローはPatreonで公開していますが、有料サポーター様のみ閲覧・ダウンロードが可能となっています。
まとめ
今回はStable Diffusion 3.5を紹介させていただきました。この記事の投稿時はFulx.1が主流になっているので比べてしまいますが、SD3.5 LargeとFlux.1 [Dev]を比べると生成結果はやはりパラメーター量の差なのかFlux.1 [Dev]の方が上に感じました。しかしFlux.1 [Dev]よりVRAMの消費が抑えられるので環境によってはSD3.5 Largeのほうが使いやすい人もいるでしょう。現段階ではイラスト向けにファインチューニングされたチェックポイントモデルやLoRAがあまりないのでこれから盛り上がっていくことを期待していきましょう。
EdoErgo オフィスチェア 椅子 テレワーク 疲れない 跳ね上げ式アームレスト コンパクト 約105度ロッキング pc 事務椅子 360度回転 座面昇降 強化ナイロン樹脂ベース 通気性メッシュ テレワーク 在宅ワーク H-WY01 (ブラック)
¥6,980
ASIN:B0DCVMD3ZK
EdoErgo オフィスチェア 肘つき 椅子 テレワーク 疲れない デスクチェア パソコンチェア 360度回転 無段階昇降 約105度ロッキング 通気性メッシュ コンパクト おしゃれ 在宅勤務 勉強椅子 事務椅子 OAチェア H-WY02 (黑網+黑枠+黑足)
¥6,980
値引き¥3,000 (30%)
ASIN:B0DBHTV5L7
Supzmg オフィスチェア 椅子 テレワーク 疲れない デスクチェア パソコンチェア ワークチェア 通気性メッシュ 跳ね上げ式アームレスト ロッキング機能 在宅勤務 事務椅子 勉強椅子 H-WY15 (ブラック)
¥9,980
ASIN:B0DG5HWQB5
Hbada 椅子 オフィス デスクチェア イス パソコン 跳ね上げ式アームレスト コンパクト 約105度ロッキング pc 事務椅子 360度回転 座面昇降 強化ナイロン樹脂ベース メッシュ テレワーク 在宅ワーク J323 グレー
¥12,420 (¥12,420 / 個)
ASIN:B0CD1LBSVX
Supzmg オフィスチェア 椅子 テレワーク 疲れない デスクチェア ワークチェア ロッキング機能 収納式フットレスト リクライニング 人間工学 チェア S字立体背もたれ ハイバック 高反発座面 事務椅子 通気性に優れ H-WY03 (ブラック)
¥9,980
値引き¥3,000 (23%)
ASIN:B0D3D5CYPY
EdoErgo オフィスチェア 椅子 テレワーク 疲れない 人間工学 チェア 腰が痛くならない 「ランバーサポート調整可能 通気性に優れ ロッキング機能 収納式フットレスト 約135度リクライニング」 ッシュチェア pcチェア パソコンチェア 人体工学椅 ワークチェア 事務椅子 通気性に優れ オフィス お宅 在宅ワーク H-WY18 (黑網+白枠+白足)
¥12,980
ASIN:B0DJQ8QQ8W
BURAYIENTA オフィスチェア デスクチェア chair パソコンチェア 椅子 おしゃれ 疲れない ワークチェア 人間工学 360度回転 座面昇降 キャスター付き テレワーク ホームオフィス 勉強 在宅勤務
¥9,980
ASIN:B0DJVHK225
Hbada オフィス デスクチェア 椅子 パソコンチェア 跳ね上げ式アームレスト ランバーサポート コンパクト ワークチェア 約105度ロッキング 通気性 pcチェア 事務椅子 360度回転 座面昇降 メッシュ テレワーク 強化ナイロン樹脂ベース 静音PUキャスター J301 グレー
¥14,980
ASIN:B0967XM6QN
[山善] オフィスチェア コンパクト メッシュ ハイバック 腰当てつき 幅51.5×奥行59×高さ85-97cm 組立品 ブラック EHL-50(BK) 在宅勤務
¥5,190
ASIN:B01N0XQ6X5
オフィスチェア デスクチェア パソコンチェア ワークチェア ローバック PCチェア OAチェア 昇降機能付き 座椅子 肘掛け付き 通気性 メッシュチェア 事務用椅子 テレワーク 疲れにくい オフィスチェアー (ブラック)
¥3,599
ASIN:B0B15J76XN