在本教程中,我们将学习如何在本地运行 FLUX.2 图像生成模型。我们将设置 GPU 环境、下载量化版本的 FLUX.2、高效加载到 GPU 与内存中、运行推理,并尝试不同的配置选项。
在 RTX 3090 上运行这种体量的模型并不轻松,因此本教程重点介绍最简单、最实用的本地运行方式,避免不必要的复杂度。
如果您对模型管理与优化的高级技巧感兴趣(包括剪枝、量化与日志记录),推荐学习 Scalable AI Models with PyTorch Lightning 课程。
什么是 FLUX.2?
FLUX.2 是一个 为真实创作工作而构建 的图像生成模型,而不仅仅是用于实验。它能生成高质量、逼真的图像,并在多张参考图之间保持角色、风格与产品的一致性。它在原始 FLUX 模型 基础上,能更准确地遵循提示、清晰渲染文本,并能很好地处理光照、布局与品牌元素。
FLUX.2 还支持高分辨率图像编辑,既提供即用型 API,也提供可在本地运行的开源模型,兼具实用、灵活与易于集成到真实生产流程的特点。
FLUX.2 主要有四个变体:
FLUX.2 [max]
FLUX.2 [pro]
FLUX.2 [flex]
FLUX.2 [dev]
每个变体都针对不同的控制粒度、性能与部署需求而设计。
在更广泛的排行榜对比中,三款 FLUX.2 变体均位列 Artificial Analysis 图像编辑模型榜单前十,其中 FLUX.2 [max] 与 FLUX.2 [pro] 的表现优于 GPT-5 和上一代 FLUX.1 Kontext 变体。
来源: Text to Image Leaderboard | Artificial Analysis
本地运行 FLUX.2:分步指南
在下面的步骤中,我将讲解在 RTX 3090 GPU 上本地运行 FLUX.2 所需的一切。
1. 系统要求与前置条件
在本地运行 FLUX.2 之前,请确保您的系统已为 GPU 推理正确配置。
硬件
NVIDIA GPU (推荐 RTX 3090)
24 GB 显存(VRAM)
64 GB 系统内存 (推荐)
NVIDIA 驱动与 CUDA 工具包
安装 NVIDIA 驱动 :确保安装了支持最新 CUDA 版本的 NVIDIA GPU 驱动(推荐 CUDA 12.1+)。
安装 CUDA 工具包 :从官方 NVIDIA CUDA Downloads 页面下载并安装 CUDA 工具包,以提升与 GPU 扩展和自定义内核的兼容性。
在终端运行以下命令以验证安装:
nvidia-smi技术支持
如图所示,我们有一块 RTX 3090 GPU,CUDA 版本为 13。
Python 与 Jupyter
Python 3.10+
Jupyter Notebook 或 JupyterLab (推荐用于轻松的交互式实验)
pip install jupyterlab notebook技术支持
注意: 我们使用 Jupyter Notebook 作为编码环境,便于实验、逐步运行推理,并在笔记本中迭代生成与编辑图像。
2. 安装支持 CUDA 的 PyTorch
这一步安装带有 CUDA 支持的 PyTorch,使推理在 GPU 而非 CPU 上运行。下面的命令会安装预编译 CUDA 版本的 PyTorch、TorchVision 与 TorchAudio,无需从源码构建 CUDA。
! pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130技术支持
安装完成后,若可用且配置正确,PyTorch 将自动使用 GPU。
3. 安装 FLUX.2 与所需依赖
接下来安装在本地运行 FLUX.2 所需的核心库。这些软件包负责模型加载、推理、GPU 加速、 量化 与高效数据传输。
! pip install -q diffusers transformers accelerate bitsandbytes huggingface_hub protobuf sentencepiece hf_transfer技术支持
安装完成后,您的环境即可加载 FLUX.2,开始进行图像生成与编辑推理。
4. 验证 GPU 与量化支持
在加载 FLUX.2 之前,我们验证 PyTorch 是否能识别 GPU 以及是否支持 4 比特量化。此步骤对于确保模型在 RTX 3090 的内存限制内高效运行非常重要。
import torch
import bitsandbytes as bnb
print ( f"PyTorch Version: { torch. __version__} " )
print ( f"CUDA Version: { torch. version. cuda} " )
print ( f"Is CUDA available? { torch. cuda. is_available( ) } " )
print ( f"GPU Name: { torch. cuda. get_device_name( 0 ) } " )
try :
print ( f"BitsAndBytes Version: { bnb. __version__} " )
print ( "4-bit quantization check: PASSED" )
except ImportError:
print ( "BitsAndBytes not installed correctly." ) 技术支持
输出将确认 PyTorch 已正确安装且支持 CUDA,您的 RTX 3090 已被检测到,并且 bitsandbytes 正常工作并启用了 4 比特量化,系统已准备好进行高效的 GPU 推理。
PyTorch Version: 2.8 .0+cu128
CUDA Version: 12.8
Is CUDA available? True
GPU Name: NVIDIA GeForce RTX 3090
BitsAndBytes Version: 0.49 .0
4 -bit quantization check: PASSED技术支持
5. 使用 4 比特量化加载 FLUX.2
此步骤将以 4 比特量化检查点 加载 FLUX.2 [dev] ,以降低 GPU 显存占用,同时保持较高图像质量。这对于在 RTX 3090 上运行像 FLUX.2 这样的大模型至关重要。
我们先导入必要库,并定义几个关键设置。
repo_id 指向 4 比特 FLUX.2 dev 检查点 。
device 选择您的 GPU(第一个 CUDA 设备)。
torch_dtype 设置推理时的计算精度。bfloat16 常用于在保证输出稳定的同时降低内存并提升速度。
import torch
from transformers import Mistral3ForConditionalGeneration
from diffusers import Flux2Pipeline, Flux2Transformer2DModel
repo_id = "diffusers/FLUX.2-dev-bnb-4bit"
device = "cuda:0"
torch_dtype = torch. bfloat16技术支持
接着,我们先将 FLUX.2 的图像变换器主干(负责生成图像潜变量的核心组件)加载到 CPU。这能避免初始加载时占满显存,并让管道更灵活地仅在需要时将模块移动到 GPU。
transformer = Flux2Transformer2DModel. from_pretrained(
repo_id, subfolder= "transformer" , torch_dtype= torch_dtype, device_map= "cpu"
) 技术支持
然后同样将文本编码器加载到 CPU。文本编码器会将您的提示转为用于引导图像生成的嵌入。在设置阶段将其留在 CPU,有助于为生成过程中更重的部分保留 GPU 显存。
text_encoder = Mistral3ForConditionalGeneration. from_pretrained(
repo_id, subfolder= "text_encoder" , dtype= torch_dtype, device_map= "cpu"
) 技术支持
最后,我们将注入已加载的变换器与文本编码器,组装完整的 Diffusers 管道 。
关键在于 enable_model_cpu_offload():它开启自动 CPU ↔ GPU 卸载,意味着管道只在实际需要时将模型部分移至 GPU,用完再移回 CPU。这是用消费级 GPU 运行大模型、无需手动管理设备放置的最简单方法之一。
pipe = Flux2Pipeline. from_pretrained(
repo_id, transformer= transformer, text_encoder= text_encoder, torch_dtype= torch_dtype
)
pipe. enable_model_cpu_offload( ) 技术支持
6. 运行首个文生图生成
现在可以用 FLUX.2 生成第一张图像了。为简单起见,我们从一个文本提示开始,描述一张极致真实的瓢虫微距照片。
prompt = (
"Realistic macro photo of a ladybug perched on the edge of a dew-covered rose petal, "
"early morning mist, soft natural light, shallow depth of field, crisp detail, creamy bokeh."
)
技术支持
接下来,将提示传给管道并运行推理。
我们使用 28 步推理,以平衡速度与画质。
引导系数 4 可保持结果自然,而不过度强行贴合提示。
固定随机种子可确保结果可复现。
image = pipe(
prompt= prompt,
generator= torch. Generator( device= device) . manual_seed( 42 ) ,
num_inference_steps= 28 ,
guidance_scale= 4 ,
) . images[ 0 ] 技术支持
要监控推理期间的显存使用,可打开终端运行:
nvidia-smi技术支持
您应能看到接近 21 GB 的显存占用与较高的 GPU 利用率,表示模型在高效使用资源,并在 RTX 3090 上以满负载运行。
推理完成后,您可在 Jupyter Notebook 中直接显示图像对象以查看结果:
image技术支持
结果高度细腻且逼真。模型紧密遵循提示,同时还加入了诸如光照与质感等未被明确指定的细节。
最后,我们将生成的图像保存到本地:
output_path = "flux2_local_full.png"
image. save( output_path)
print ( f"Image saved to { output_path} " ) 技术支持
输出:
Image saved to flux2_local_full.png技术支持
7. 使用结构化 JSON 的高级提示
FLUX.2 支持超越纯文本的高级提示方式,可对最终图像进行更细致的控制。利用结构化 JSON 提示,您可以用精确的十六进制色码明确规定场景布局、主体、光照、相机设置、氛围与配色。
在本节中,我们使用结构化 JSON 提示来详细描述场景。我们不再用一句话,而是以清晰有序的格式定义环境、主体、风格、颜色、光照、相机属性与负面约束。
这有助于 FLUX.2 更好地理解复杂指令,并产出更可控且高质量的结果。
advanced_prompt = "" "
{
"scene" : "New Year's Eve night on a rooftop overlooking a glowing city skyline" ,
"subjects" : [
{
"description" : "Group of close friends including men and women in winter clothing, natural facial proportions, diverse appearances" ,
"position" : "center and slightly spread across the frame" ,
"action" : "standing together in a loose circle, some smiling softly, others quietly reflective, sharing the moment before midnight"
}
] ,
"style" : "Cinematic semi-realistic illustration with grounded realism, subtle painterly softness" ,
"color_palette" : [ "#0B132B" , "#1C2541" , "#EAEAEA" , "#F4D35E" ] ,
"lighting" : "Soft moonlight as ambient key light, warm glow from sparklers and nearby string lights illuminating faces, gentle contrast" ,
"mood" : "Warm, intimate, reflective, hopeful" ,
"background" : "Out-of-focus city skyline with distant fireworks softly lighting the sky, minimal visual noise" ,
"composition" : "Wide medium shot, balanced framing, friends forming a natural arc, negative space above for sky and fireworks" ,
"camera" : {
"angle" : "eye-level" ,
"lens" : "50mm cinematic look" ,
"depth_of_field" : "sharp focus on group, gentle background blur"
} ,
"details" : [
"subtle breath vapor in cold air" ,
"soft fabric textures on coats and scarves" ,
"sparklers emitting warm golden particles" ,
"natural body language and expressions" ,
"no exaggerated poses or faces"
] ,
"negative_prompt" : [
"cartoon style" ,
"emote proportions" ,
"chibi" ,
"oversized heads" ,
"text" ,
"watermark" ,
"logo" ,
"overcrowded scene" ,
"harsh neon lighting" ,
"over-saturation" ,
"extra limbs" ,
"distorted faces"
]
}
"" "技术支持
随后我们以更多步数运行推理,以捕捉更多细节,同时保持适中的引导系数以获得自然观感。
image_2 = pipe(
prompt= advanced_prompt,
generator= torch. Generator( device= device) . manual_seed( 42 ) ,
num_inference_steps= 50 ,
guidance_scale= 4 ,
) . images[ 0 ] 技术支持
在 Jupyter Notebook 中显示生成图像:
image_2技术支持
生成结果紧密遵循结构化提示,准确呈现场景、氛围、光照与构图。
8. 使用 FLUX.2 进行图像编辑(图生图)
FLUX.2 也支持图像编辑:以参考图像为基础,模型根据文本提示进行更改。这在您希望保留人物身份、五官与肤色,但改变主体周围的场景、氛围或环境时尤其有用。
在此示例中,我们使用来自 Pexels.com 的一张印度女性照片作为参考图像:
照片由 cottonbro studio 提供:https://www.pexels.com/photo/a-woman-with-a-nose-piercing-9317190/
我们谨慎设计提示,指示模型保持女性的面部特征与自然肤色,同时改变环境、光照与情绪表达。目标是在不改变其身份的前提下进行编辑。
from diffusers. utils import load_image
prompt = (
"Using the provided reference image, generate a realistic photograph of a woman with a similar face, "
"standing at night and looking up at the sky with stars with a subtle, sad expression. "
"Natural skin tones, soft moonlight, gentle shadows, shallow depth of field, "
"with blurred city lights in the background."
) 技术支持
接着我们加载参考图像并传入管道。FLUX.2 支持多张参考图像,本例仅使用单张图进行引导编辑。
indian_woman = load_image( "https://images.pexels.com/photos/9317190/pexels-photo-9317190.jpeg" )
image_3 = pipe(
prompt= prompt,
image= [ indian_woman] ,
generator= torch. Generator( device= device) . manual_seed( 42 ) ,
num_inference_steps= 28 ,
guidance_scale= 4 ,
) . images[ 0 ] 技术支持
在 Jupyter Notebook 中查看编辑结果:
image_3技术支持
输出结果非常逼真。模型在自然置入新场景与不同光照、氛围和背景的同时,保留了女性的面部结构与肤色。
成品更像是在不同地点与时刻由专业摄影师拍摄的照片,而非 AI 的简单编辑。
FLUX.2 内存优化提示
根据我的经验,切换到 4 比特量化模型并采用基于代码的 Transformers 与 Diffusers 配置后,本地运行 FLUX.2 才真正变得稳定可靠。
在此之前,当我尝试将过多内容直接加载到 CUDA 上时,即便是 24 GB 的 RTX 3090 也频繁出现内存不足错误。
Stable Diffusion WebUI 与 ComfyUI 等图形界面工具也更容易触及内存上限,因为它们往往会在内存中保留额外的中间缓冲、预览与工作流状态,除非您仔细调整其低显存选项。
显存优化建议(对我确实有效的):
使用 4 比特检查点(bitsandbytes)而非全精度权重。
先在 CPU 上加载组件(device_map="cpu"),避免一开始就将所有内容推到 CUDA。
启用 CPU–GPU 卸载 (pipe.enable_model_cpu_offload()),让只有活跃模块驻留在 GPU。
控制推理步数在合理范围 (例如 28–35 步 用于快速运行;仅在需要时再提高)。
保持适中引导系数 (大约 3–5 ),以避免不必要的计算与不稳定。
使用 nvidia-smi 实时监控显存 ,并关闭其他占用 GPU 的应用。
若仍遇到 OOM, 重启笔记本内核 以在重试前彻底清空 GPU 内存。
如果按上述步骤仍然遇到内存不足问题,请参考此 DataLab 笔记本 ,获取更多故障排查与内存优化示例。
结语
我对开源图像生成模型的进步由衷感到震撼。
像 FLUX.2 这样的模型在视觉质量与提示理解方面,已能与闭源系统正面竞争。通过合理的环境配置、适度的实验与一些内存优化,即便在消费级 GPU 上,也能本地免费生成高质量、逼真的图像。
最突出的优势在于可控性。高级提示、结构化 JSON、多参考编辑与图生图流程,让您轻松突破简单生成的范畴。
您可以创作电影感场景、为叙事持续演化图像、进行专业级图像编辑,并快速迭代,而无需依赖封闭平台。
对创作者、研究者与开发者而言,这带来了更大的创作自由,也让高端图像生成前所未有地触手可及。
在本教程中,我们将学习如何在本地运行 FLUX.2 图像生成模型。我们将设置 GPU 环境、下载量化版本的 FLUX.2、高效加载到 GPU 与内存中、运行推理,并尝试不同的配置选项。
在 RTX 3090 上运行这种体量的模型并不轻松,因此本教程重点介绍最简单、最实用的本地运行方式,避免不必要的复杂度。
如果您对模型管理与优化的高级技巧感兴趣(包括剪枝、量化与日志记录),推荐学习Scalable AI Models with PyTorch Lightning 课程。
什么是 FLUX.2?
FLUX.2 是一个为真实创作工作而构建的图像生成模型,而不仅仅是用于实验。它能生成高质量、逼真的图像,并在多张参考图之间保持角色、风格与产品的一致性。它在原始FLUX 模型基础上,能更准确地遵循提示、清晰渲染文本,并能很好地处理光照、布局与品牌元素。
FLUX.2 还支持高分辨率图像编辑,既提供即用型 API,也提供可在本地运行的开源模型,兼具实用、灵活与易于集成到真实生产流程的特点。
FLUX.2 主要有四个变体:
每个变体都针对不同的控制粒度、性能与部署需求而设计。
在更广泛的排行榜对比中,三款 FLUX.2 变体均位列 Artificial Analysis 图像编辑模型榜单前十,其中 FLUX.2 [max] 与 FLUX.2 [pro] 的表现优于 GPT-5 和上一代 FLUX.1 Kontext 变体。
来源:Text to Image Leaderboard | Artificial Analysis
本地运行 FLUX.2:分步指南
在下面的步骤中,我将讲解在 RTX 3090 GPU 上本地运行 FLUX.2 所需的一切。
1. 系统要求与前置条件
在本地运行 FLUX.2 之前,请确保您的系统已为 GPU 推理正确配置。
硬件
NVIDIA 驱动与 CUDA 工具包
在终端运行以下命令以验证安装:
如图所示,我们有一块 RTX 3090 GPU,CUDA 版本为 13。
Python 与 Jupyter
注意:我们使用 Jupyter Notebook 作为编码环境,便于实验、逐步运行推理,并在笔记本中迭代生成与编辑图像。
2. 安装支持 CUDA 的 PyTorch
这一步安装带有 CUDA 支持的 PyTorch,使推理在 GPU 而非 CPU 上运行。下面的命令会安装预编译 CUDA 版本的 PyTorch、TorchVision 与 TorchAudio,无需从源码构建 CUDA。
安装完成后,若可用且配置正确,PyTorch 将自动使用 GPU。
3. 安装 FLUX.2 与所需依赖
接下来安装在本地运行 FLUX.2 所需的核心库。这些软件包负责模型加载、推理、GPU 加速、量化与高效数据传输。
安装完成后,您的环境即可加载 FLUX.2,开始进行图像生成与编辑推理。
4. 验证 GPU 与量化支持
在加载 FLUX.2 之前,我们验证 PyTorch 是否能识别 GPU 以及是否支持 4 比特量化。此步骤对于确保模型在 RTX 3090 的内存限制内高效运行非常重要。
输出将确认 PyTorch 已正确安装且支持 CUDA,您的 RTX 3090 已被检测到,并且
bitsandbytes正常工作并启用了 4 比特量化,系统已准备好进行高效的 GPU 推理。5. 使用 4 比特量化加载 FLUX.2
此步骤将以4 比特量化检查点加载FLUX.2 [dev],以降低 GPU 显存占用,同时保持较高图像质量。这对于在 RTX 3090 上运行像 FLUX.2 这样的大模型至关重要。
我们先导入必要库,并定义几个关键设置。
repo_id指向4 比特 FLUX.2 dev 检查点。device选择您的 GPU(第一个 CUDA 设备)。torch_dtype设置推理时的计算精度。bfloat16常用于在保证输出稳定的同时降低内存并提升速度。接着,我们先将 FLUX.2 的图像变换器主干(负责生成图像潜变量的核心组件)加载到 CPU。这能避免初始加载时占满显存,并让管道更灵活地仅在需要时将模块移动到 GPU。
然后同样将文本编码器加载到 CPU。文本编码器会将您的提示转为用于引导图像生成的嵌入。在设置阶段将其留在 CPU,有助于为生成过程中更重的部分保留 GPU 显存。
最后,我们将注入已加载的变换器与文本编码器,组装完整的Diffusers 管道。
关键在于
enable_model_cpu_offload():它开启自动 CPU ↔ GPU 卸载,意味着管道只在实际需要时将模型部分移至 GPU,用完再移回 CPU。这是用消费级 GPU 运行大模型、无需手动管理设备放置的最简单方法之一。6. 运行首个文生图生成
现在可以用 FLUX.2 生成第一张图像了。为简单起见,我们从一个文本提示开始,描述一张极致真实的瓢虫微距照片。
接下来,将提示传给管道并运行推理。
要监控推理期间的显存使用,可打开终端运行:
您应能看到接近 21 GB 的显存占用与较高的 GPU 利用率,表示模型在高效使用资源,并在 RTX 3090 上以满负载运行。
推理完成后,您可在 Jupyter Notebook 中直接显示图像对象以查看结果:
结果高度细腻且逼真。模型紧密遵循提示,同时还加入了诸如光照与质感等未被明确指定的细节。
最后,我们将生成的图像保存到本地:
输出:
7. 使用结构化 JSON 的高级提示
FLUX.2 支持超越纯文本的高级提示方式,可对最终图像进行更细致的控制。利用结构化 JSON 提示,您可以用精确的十六进制色码明确规定场景布局、主体、光照、相机设置、氛围与配色。
在本节中,我们使用结构化 JSON 提示来详细描述场景。我们不再用一句话,而是以清晰有序的格式定义环境、主体、风格、颜色、光照、相机属性与负面约束。
这有助于 FLUX.2 更好地理解复杂指令,并产出更可控且高质量的结果。
随后我们以更多步数运行推理,以捕捉更多细节,同时保持适中的引导系数以获得自然观感。
在 Jupyter Notebook 中显示生成图像:
生成结果紧密遵循结构化提示,准确呈现场景、氛围、光照与构图。
8. 使用 FLUX.2 进行图像编辑(图生图)
FLUX.2 也支持图像编辑:以参考图像为基础,模型根据文本提示进行更改。这在您希望保留人物身份、五官与肤色,但改变主体周围的场景、氛围或环境时尤其有用。
在此示例中,我们使用来自 Pexels.com 的一张印度女性照片作为参考图像:
照片由 cottonbro studio 提供:https://www.pexels.com/photo/a-woman-with-a-nose-piercing-9317190/
我们谨慎设计提示,指示模型保持女性的面部特征与自然肤色,同时改变环境、光照与情绪表达。目标是在不改变其身份的前提下进行编辑。
接着我们加载参考图像并传入管道。FLUX.2 支持多张参考图像,本例仅使用单张图进行引导编辑。
在 Jupyter Notebook 中查看编辑结果:
输出结果非常逼真。模型在自然置入新场景与不同光照、氛围和背景的同时,保留了女性的面部结构与肤色。
成品更像是在不同地点与时刻由专业摄影师拍摄的照片,而非 AI 的简单编辑。
FLUX.2 内存优化提示
根据我的经验,切换到 4 比特量化模型并采用基于代码的 Transformers 与 Diffusers 配置后,本地运行 FLUX.2 才真正变得稳定可靠。
在此之前,当我尝试将过多内容直接加载到 CUDA 上时,即便是 24 GB 的 RTX 3090 也频繁出现内存不足错误。
Stable Diffusion WebUI 与 ComfyUI 等图形界面工具也更容易触及内存上限,因为它们往往会在内存中保留额外的中间缓冲、预览与工作流状态,除非您仔细调整其低显存选项。
显存优化建议(对我确实有效的):
device_map="cpu"),避免一开始就将所有内容推到 CUDA。pipe.enable_model_cpu_offload()),让只有活跃模块驻留在 GPU。nvidia-smi实时监控显存,并关闭其他占用 GPU 的应用。如果按上述步骤仍然遇到内存不足问题,请参考此DataLab 笔记本,获取更多故障排查与内存优化示例。
结语
我对开源图像生成模型的进步由衷感到震撼。
像 FLUX.2 这样的模型在视觉质量与提示理解方面,已能与闭源系统正面竞争。通过合理的环境配置、适度的实验与一些内存优化,即便在消费级 GPU 上,也能本地免费生成高质量、逼真的图像。
最突出的优势在于可控性。高级提示、结构化 JSON、多参考编辑与图生图流程,让您轻松突破简单生成的范畴。
您可以创作电影感场景、为叙事持续演化图像、进行专业级图像编辑,并快速迭代,而无需依赖封闭平台。
对创作者、研究者与开发者而言,这带来了更大的创作自由,也让高端图像生成前所未有地触手可及。