FLUX.2 [dev] の導入手順を紹介します。
ComfyUIをインストールして、最新バージョンに更新します。
インストール手順はこちらの記事のPortable版のインストールを参照してください。
アップデート手順はこちらの記事を参照してください。
FLUX.2 [dev] のモデルをダウンロードします。
fp8 mixed モデルの場合です。
以下のURLから、flux2_dev_fp8mixed.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\diffusion_models\FLUX.2\
以下のURLから、mistral_3_small_flux2_fp8.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\text_encoders\FLUX.2\
以下のURLから、flux2-vae.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\text_encoders\
以下のURLから、flux2-dev-nvfp4-mixed.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\diffusion_models\FLUX.2\
以下のURLから、mistral_3_small_flux2_fp8.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\text_encoders\FLUX.2\
以下のURLから、flux2-vae.safetensors ファイルをダウンロードします。
ダウンロードしたファイルを以下のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\text_encoders\
下図のワークフローを作成します。
モデルのロード部分に配置したsafetensorsファイルを選択します。
プロンプトを入力して[実行する]ボタンをクリックします。右側の[画像を保存]ノードに画像生成結果が表示されます。
画像生成結果は下図です。
"fifth floor"の解釈が微妙ですが、プロンプト通りの画像が生成できています。
出力結果を見るとFLUX.2 [klein]のほうが構図のバリエーションや表現が良い印象があります。
画像生成結果は下図です。リアルな画像が生成できています。こちらの生成結果はFLUX.2 [klein]より良い品質の印象です。
生成結果は下図です。こちらもFLUX.2 [klein]とほとんど変わりない印象です。
1,024x1,024の画像生成を5回実行して平均の生成時間を比較します。
結果は下図です。nvfp4よりfp8のほうが速い結果となりました。
実行環境が最適化されておらず、nvfp4の速度が上がらないのかもしれません。
| fp8 mixed | nvfp4 mixed | |
|---|---|---|
| 生成時間 | 22秒 | 30秒 |
生成画像は下図です。生成される画像の品質の違いはほとんどなさそうです。
{
"id": "9a0df79d-872e-44ba-a5ab-dcaae831f55c",
"revision": 0,
"last_node_id": 104,
"last_link_id": 220,
"nodes": [
{
"id": 9,
"type": "SaveImage",
"pos": [
1042.1381613547276,
-368.5859883191971
],
"size": [
734.53125,
617.8125
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 183
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "SaveImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"Flux2"
]
},
{
"id": 72,
"type": "Flux2Scheduler",
"pos": [
-75.35325614853264,
19.414947427348807
],
"size": [
266.8125,
144
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 218
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 219
}
],
"outputs": [
{
"name": "SIGMAS",
"type": "SIGMAS",
"links": [
176
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "Flux2Scheduler",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
20,
1248,
832
]
},
{
"id": 73,
"type": "BasicGuider",
"pos": [
-79.15092189915299,
-226.3085413499486
],
"size": [
266.8125,
72
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 185
},
{
"name": "conditioning",
"type": "CONDITIONING",
"link": 220
}
],
"outputs": [
{
"name": "GUIDER",
"type": "GUIDER",
"slot_index": 0,
"links": [
174
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "BasicGuider",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": []
},
{
"id": 74,
"type": "FluxGuidance",
"pos": [
-584.7279366780926,
-378.22949910190187
],
"size": [
380.875,
80
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "conditioning",
"type": "CONDITIONING",
"link": 170
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
220
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "FluxGuidance",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
4
],
"color": "#233",
"bgcolor": "#355"
},
{
"id": 75,
"type": "KSamplerSelect",
"pos": [
-79.15092189915299,
-118.3084013887563
],
"size": [
266.8125,
82.65625
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "SAMPLER",
"type": "SAMPLER",
"links": [
175
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"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": 76,
"type": "VAELoader",
"pos": [
-1622.5778175021503,
-28.906095340097295
],
"size": [
363.6875,
82.65625
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "VAE",
"type": "VAE",
"slot_index": 0,
"links": [
179
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"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"
},
{
"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": 77,
"type": "SamplerCustomAdvanced",
"pos": [
316.8919511898955,
-368.41797440062203
],
"size": [
326.828125,
144
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "noise",
"type": "NOISE",
"link": 173
},
{
"name": "guider",
"type": "GUIDER",
"link": 174
},
{
"name": "sampler",
"type": "SAMPLER",
"link": 175
},
{
"name": "sigmas",
"type": "SIGMAS",
"link": 176
},
{
"name": "latent_image",
"type": "LATENT",
"link": 177
}
],
"outputs": [
{
"name": "output",
"type": "LATENT",
"slot_index": 0,
"links": [
178
]
},
{
"name": "denoised_output",
"type": "LATENT",
"links": []
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "SamplerCustomAdvanced",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": []
},
{
"id": 78,
"type": "CLIPTextEncode",
"pos": [
-1143.022572993279,
-378.7173430183651
],
"size": [
516,
125
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 180
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
170
]
}
],
"title": "CLIP Text Encode (Positive Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"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"
},
{
"id": 79,
"type": "CLIPLoader",
"pos": [
-1621.4297294810372,
-223.7690043045497
],
"size": [
366.859375,
151.96875
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "CLIP",
"type": "CLIP",
"links": [
180
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "CLIPLoader",
"models": [
{
"name": "mistral_3_small_flux2_bf16.safetensors",
"url": "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/text_encoders/mistral_3_small_flux2_bf16.safetensors",
"directory": "text_encoders"
},
{
"name": "mistral_3_small_flux2_bf16.safetensors",
"url": "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/text_encoders/mistral_3_small_flux2_bf16.safetensors",
"directory": "text_encoders"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"FLUX.2\\mistral_3_small_flux2_fp8.safetensors",
"flux2",
"default"
]
},
{
"id": 80,
"type": "UNETLoader",
"pos": [
-1616.8254103553218,
-386.3789139628436
],
"size": [
360.578125,
117.3125
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"slot_index": 0,
"links": [
185
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "UNETLoader",
"models": [
{
"name": "flux2_dev_fp8mixed.safetensors",
"url": "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/diffusion_models/flux2_dev_fp8mixed.safetensors",
"directory": "diffusion_models"
},
{
"name": "flux2_dev_fp8mixed.safetensors",
"url": "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/diffusion_models/flux2_dev_fp8mixed.safetensors",
"directory": "diffusion_models"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
"FLUX.2\\flux2_dev_fp8mixed.safetensors",
"default"
]
},
{
"id": 84,
"type": "RandomNoise",
"pos": [
-79.15092189915299,
-370.3083462037897
],
"size": [
266.8125,
80
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "NOISE",
"type": "NOISE",
"links": [
173
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "RandomNoise",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
143986897213194,
"randomize"
]
},
{
"id": 85,
"type": "VAEDecode",
"pos": [
735.7817758990975,
-368.0768202321333
],
"size": [
252,
72
],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 178
},
{
"name": "vae",
"type": "VAE",
"link": 179
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"slot_index": 0,
"links": [
183
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "VAEDecode",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": []
},
{
"id": 86,
"type": "EmptyFlux2LatentImage",
"pos": [
-447.1178072914313,
252.4857909942781
],
"size": [
324,
144
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 216
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 217
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
177
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.71",
"Node name for S&R": "EmptyFlux2LatentImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65
},
"widgets_values": [
1248,
832,
1
]
},
{
"id": 103,
"type": "PrimitiveInt",
"pos": [
-1131.8231052368335,
101.99286121109424
],
"size": [
270,
80
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "INT",
"type": "INT",
"links": [
216,
218
]
}
],
"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": 104,
"type": "PrimitiveInt",
"pos": [
-1129.759632051655,
230.02617884248605
],
"size": [
270,
80
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "INT",
"type": "INT",
"links": [
217,
219
]
}
],
"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"
]
}
],
"links": [
[
170,
78,
0,
74,
0,
"CONDITIONING"
],
[
173,
84,
0,
77,
0,
"NOISE"
],
[
174,
73,
0,
77,
1,
"GUIDER"
],
[
175,
75,
0,
77,
2,
"SAMPLER"
],
[
176,
72,
0,
77,
3,
"SIGMAS"
],
[
177,
86,
0,
77,
4,
"LATENT"
],
[
178,
77,
0,
85,
0,
"LATENT"
],
[
179,
76,
0,
85,
1,
"VAE"
],
[
180,
79,
0,
78,
0,
"CLIP"
],
[
183,
85,
0,
9,
0,
"IMAGE"
],
[
185,
80,
0,
73,
0,
"MODEL"
],
[
216,
103,
0,
86,
0,
"INT"
],
[
217,
104,
0,
86,
1,
"INT"
],
[
218,
103,
0,
72,
0,
"INT"
],
[
219,
104,
0,
72,
1,
"INT"
],
[
220,
74,
0,
73,
1,
"CONDITIONING"
]
],
"groups": [
{
"id": 1,
"title": "Models",
"bounding": [
-1629.6133489991548,
-466.16988588638856,
394.47753125280565,
542.9681793945389
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 2,
"title": "Custom sampler",
"bounding": [
-91.15138974227105,
-454.30839770413195,
788.3906246857869,
645.0471811439078
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 4,
"title": "Prompt",
"bounding": [
-1155.0233296131155,
-462.71733604058215,
994.6326843757627,
297.97541762621273
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 5,
"title": "Image Size",
"bounding": [
-1156.23505900853,
13.849608741410492,
339.91376568449914,
331.5997628980215
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.4904843856832876,
"offset": [
1990.7342021836414,
972.8958148165024
]
},
"frontendVersion": "1.37.11",
"workflowRendererVersion": "Vue",
"groupNodes": {},
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}