ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

FLUX.1 Kontext [dev] 图像编辑实战指南:基于 FLUX 开源仓库的指令式图片编辑与 TensorRT 推理

FLUX.1 Kontext [dev] 图像编辑实战指南:基于 FLUX 开源仓库的指令式图片编辑与 TensorRT 推理 FLUX.1 Kontext [dev] 图像编辑实战指南基于 FLUX 开源仓库的指令式图片编辑与 TensorRT 推理【免费下载链接】fluxOfficial inference repo for FLUX.1 models项目地址: https://gitcode.com/GitHub_Trending/flux49/fluxFLUX.1 Kontext [dev] 是 Black Forest Labs 开源的 12B 参数图像编辑模型能够根据自然语言指令直接修改现有图片无需任何微调即可保持角色、风格与物体的一致性。本文以 docs/image-editing.md 为核心结合本仓库的 CLI 源码与采样实现系统讲解权重获取、命令行调用、交互式编辑、采样原理、内容安全过滤与 TensorRT 加速推理帮助你直接用本地开源权重完成换 Logo、改元素、连环编辑等图像编辑任务。模型概览为什么图像编辑需要专门模型根据 model_cards/FLUX.1-kontext-dev.md 的说明FLUX.1 Kontext [dev]是一个 12B 参数的 rectified flow transformer修正流 Transformer核心能力是基于文本指令编辑图像。它与传统 img2img 的加噪再重采样思路不同而是在潜在空间中直接接受输入图像序列作为上下文条件因此具备以下关键特性根据一条编辑指令修改现有图像例如把 Logo 替换为 Black Forest Labs 字样无需任何微调即可引用图片中的角色、风格与物体鲁棒的连续性可以连续多次编辑同一张图而几乎不产生视觉漂移使用 guidance distillation引导蒸馏训练推理步数更少、更高效权重开源供科学研究与艺术家创新工作流使用。本仓库将flux-dev-kontext作为一个独立模型配置注册在 src/flux/util.py 中其结构与 FLUX.1 [dev] 一致in_channels64、hidden_size3072、depth19、depth_single_blocks38、guidance_embedTrue也就是说它复用了 FLUX 的 DiT 主干但通过特殊的输入序列组织方式获得了编辑能力详见下文采样原理。开源权重与许可信息文档中给出了当前可用的开源权重信息NameHuggingFace repoLicensesha256sumFLUX.1 Kontext [dev]black-forest-labs/FLUX.1-Kontext-devFLUX.1-dev Non-Commercial License843a26dc765d3105dba081c30bce7b14c65b0988f9e8d14e9fbc8856a6deebd5自编码器autoencoder权重随各模型仓库一同发布ae.safetensors。需要说明的是该模型遵循 FLUX.1-dev 非商用许可生成结果可用于个人、科研与商业目的但对部分场景有使用限制商用前请仔细阅读许可条款。环境准备与安装仓库要求 Python 3.10见 pyproject.toml。标准安装方式cd $HOME git clone https://github.com/black-forest-labs/flux cd $HOME/flux python3.10 -m venv .venv source .venv/bin/activate pip install -e .[all]若需要使用 TensorRT 加速推理则需要额外安装 NVIDIA PyTorch 容器并安装 TensorRT 支持enroot import docker://$oauthtokennvcr.io#nvidia/pytorch:25.01-py3 enroot create -n pti2501 nvidiapytorch25.01-py3.sqsh enroot start --rw -m ${PWD}/flux:/workspace/flux -r pti2501 cd flux pip install -e .[tensorrt] --extra-index-url https://pypi.nvidia.com[tensorrt]可选依赖在 pyproject.toml 中声明包含tensorrt-cu12、onnx、onnxruntime、onnx-graphsurgeon与polygraphy等。权重获取自动下载、手动放置与环境变量启动任意 demo 时模型权重会从 HuggingFace自动下载到checkpoints/目录由 src/flux/util.py 中的CHECKPOINTS_DIR控制每个模型按其 repo_id 建立独立子目录。由于FLUX.1-Kontext-dev是 gated 仓库首次下载可能需要登录 HuggingFace 并接受许可条款可通过HF_TOKEN环境变量或huggingface-cli login完成认证详见 get_checkpoint_path 的认证逻辑。除自动下载外还有两种手动方式手动下载后放入checkpoints/把flux1-kontext-dev.safetensors与ae.safetensors放到checkpoints/对应目录通过环境变量手动指定路径export FLUX_MODELyour model path here export FLUX_AEyour autoencoder path here命令行使用交互模式与单次生成仓库通过 src/flux/main.py 将kontext注册为python -m flux的子命令另有t2i、control、fill、redux。核心入口实现在 src/flux/cli_kontext.py。交互式采样推荐用于反复试验python -m flux kontext --loop--loop模式会先询问下一步提示词再询问输入图片路径每轮生成结束后可继续输入新的 prompt 与图片非常适合连续编辑同一张图或快速尝试多种编辑指令。单次生成python -m flux kontext \ --img_cond_path path_to_input_image \ --prompt your_prompt \ --num_steps 30 --aspect_ratio 16:9 --guidance 2.5 --seed 1其中--num_steps、--aspect_ratio、--guidance、--seed均为可选参数。不指定--aspect_ratio时输出分辨率默认跟随输入图片的偏好分辨率见下文。完整参数表根据 cli_kontext.py 的main()签名可用参数如下参数默认值说明--nameflux-dev-kontext模型名当前仅支持flux-dev-kontext其余会触发断言--img_cond_pathassets/cup.png输入编辑图片路径支持 jpg/jpeg/png/webp--promptreplace the logo with the text Black Forest Labs编辑指令文本--num_steps30采样步数--guidance2.5引导强度模型经 guidance distillation 训练--seedNone随机种子缺省时自动随机--aspect_ratioNone输出宽高比如16:9缺省时跟随输入图--devicecuda无 GPU 时为cpu推理设备--offloadFalse低显存模式T5/CLIP/自编码器按需在 CPU/GPU 间搬运--output_diroutput输出目录文件名为img_{idx}.jpg自动续号--add_sampling_metadataTrue将 prompt 写入输出图 EXIF 元数据--loopFalse交互模式--trtFalse使用 TensorRT 后端--trt_transformer_precisionbf16Transformer 精度bf16/fp8/fp4_sdvd32--track_usageFalse商用许可的用量上报需BFL_API_KEY交互模式的斜杠命令在--loop交互模式中输入以/开头的命令可实时调整采样参数见 parse_prompt/ar width:height— 设置输出宽高比例如/ar 16:9输入/ar auto则恢复为输入图片分辨率/h height— 直接指定输出高度自动对齐到 16 的倍数如/h 1024/g guidance— 设置引导强度/s seed— 设置随机种子/n steps— 设置采样步数/q— 退出交互会话。输入图片阶段同样支持/q退出直接回车表示沿用上一轮图片直接输入图片路径则替换编辑对象见 parse_img_cond_path。采样原理图片如何成为编辑上下文理解 Kontext 的编辑能力来源有助于调出更好的参数。关键实现在 src/flux/sampling.py 的prepare_kontext()中读取并规整输入图打开输入图片后按宽高比从PREFERED_KONTEXT_RESOLUTIONS见 src/flux/util.py共 17 种从672x1568到1568x672的训练分辨率中挑选最接近的一种再以 LANCZOS 重采样到该尺寸——Kontext 在这些特定分辨率上训练使用它们效果更佳自编码器编码输入图经ae.encode()进入潜在空间并按 2x2 patch 打包为序列rearrange(..., ph2, pw2)构建条件序列编码后的图片 token 作为img_cond_seq并生成位置编码img_cond_seq_ids其第一维置为 1以与待生成图像区分见代码注释生成目标噪声get_noise()以指定 seed 在目标分辨率上生成初始噪声img文本与序列拼接prepare()编码 prompt 得到 T5 与 CLIP 特征在 denoise 循环中img_cond_seq会被拼接进输入序列、img_cond_seq_ids拼进位置编码从而让模型看着原图序列逐 timestep 去噪出新图。去噪结束后潜在表示经unpack()还原为像素张量再由自编码器解码回像素空间bfloat16 autocast 下执行ae.decode()最后经 save_image 保存输出会嵌入 48 位隐形水印写入 EXIFSoftwareAI generated;img2img;flux、Modelflux-dev-kontext、ImageDescriptionprompt并以 JPEG quality95 落盘。get_schedule()会依据图像序列长度动态计算时间步偏移mu在 0.5 与 1.15 之间按序列长度线性插值见 sampling.py这也解释了为何不同分辨率下推荐步数略有差异。内容安全过滤CLI 在三个环节都接入了内容过滤见 cli_kontext.py输入 prompt、输入图片与输出图片。过滤器基于mistral-community/pixtral-12b视觉语言模型判断是否存在版权角色、商标或公众人物并叠加Falconsai/nsfw_image_detection分类器阈值 0.85拦截 NSFW 内容实现细节见 src/flux/content_filters.py。被拦截时交互模式会提示更换 prompt/图片单次模式则直接结束。注意该过滤并不能替代人工审查依据 FLUX.1 [dev] 非商用许可部署时必须配套过滤或人工审核机制。TensorRT 加速推理仓库为 Kontext 提供了完整的 TensorRT 推理路径。启用方式python -m flux kontext --loop --trt --trt_transformer_precision precision其中precision可取bf16、fp8或fp4_sdvd32。从 src/flux/trt/trt_manager.py 可看到合法精度集合为{bf16, fp8, fp4, fp4_sdvd32}Transformer与{bf16, fp8}T5通过环境变量TRT_T5_PRECISION设置默认bf16。启用--trt后CLI 会调用check_onnx_access_for_trt()src/flux/util.py从对应的 ONNX 仓库black-forest-labs/FLUX.1-Kontext-dev-onnx按所选精度下载 ONNX 模型通过TRTManager.load_engines()trt_manager.py为 CLIP、Transformer、T5 三个模块构建并加载 TensorRT engineengine 缓存目录默认checkpoints/trt_engines可用环境变量TRT_ENGINE_DIR覆盖之后按与 PyTorch 路径相同的采样循环执行推理只是模型替换为 TensorRT engine。前提条件需按上文Local installation with TensorRT support安装 NVIDIA PyTorch 容器并pip install -e .[tensorrt]且 ONNX 模型同样位于 gated 仓库首次需要登录并接受许可。由于 engine 需针对分辨率构建动态形状trt_static_shapeFalse由 CLI 默认启用方便不同宽高比下复用。商用许可与用量上报若要将开源权重用于商业用途需要与 Black Forest Labs 取得商业许可。仓库为此提供了自动用量上报实现见 README 的 Licensing models for commercial use 一节export BFL_API_KEYyour_api_key_here随后正常调用即可python -m flux kontext --track_usage --loop单次生成上报python -m flux kontext --track_usage --prompt replace the logo with the text Black Forest Labs底层通过 track_usage_via_api 将每次生成数 POST 到 BFL 许可 APIflux-dev-kontext对应的 slug 为flux-1-kontext-dev。该机制同样适用于 FLUX.1 [dev] 与 FLUX.1 Tools 系列模型仅在商用场景下必需。快速上手路线图pip install -e .[all]安装仓库TensorRT 场景改用[tensorrt]并基于 NVIDIA PyTorch 容器准备一张jpg/png/webp输入图与一句编辑指令如replace the logo with the text Black Forest Labs运行python -m flux kontext --img_cond_path your.png --prompt ...完成首次生成观察output/img_0.jpg用--loop模式连续迭代编辑用/ar、/n、/g、/s微调效果显存紧张时加--offload追求速度时加--trt --trt_transformer_precision fp8或fp4_sdvd32注意 30 步 guidance 2.5 是文档与源码给定的推荐起点可根据编辑强度上下调整。参考资料模型卡片与风险说明model_cards/FLUX.1-kontext-dev.md官方使用文档docs/image-editing.md本文主体CLI 实现src/flux/cli_kontext.py采样与条件构造src/flux/sampling.py模型配置与分辨率表src/flux/util.pyTensorRT 管理src/flux/trt/trt_manager.py许可model_licenses/LICENSE-FLUX1-dev安装说明README.md如需引用可参考 README 中的 BibTeXlabs2025flux1kontextflowmatchingarXiv:2506.15742与flux2024条目。【免费下载链接】fluxOfficial inference repo for FLUX.1 models项目地址: https://gitcode.com/GitHub_Trending/flux49/flux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表