こんにちは。ToonkitでPMをしているEUROです。
ComfyUIで好みの画風が出ても、モデルやLoRAを入れ替えた途端に、線や色の印象が変わることがあります。そこで役立つのが、見た目の印象だけでなく、モデル・条件・潜在データがどの経路を通るかを分けて読むことです。
この記事では、SDXL、FLUX.1、Animaを例に、モデルの読み込み、LoRAの接続、比較条件の残し方、アップスケールの選び方を整理します。インストール済みのComfyUIで、配布ワークフローを読み始める方を対象にしています。
この記事は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段階になる、という意味ではありません。
- モデルを読み込む
- プロンプトを条件データに変換する
- 画像サイズに対応する潜在データを用意する
- サンプリングする
- VAEで画像へデコードする
- 画像を保存する
モデルとテキストエンコーダー
拡散モデルは生成を担う重みです。テキストエンコーダーはプロンプトを条件として扱える表現へ変換します。両者は別の役割を持ちます。
図はAnimaのファイル名を使った読み込み欄の例です。CLIPLoaderというノード名でも、ここで使うのはQwen系のテキストエンコーダーです。ノード名だけでモデルのアーキテクチャを判断しないようにします。
プロンプトのエンコード
図の長い英文は原図の入力例です。意味としては、草原に立つ人物、白いドレス、緑の日傘、風、鳥、野の花を指定しています。図中の品質タグやトリガーを他のモデルへそのまま移すことを推奨するものではありません。
比較を始める際は、まず被写体・構図・照明を短く指定します。品質タグ、年代表現、トリガーワードは、使用するモデルの説明に沿って追加します。「特定のタグ以外は理解できない」「全モデルで同じ語数を上限にする」といった一律のルールにはしません。
潜在データ、サンプリング、デコード
EmptyLatentImageはサイズとバッチ数に応じた潜在データを用意します。これ自体が完成画像ではありません。初期ノイズの扱いはサンプラー側も含めて確認します。図の1184×1776は原図の設定例であり、全モデルの推奨解像度ではありません。
| 項目 | 読み方 |
|---|---|
| Steps | サンプリングのステップ数。増やせば必ず改善するとは限らない |
| CFG | 条件付き・条件なしの予測の差を使うガイダンスの強さ。適切な値はモデルと方式に依存 |
| Sampler / Scheduler | 更新方法とノイズレベルの進め方。組み合わせとして記録する |
| Seed | ノイズ生成に関わる乱数の初期値。再現条件の一部 |
| denoise | 再生成の強さに関わる設定。特に2回目のサンプリングで重要 |
図のres_2s / beta57やCFG 4.0は元の画面の値です。後述する公式Animaテンプレートの設定とは区別してください。また、図は生成後の制御がrandomizeです。比較のためにSeedを固定する場合はfixedへ変更し、実際に使われた値を記録します。
サンプラーが出すのは潜在データです。対応するVAEをVAEDecodeへ渡して画像に変換し、その画像をSaveImageへ接続します。
3. SDXL・FLUX.1・Animaで読み込み方法を分ける
SDXL:MODEL・CLIP・VAEの3本を追う
チェックポイントに必要な重みが含まれる構成では、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では、拡散モデル、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 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つずつ追加して、比較できる形にする
図は複数のLoraLoaderModelOnlyを連結した例です。4個を使うことや、図の強度を推奨しているわけではありません。
通常のLoraLoaderには、モデル側のstrength_modelとテキストエンコーダー側のstrength_clipがあります。モデルのみを対象にするローダーには、CLIP側の調整経路がありません。LoRAに含まれる重みと、読み込みノードの役割を区別します。
比較するなら、次の順で進めると変化の原因を追いやすくなります。
- ベースモデルだけで基準画像とワークフローを保存する。
- LoRA Aを追加し、配布元の説明に沿った強度から比較する。
- 他の条件を固定してAの強度だけを変える。
- Aが決まってからLoRA Bを追加する。
- 最後に複数の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で試してみてください!











