0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ComfyUIで画風を探す:モデル・LoRA・アップスケールと再現条件の整理

0
Posted at

こんにちは。ToonkitでPMをしているEUROです。

ComfyUIで好みの画風が出ても、モデルやLoRAを入れ替えた途端に、線や色の印象が変わることがあります。そこで役立つのが、見た目の印象だけでなく、モデル・条件・潜在データがどの経路を通るかを分けて読むことです。

この記事では、SDXL、FLUX.1、Animaを例に、モデルの読み込み、LoRAの接続、比較条件の残し方、アップスケールの選び方を整理します。インストール済みのComfyUIで、配布ワークフローを読み始める方を対象にしています。

ComfyUIで画風を探す:モデル・LoRA・再現条件

この記事はToonkitの韓国語記事を技術解説として再編集したものです。2026年10月21日に公式資料と公開ワークフローを確認しました。実機での性能比較や、同一画像の再生成を検証した記事ではありません。

図版は原図をAI画像編集で日本語化しています。全体の接続図3点は読みやすい概念図に再構成しました。実際の日本語UIのキャプチャではなく、読み込み可能なワークフローファイルでもありません。ファイル名・ノード識別子・入力例の英語は識別のために残しています。

1. 配布ページでは「モデル名」より先に互換性を確認する

本記事では、CivitAIをモデルの配布ページや生成情報の参照先として利用し、ComfyUIでローカル実行する流れを扱います。これは本記事の対象範囲であり、CivitAIの機能全体を限定する説明ではありません。

モデルを選ぶときは、次の情報を一組で記録します。

確認する項目 記録する内容
ベースモデル SDXL、FLUX.1 dev、Anima Base v1など。配布ページの対応表記を確認
バージョン モデルの版、実ファイル名、可能ならハッシュ
LoRA 対応するベースモデル、版、推奨強度、必要なトリガーワード
実行条件 テキストエンコーダー、VAE、必要なノード、推奨ワークフロー
利用条件 モデル・LoRAそれぞれのライセンスと配布条件

「アニメ向け」という分類だけでは互換性は判断できません。たとえばSDXL向けLoRAを、同じ画風だからという理由でFLUX.1へ持ち込むことはできません。同じ系統内でも、学習元や実装の違いで効果が変わるため、配布元の対応範囲を優先します。

生成情報にあるプロンプトやSeedも有用ですが、それだけで全条件が分かるとは限りません。追加ノード、後処理、モデルの版が欠けている場合は、再現用の完全なレシピではなく、比較を始めるための手掛かりとして扱います。

2. 基本のText-to-Imageを6つの役割で読む

基本的な画像生成は、次の役割に分けると追いやすくなります。すべてのComfyUIワークフローが必ずこの6段階になる、という意味ではありません。

  1. モデルを読み込む
  2. プロンプトを条件データに変換する
  3. 画像サイズに対応する潜在データを用意する
  4. サンプリングする
  5. VAEで画像へデコードする
  6. 画像を保存する

モデルとテキストエンコーダー

拡散モデルは生成を担う重みです。テキストエンコーダーはプロンプトを条件として扱える表現へ変換します。両者は別の役割を持ちます。

拡散モデルの読み込み欄の日本語訳

テキストエンコーダーの読み込み欄の日本語訳

図はAnimaのファイル名を使った読み込み欄の例です。CLIPLoaderというノード名でも、ここで使うのはQwen系のテキストエンコーダーです。ノード名だけでモデルのアーキテクチャを判断しないようにします。

プロンプトのエンコード

ポジティブ・ネガティブの入力欄の日本語訳

図の長い英文は原図の入力例です。意味としては、草原に立つ人物、白いドレス、緑の日傘、風、鳥、野の花を指定しています。図中の品質タグやトリガーを他のモデルへそのまま移すことを推奨するものではありません。

比較を始める際は、まず被写体・構図・照明を短く指定します。品質タグ、年代表現、トリガーワードは、使用するモデルの説明に沿って追加します。「特定のタグ以外は理解できない」「全モデルで同じ語数を上限にする」といった一律のルールにはしません。

潜在データ、サンプリング、デコード

空の潜在画像の幅・高さ・バッチサイズ

EmptyLatentImageはサイズとバッチ数に応じた潜在データを用意します。これ自体が完成画像ではありません。初期ノイズの扱いはサンプラー側も含めて確認します。図の1184×1776は原図の設定例であり、全モデルの推奨解像度ではありません。

KSamplerの設定欄の日本語訳

項目 読み方
Steps サンプリングのステップ数。増やせば必ず改善するとは限らない
CFG 条件付き・条件なしの予測の差を使うガイダンスの強さ。適切な値はモデルと方式に依存
Sampler / Scheduler 更新方法とノイズレベルの進め方。組み合わせとして記録する
Seed ノイズ生成に関わる乱数の初期値。再現条件の一部
denoise 再生成の強さに関わる設定。特に2回目のサンプリングで重要

図のres_2s / beta57やCFG 4.0は元の画面の値です。後述する公式Animaテンプレートの設定とは区別してください。また、図は生成後の制御がrandomizeです。比較のためにSeedを固定する場合はfixedへ変更し、実際に使われた値を記録します。

VAEデコードの入力と出力

サンプラーが出すのは潜在データです。対応するVAEをVAEDecodeへ渡して画像に変換し、その画像をSaveImageへ接続します。

3. SDXL・FLUX.1・Animaで読み込み方法を分ける

SDXL:MODEL・CLIP・VAEの3本を追う

SDXLのモデル・CLIP・VAEの流れを示す概念図

チェックポイントに必要な重みが含まれる構成では、CheckpointLoaderSimpleの出力を役割ごとに追います。図では1つのチェックポイントの出力を3系統に分けて描いています。

MODEL → LoRAのMODEL入出力 → KSampler.model
CLIP  → LoRAのCLIP入出力 → CLIPTextEncode → KSampler.positive / negative
VAE   → VAEDecode.vae

EmptyLatentImage → KSampler.latent_image
KSampler → VAEDecode.samples → SaveImage

LoRAを複数使う場合も、対応するMODELとCLIPの出力を次のローダーへ渡します。CLIPSetLastLayerは必要なモデルでのみ追加し、-2をSDXL全体の必須値にはしません。チェックポイントの配布元が示す設定を優先します。

参照:ComfyUIのLoRA読み込み解説、複数LoRAの公式例

FLUX.1:devとschnell、分離版と統合版を区別する

FLUX.1 devの分離ロードを示す概念図

分離版のFLUX.1では、拡散モデル、CLIP-LとT5、VAEをそれぞれ読み込みます。

models/diffusion_models/flux1-dev.safetensors
models/text_encoders/clip_l.safetensors
models/text_encoders/t5xxl_fp16.safetensors
models/vae/ae.safetensors

DualCLIPLoaderの種類はfluxです。旧来の例にあるmodels/unet/やmodels/clip/と、現在の公式配置例を混同しないようにします。追加の探索パスを設定している環境では、その設定も確認します。

図は元記事のFluxGuidanceを含む構成を概念化したものです。ガイダンスの入力方法はテンプレートによって異なります。FluxGuidanceとKSamplerのCFGを同じ値として扱わず、読み込んだテンプレートを基準にします。

確認した公式JSONでは、FLUX.1 devの分離版は20 steps、schnellの分離版は4 stepsで、どちらもKSamplerはCFG 1、euler / simpleでした。これらは当該テンプレートの設定値であり、FLUX全体の万能な推奨値ではありません。

この基本構成では、SDXLのようなネガティブ文の入力を前提にしません。ただし「FLUX系にはネガティブ条件を扱う構成が一切存在しない」と一般化せず、対象のモデル・ノードを確認します。統合FP8チェックポイントにはCheckpointLoaderSimpleで読み込む例もあるため、「FLUXは必ず3つのローダー」とも限りません。

参照:FLUX.1公式ガイド、ComfyUIのFLUX例、モデル配置の説明

Anima Base v1:Qwenの名前だけでtypeを決めない

Animaのモデル・条件・潜在データの基本構成

確認したAnima Base v1の公式テンプレートは、次の組み合わせを使用しています。

ノード ファイル・設定
UNETLoader anima-base-v1.0.safetensors
CLIPLoader qwen_3_06b_base.safetensors、typeはstable_diffusion
VAELoader qwen_image_vae.safetensors

保存先は順にmodels/diffusion_models/、models/text_encoders/、models/vae/です。Qwen系のファイルだからといって、typeをqwen_imageに変更するわけではありません。 ファイル名の印象より、対応する公式JSONの組み合わせを優先します。

このテンプレートには通常生成とTurbo LoRAを切り替える分岐があります。通常側は30 steps・CFG 4、Turbo側には別の値が用意されているため、単独の設定欄だけでなく、どちらの分岐が有効かも確認してください。

参照:Anima公式ガイドとモデル配布先、確認した公式JSON

4. LoRAは1つずつ追加して、比較できる形にする

モデルのみのLoRAローダーを連結した日本語訳の図

図は複数のLoraLoaderModelOnlyを連結した例です。4個を使うことや、図の強度を推奨しているわけではありません。

通常のLoraLoaderには、モデル側のstrength_modelとテキストエンコーダー側のstrength_clipがあります。モデルのみを対象にするローダーには、CLIP側の調整経路がありません。LoRAに含まれる重みと、読み込みノードの役割を区別します。

比較するなら、次の順で進めると変化の原因を追いやすくなります。

  1. ベースモデルだけで基準画像とワークフローを保存する。
  2. LoRA Aを追加し、配布元の説明に沿った強度から比較する。
  3. 他の条件を固定してAの強度だけを変える。
  4. Aが決まってからLoRA Bを追加する。
  5. 最後に複数のSeedと構図で確認し、特定の1枚だけに合う設定になっていないかを見る。

比較用の記録は、たとえば次の形です。数値は実測結果ではなく、実験計画の書式例です。

case,lora_A,lora_B,seed,prompt_id,workflow_file,notes
baseline,0,0,12345,P01,baseline.json,
A_test,配布元の開始値,0,12345,P01,A-test.json,
AB_test,採用したAの値,配布元の開始値,12345,P01,AB-test.json,

強度を足して合計1にする、あるいは上限を必ず1にする、といった共通ルールはありません。輪郭、色、構図がどう変わるかを同じ条件で比較します。

<lora:...>という文字列を貼るだけでは接続にならない

外部生成器のプロンプト表記の日本語訳

外部の生成情報には<lora:名前:強度>のような記法が含まれることがあります。ComfyUI標準のノード構成では、LoRAファイルをローダーで読み込み、必要な入力へ接続します。外部ツール用の記法を、通常のCLIPTextEncodeへ貼るだけで読み込みが完了したとは判断しません。

トリガーワードは、LoRAの読み込みとは別の要素です。配布元が指定している場合に、該当するプロンプトへ追加します。

5. アップスケールは「拡大」と「再生成」を分ける

方法 主な処理 比較したい点
画像の補間拡大 ピクセル数を増やす 線のぼけ、輪郭の滑らかさ
学習済みアップスケーラー 画像から高解像度の細部を推定 線の変形、過剰なシャープ化、質感の変化
潜在空間の拡大+再サンプリング 潜在データを拡大して再生成 構図・顔・小物の変化
画像空間の拡大+再サンプリング 画像を拡大して潜在空間へ戻し、再生成 拡大モデルとdenoiseの両方の影響

アップスケールモデルはmodels/upscale_models/に置き、UpscaleModelLoaderとImageUpscaleWithModelを使います。AIアップスケーラーも細部を推定するため、「存在しない細部を追加しない」とは言い切れません。

画像空間を経由する2パスの基本形は、次のようになります。

1回目のサンプリング
  → VAEDecode
  → ImageUpscaleWithModel
  → 必要なら画像サイズを調整
  → VAEEncode
  → 2回目のサンプリング
  → VAEDecode
  → SaveImage

2回目のdenoiseを上げると変化が大きくなる傾向があります。ただし「0.3未満は必ずぼける」「0.4〜0.5が常に最良」とはせず、元の構図や線を保ちたい程度に合わせて比較します。

画風を評価するときは、顔、髪の輪郭、細線、平坦な色面、小物の形を100%表示で見ます。学習用の候補画像を作るなら、処理方法も記録し、拡大処理の癖がデータセット全体へ混ざっていないかを確認します。

参照:ComfyUIのアップスケール解説、2パス生成の公式例

6. Seedと一緒に残す再現条件

Seedは重要ですが、それだけで同じ画像を保証できるわけではありません。PyTorchの再現性に関する説明でも、リリースや環境が異なる場合の完全な再現性は保証されていません。

他の人へ共有する際は、次の情報をワークフローJSONと一緒に残します。

ComfyUIのバージョンまたはcommit:
フロントエンドのバージョン:
カスタムノード名とバージョンまたはcommit:
OS / GPU / PyTorch / CUDAなどの実行環境:
モデル・テキストエンコーダー・VAEのファイル名とハッシュ:
LoRAのファイル名・強度・接続順:
プロンプトとネガティブ条件:
Seedと生成後の制御:
画像サイズ・バッチ数:
Sampler / Scheduler / Steps / CFG / Guidance:
アップスケールのモデル・倍率・2回目のdenoise:

PNGにワークフローが埋め込まれている場合もありますが、投稿先でメタデータが失われる可能性を考え、JSONを別に保存しておくと受け渡しやすくなります。

読み込み用の公式ワークフロー

次のリンクは、確認時点のComfy-Org公式リポジトリの同じリビジョンに固定しています。元記事の独自ワークフローを再現するファイルではありません。必要なモデルは各公式ガイドから確認してください。

保存したJSONはComfyUIのワークフローを開く機能から読み込みます。サブグラフを使うテンプレートでは、内部を開いて設定を確認してください。ノードが不足している場合は、ComfyUI本体の対応状況や起動時の読み込みエラーも確認し、すぐに「カスタムノード不足」と決めつけないことが大切です。

7. 見つけた画風を、制作や学習へ渡すとき

まず残したいのは、採用した画像だけでなく、その画像を選んだ理由です。線の太さ、色面、陰影、背景の密度などを言葉にし、人物・構図・背景を変えたときにも維持したい特徴を整理します。

ToonkitのMy Styleなどで学習用画像を用意する場合も、同じ構図ばかりを集めるのではなく、保ちたい画風と変化させたい内容を分けて選びます。モデルや生成画像の利用条件も、学習・公開という用途に合わせて確認してください。

特定の枚数を集めれば画風が完全に固定される、あるいはLoRAだけで元の生成条件をすべて置き換えられる、とは限りません。学習後も、複数の内容で結果を確認する工程が必要です。

画風探しを再利用しやすい作業にするには、対応するモデルを選ぶ、接続を役割ごとに読む、一度に変える条件を絞る、環境と結果を一緒に残す。この4点を押さえるところから始めると整理しやすくなります。

AIアニメーション制作は、Toonkitで試してみてください!

toonkit.io/ja

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?