FLUX.2 [klein] の導入手順を紹介します。
ComfyUIをインストールして、最新バージョンに更新します。
インストール手順はこちらの記事のPortable版のインストールを参照してください。
アップデート手順はこちらの記事を参照してください。
FLUX.2 [klein] のモデルをダウンロードします。FLUX.2 [klein] には4B(40億パラメータ)のモデルと9B(90億パラメータ)のモデルがあります。今回は9Bのモデルを利用します。
以下のHuggingFaceのハブからflux-2-klein-9b-fp8.safetensors ファイルをダウンロードします。
Baseモデルを利用する場合は以下のハブからflux-2-klein-base-9b-fp8.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\diffusion_models\FLUX.2-klein\
以下のHuggingFaceのハブからqwen_3_8b_fp8mixed.safetensors ファイルをダウンロードします。(flux2-dev/split_files/text_encodersディレクトリに配置されています。)
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\text_encoders\FLUX.2-klein\
以下のHuggingFaceのハブからflux2-vae.safetensors ファイルをダウンロードします。(flux2-dev/split_files/vaeディレクトリに配置されています。)
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\vae\FLUX.2
以下のHuggingFaceのハブからflux-2-klein-9b.safetensors ファイルをダウンロードします。
Baseモデルを利用する場合は以下のハブからflux-2-klein-base-9b.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\diffusion_models\FLUX.2-klein\
以下のHuggingFaceのハブからqwen_3_8b.safetensors ファイルをダウンロードします。(flux2-dev/split_files/text_encodersディレクトリに配置されています。)
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\text_encoders\FLUX.2-klein\
以下のHuggingFaceのハブからflux2-vae.safetensors ファイルをダウンロードします。(flux2-dev/split_files/vaeディレクトリに配置されています。)
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\vae\FLUX.2
ComfyUIを起動し、以下のワークフローを作成します。
モデルの読み込み部分は先にダウンロードして配置したFLUX.2-kleinのモデルを指定します。
[CLIP Text Encode (Positive Prompt)]のノードにプロンプトを入力して[実行する]ボタンを
クリックして、画像生成を実行します。
画像生成結果はワークフローの右側の[画像を保存]ノードに表示されます。
以下のプロンプトで画像を生成します。
他のモデルの生成結果はこちらの記事を参照してください。
画像生成結果(fp16)は下図です。
"fifth floor"の解釈が微妙ですが、プロンプト通りの画像が生成できています。品質もかなり良いです。バリエーションはやや狭めです。
baseモデル(fp16)での結果は下図です。baseモデルのほうが構図のバリエーションが広い印象です。
画像生成結果(fp16)は下図です。リアルな画像が生成できています。Nano Banana Proと比較すると線路が若干怪しい出力になっています。
baseモデル(fp16)での結果は下図です。線路のレールが描かれにくい印象があります。
生成結果(fp16)は下図です。かなり良いです。
baseモデル(fp16)での結果は下図です。彩度が高く鮮やかなカラーの傾向です。
{
"id": "92112d97-bb64-4b44-86f2-ea5691ef8f6e",
"revision": 0,
"last_node_id": 97,
"last_link_id": 177,
"nodes": [
{
"id": 9,
"type": "SaveImage",
"pos": [
1316.4237334603722,
222.23131469133472
],
"size": [
482.390625,
479.75
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 176
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "SaveImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"Flux2-Klein"
]
},
{
"id": 84,
"type": "KSamplerSelect",
"pos": [
343.42545548061617,
480.8931748598236
],
"size": [
270,
82.65625
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "SAMPLER",
"type": "SAMPLER",
"links": [
167
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "KSamplerSelect",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"euler"
]
},
{
"id": 85,
"type": "Flux2Scheduler",
"pos": [
343.42545548061617,
600.8931817714853
],
"size": [
270,
144
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 160
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 161
}
],
"outputs": [
{
"name": "SIGMAS",
"type": "SIGMAS",
"links": [
168
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "Flux2Scheduler",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
20,
1024,
1024
]
},
{
"id": 86,
"type": "CFGGuider",
"pos": [
343.42545548061617,
312.893133842506
],
"size": [
270,
128
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 162
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 163
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 164
}
],
"outputs": [
{
"name": "GUIDER",
"type": "GUIDER",
"links": [
166
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "CFGGuider",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
5
]
},
{
"id": 87,
"type": "SamplerCustomAdvanced",
"pos": [
703.4255284505866,
216.8932223361507
],
"size": [
225,
144
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "noise",
"type": "NOISE",
"link": 165
},
{
"name": "guider",
"type": "GUIDER",
"link": 166
},
{
"name": "sampler",
"type": "SAMPLER",
"link": 167
},
{
"name": "sigmas",
"type": "SIGMAS",
"link": 168
},
{
"name": "latent_image",
"type": "LATENT",
"link": 169
}
],
"outputs": [
{
"name": "output",
"type": "LATENT",
"links": [
170
]
},
{
"name": "denoised_output",
"type": "LATENT",
"links": []
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "SamplerCustomAdvanced",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": []
},
{
"id": 88,
"type": "VAEDecode",
"pos": [
1037.9454799343957,
220.6534622416532
],
"size": [
225,
72
],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 170
},
{
"name": "vae",
"type": "VAE",
"link": 171
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"slot_index": 0,
"links": [
176
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "VAEDecode",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": []
},
{
"id": 89,
"type": "EmptyFlux2LatentImage",
"pos": [
337.937334487777,
827.6228452783236
],
"size": [
270,
144
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 172
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 173
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
169
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "EmptyFlux2LatentImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
1024,
1024,
1
]
},
{
"id": 90,
"type": "CLIPTextEncode",
"pos": [
-290.36450324165423,
532.2537467614775
],
"size": [
400,
140
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 174
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
164
]
}
],
"title": "CLIP Text Encode (Negative Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "CLIPTextEncode",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
""
],
"color": "#322",
"bgcolor": "#533"
},
{
"id": 91,
"type": "PrimitiveInt",
"pos": [
-768.2507377276471,
875.1997237659585
],
"size": [
270,
80
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "INT",
"type": "INT",
"links": [
160,
172
]
}
],
"title": "Width",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "PrimitiveInt",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
1024,
"fixed"
]
},
{
"id": 92,
"type": "PrimitiveInt",
"pos": [
-768.2507377276471,
1055.2002303658137
],
"size": [
270,
80
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "INT",
"type": "INT",
"links": [
161,
173
]
}
],
"title": "Height",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "PrimitiveInt",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
1024,
"fixed"
]
},
{
"id": 93,
"type": "RandomNoise",
"pos": [
343.42545548061617,
168.89313599550917
],
"size": [
270,
80
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "NOISE",
"type": "NOISE",
"links": [
165
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "RandomNoise",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
436387702849899,
"randomize"
]
},
{
"id": 94,
"type": "UNETLoader",
"pos": [
-819.9201494028437,
183.7317680381539
],
"size": [
463.234375,
120.203125
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
162
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "UNETLoader",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"FLUX.2-klein\\flux-2-klein-9b.safetensors",
"default"
]
},
{
"id": 95,
"type": "CLIPLoader",
"pos": [
-817.9885097299142,
362.7655492101948
],
"size": [
419.734375,
151.96875
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "CLIP",
"type": "CLIP",
"links": [
174,
175
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "CLIPLoader",
"models": [
{
"name": "qwen_3_8b_fp8mixed.safetensors",
"url": "https://huggingface.co/Comfy-Org/flux2-klein-9B/resolve/main/split_files/text_encoders/qwen_3_8b_fp8mixed.safetensors",
"directory": "text_encoders"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"FLUX.2-klein\\qwen_3_8b.safetensors",
"flux2",
"default"
]
},
{
"id": 96,
"type": "VAELoader",
"pos": [
-815.0899880191275,
570.6304578645424
],
"size": [
414.890625,
82.65625
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "VAE",
"type": "VAE",
"links": [
171
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "VAELoader",
"models": [
{
"name": "flux2-vae.safetensors",
"url": "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux2-vae.safetensors",
"directory": "vae"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"FLUX.2\\flux2-vae.safetensors"
]
},
{
"id": 97,
"type": "CLIPTextEncode",
"pos": [
-290.36450324165423,
186.0465306685481
],
"size": [
400,
140
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 175
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
163
]
}
],
"title": "CLIP Text Encode (Positive Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "CLIPTextEncode",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
""
],
"color": "#232",
"bgcolor": "#353"
}
],
"links": [
[
160,
91,
0,
85,
0,
"INT"
],
[
161,
92,
0,
85,
1,
"INT"
],
[
162,
94,
0,
86,
0,
"MODEL"
],
[
163,
97,
0,
86,
1,
"CONDITIONING"
],
[
164,
90,
0,
86,
2,
"CONDITIONING"
],
[
165,
93,
0,
87,
0,
"NOISE"
],
[
166,
86,
0,
87,
1,
"GUIDER"
],
[
167,
84,
0,
87,
2,
"SAMPLER"
],
[
168,
85,
0,
87,
3,
"SIGMAS"
],
[
169,
89,
0,
87,
4,
"LATENT"
],
[
170,
87,
0,
88,
0,
"LATENT"
],
[
171,
96,
0,
88,
1,
"VAE"
],
[
172,
91,
0,
89,
0,
"INT"
],
[
173,
92,
0,
89,
1,
"INT"
],
[
174,
95,
0,
90,
0,
"CLIP"
],
[
175,
95,
0,
97,
0,
"CLIP"
],
[
176,
88,
0,
9,
0,
"IMAGE"
]
],
"groups": [
{
"id": 1,
"title": "Models",
"bounding": [
-835.0158374759973,
76.36556291000653,
456,
660
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 2,
"title": "Prompt",
"bounding": [
-308.7645693872368,
79.44650772229636,
564,
660
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 3,
"title": "Sampler",
"bounding": [
341.82504240306065,
86.29305174960706,
638.836640625,
660
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 4,
"title": "Image Size",
"bounding": [
-834.650853689827,
768.5999636949855,
456,
420
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.7069260024756017,
"offset": [
950.999254152831,
34.6616625770917
]
},
"frontendVersion": "1.36.14",
"workflowRendererVersion": "Vue",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}