Nuke插件-用 AI 做无痕修图
用 AI 做“无痕修图”:DBFluxFill 开发日志整理
在传统图像处理流程中,“补画面”“修穿帮”“扩画幅”一直是非常耗时的工作。
而随着生成式 AI 的发展,一类新的工具正在改变这一切——基于 Flux Fill 的图像补全技术。
这篇文章,我们来聊一个项目:DBFluxFill,以及它背后的技术逻辑和实际应用价值。
一、这个工具是干嘛的?
简单说一句话:
👉 DBFluxFill = 用 AI 自动“补图”和“改图”的工具
它的核心能力包括:
-
局部修复(Inpainting) -
画面扩展(Outpainting) -
内容替换(比如换物体/改背景) -
AI辅助合成
你可以把它理解为一个更聪明的“PS内容识别填充”,但能力强很多。
二、它是怎么做到的?
DBFluxFill 基于的是一类模型:
👉 Flux Fill(扩散模型的一种)
它的工作方式不是“复制粘贴像素”,而是:
-
读取原图 -
理解上下文(结构 / 光影 / 材质) -
根据提示词(Prompt)重新生成内容
核心流程是:
原图 + Mask(遮罩) + 文本描述 → AI生成 → 输出新图
和传统工具的最大区别是:
👉 它是在“理解画面”之后再生成,而不是简单填充。
三、为什么它比传统方法更强?
1️⃣ 结构一致性更好
不会出现:
-
边缘断裂 -
透视错误 -
光影不统一
2️⃣ 自动匹配环境
比如你修一块天空,它会自动:
-
对齐光照方向 -
匹配云层结构 -
保持色调一致
3️⃣ 可以“改内容”,而不仅是“补内容”
比如:
-
把路人换成树 -
把墙改成窗户 -
把白天改成夜景
五、它适合用在哪?
🎬 VFX / 后期合成(重点)
这个工具在影视后期里非常实用:
-
修绿幕抠像破损 -
补 CG 空洞 -
扩展画面边缘 -
去除穿帮元素
👉 本质上就是:减少手工修图时间
DBFluxFill 是一个 Nuke 小工具,它将FLUX.1 Fill Dev 的图像修复功能直接集成到您的 Nuke 工作流程中。连接图像并点击“生成”按钮。结果将作为读取节点返回到您的节点图中,即可进行合成。
它专为那些可能从未用过 ComfyUI、不太熟悉 Python 或不想学习其他工具的 Nuke 艺术家而设计。安装程序会引导用户完成所有步骤,下载模型组件,设置嵌入式 Python 环境,提供 Nuke Indie 选项,甚至还能帮助您设置 init.py 文件。
许可说明: DBFluxFill 是一个免费的开源工具。其底层 FLUX.1 Fill Dev 模型受FLUX.1 [dev] 许可协议约束。
要求
平台:仅限 Windows 10 或 11
Nuke: Nuke 13.2v8 或更高版本(为 13.2 版本构建,但也在更高版本上测试过)
GPU:需要配备 CUDA 12.4 或更高版本驱动程序的 Nvidia GPU
- 安装程序会在启动时检查驱动程序,如果您的驱动程序过期,则会发出警告。
- 下载最新的Nvidia驱动程序
显存:取决于您选择的型号(请参阅下方的型号列表)
磁盘空间:根据型号不同,可用空间为 23 至 35 GB
Hugging Face账号:必需。下载前,您必须在Hugging Face上接受FLUX.1 Fill Dev许可协议。
安装
步骤 1 — 下载并放置文件夹
<> Code点击页面顶部的绿色按钮。选择Download ZIP并解压缩下载的文件夹。
DBFluxFill-main将其重命名DBFluxFill并复制到您的.nuke目录中:
C:\Users\YourName\.nuke\DBFluxFill\
如果您不确定.nuke文件夹的位置,请打开 Nuke 并在脚本编辑器中运行以下命令:
print(nuke.pluginPath())
您的.nuke文件夹路径将出现在列出的路径之一中。
步骤 2 — 运行安装程序
在文件夹内DBFluxFill,双击setup.bat。
这将启动 DBFluxFill 安装程序,这是一个分步式图形用户界面,可以处理其他所有操作:
- 必要时下载并安装 Python 3.11
- 搭建嵌入式 Python 环境
- 安装所有依赖项(包括正确的 PyTorch CUDA 版本)
- 从 Hugging Face 下载您选择的模型版本
- 写入配置文件

安装程序共有六步:
1— 显示系统要求并检查您的 GPU 和 CUDA 版本。如果您的驱动程序版本过旧或未检测到 Nvidia GPU,安装程序会在继续操作前发出警告。
2— 设置临时 PNG/种子/日志文件和输出渲染文件的默认目录,以及默认文件名。已根据您当前的 Nuke 项目预先填充了合理的默认值。每个字段都支持 Nuke TCL 表达式。您也可以在此处设置 Nuke Indie 模式。
3— 选择要下载的 FLUX.1 Fill Dev 版本。请参阅下方的“版本选择”了解完整对比。
4— 输入您的 Hugging Face 令牌并选择模型存储位置。如果您希望手动下载组件,此屏幕上提供了一个指向手动设置路径的链接。
5— 安装程序会设置嵌入式 Python 环境、安装依赖项并下载模型。此过程所需时间取决于您的网络速度。实时日志会显示进度。
6——显示已安装内容的摘要,并显示您需要添加到您的代码片段init.py。请参阅下面的步骤 3。
步骤 3 — 更新你的 init.py 文件
安装程序完成屏幕会显示一段代码片段。请将其添加到您的.nuke/init.py文件中。代码片段内容如下:
import DBFluxFillnuke.pluginAddPath('./DBFluxFill')
如果你还没有文件夹init.py,完成屏幕会提示您创建一个。安装程序还有一个按钮,可以打开.nuke资源管理器中的文件夹,方便您轻松找到该文件。
完成上述步骤后,重启 Nuke。DBFluxFill 将出现在工具栏中。
FLUX.1 Fill Dev 支持三个版本。所有三个版本都需要您在下载前在 Hugging Face 上接受 FLUX.1 Fill Dev 许可协议。
| bf16 | fp8 | gguf | |
|---|---|---|---|
| 显存 | 建议使用 16 GB 以上内存 | 建议使用 12 GB 以上内存 | 建议使用 10 GB 以上的存储空间 |
| 磁盘 | 约 34.3 GB | 约 22.3 GB | 约 23.1 GB |
| 速度 | 基线 | 快点 | 条件 |
| 质量 | 满的 | 略有取舍 | 略有取舍 |
| 来源 | 黑森林实验室(官方) | AlekseyCalvin + BFL 组件 | YarvixPA Q5_1 + BFL 组件 |
bf16
官方 FLUX.1 Fill Dev 版本,采用完整扩散器格式。最高品质,对显存要求最高。如果您拥有 16GB 以上的显存并追求最佳品质,这是您的最佳选择。
- HuggingFace:black-forest-labs/FLUX.1-Fill-dev
fp8
使用基于 AlekseyCalvin 仓库的 fp8 量化版本,仅对 config.json 文件进行了少量修改。速度明显快于 bf16,但画质略有损失。需要 Ampere 架构或更新的 GPU(RTX 30xx+)。
下载完成后,安装程序会config.json自动将所需的补丁应用到转换器上。
- HuggingFace:AlekseyCalvin/FluxFillDev_fp8_Diffusers
gguf
使用 YarvixPA 的 GGUF Q5_1 量化转换器,以及官方的 BFL VAE、编码器和调度器。三种版本中显存占用最低。适用于 10-12 GB 及更老的显卡。
安装程序会应用所需的config.json补丁并将.gguf文件正确放置。
- HuggingFace:YarvixPA/FLUX.1-Fill-dev-GGUF
如果以后需要切换版本,请重新运行安装程序setup.bat并选择其他版本。安装程序将更新依赖项并重写文件config.json。如果要释放先前版本占用的磁盘空间,请在重新运行安装程序之前删除 models 文件夹。
手动模型设置
如果您更喜欢自行下载模型组件而不是使用 Hugging Face 令牌,请在安装程序的“模型设置”屏幕上选择“我想手动配置模型组件” 。
手动安装界面列出了所有必需组件,并提供指向相应 Hugging Face 代码库的直接链接以及大致文件大小。您只需将安装程序指向每个组件的本地目录,它就会相应地写入配置。
按变体划分的组件
bf16 组件:
所有组件均来自black-forest-labs/FLUX.1-Fill-dev。模型目录下的预期文件夹结构如下:
models/
transformer/
vae/
text_encoder/
text_encoder_2/
tokenizer/
tokenizer_2/
scheduler/
fp8组件:
所有组件均来自AlekseyCalvin/FluxFillDev_fp8_Diffusers。文件夹结构应与上述 bf16 模型目录相匹配。
下载完成后,必须transformer/config.json用 BFL 仓库中的文件覆盖black-forest-labs/FLUX.1-Fill-dev/transformer/config.json。手动设置屏幕会显示此组件的 config.json 行。
gguf 组件:
- 转换器文件:
flux1-fill-dev-Q5_1.gguf从YarvixPA/FLUX.1-Fill-dev-GGUF下载并将其放置在一个transformer/文件夹中 transformer/config.json:从black-forest-labs/FLUX.1-Fill-dev复制。手动设置屏幕显示了此组件的 config.json 行。- 所有其他组件:来自black-forest-labs/FLUX.1-Fill-dev

设置节点
- 从工具栏添加
DBFluxFill到节点图(或在节点图中搜索)。 - 将图像连接到img输入端口,将蒙版连接到mask输入端口。如果您不想使用 mask 输入端口,可以将 alpha 通道嵌入到 image 输入端口中,该控件支持这两种方式。
- 您的图像和蒙版将自动裁剪并缩放至有效的 FLUX 分辨率(16 的倍数,最小 272×272)。如果您的图像在任一方向上大于 2048 像素或小于 512 像素,则该工具会在生成前发出警告。
生成

🧩 主面板(Main tab)参数说明
Prompt(提示词)
用于描述你希望在遮罩区域生成的内容。
👉 通常不是必须的,但可以用来引导生成结果。
Seed(随机种子)
-
设为 -1:每次运行都会随机生成结果 -
输入具体数值:可复现相同结果 - Randomize 按钮
:自动设为 -1
Steps(迭代步数)
扩散模型的采样步数,默认 20。
-
数值越高 → 细节越丰富 -
同时 → 生成速度越慢
Guidance(引导强度)
控制生成结果对 Prompt 的遵循程度,默认 2.5。
-
数值高 → 更贴合 Prompt -
数值低 → 更自由/更贴近原图
Prev Selector(预览切换)
切换 Viewer 显示内容:
-
原始输入图像 -
发送给 FLUX 的“预处理后图像”
👉 用于检查模型实际看到的内容(非常实用)
Mask Overlay(遮罩叠加)
在 Viewer 中叠加红色遮罩
👉 用于查看遮罩覆盖范围
Frame Hold(帧锁定)
指定用于生成的输入帧
👉 默认使用你创建节点时 Viewer 当前帧
Mask Invert(遮罩反转)
反转填充区域:
-
原本不处理 → 变成处理区域 -
原本处理 → 变成保留区域
Crop to Mask(裁剪到遮罩)
默认开启
-
开启:只处理遮罩区域(加 padding) → 更快 -
关闭:整张图送入模型 → 更慢但更完整
Crop Padding(裁剪边距)
当开启 Crop to Mask 时,在遮罩边界外增加的像素范围
👉 默认:25 像素
📂 路径面板(Paths tab)
默认路径来自安装时生成的 config.json
Temp Dir(临时目录)
生成过程中中间 PNG 文件的存储位置
👉 支持 TCL 表达式
Output Dir(输出目录)
最终生成图像的保存位置
👉 支持 TCL 表达式
Output Name(输出文件名)
最终输出的文件名
👉 所有输出为 16-bit PNG
▶️ 生成相关说明
点击 Generate(生成) 时:
-
Nuke 会弹出一个命令行窗口(Command Prompt) -
显示模型推理进度 -
在此期间:
👉 Nuke 会暂时无响应(卡住)
这是正常行为(详见 Important Notes)
⚡ Generate (Keep Loaded) 模式
这个模式是性能关键👇
Generate (Keep Loaded) 会:
-
打开一个常驻的 PowerShell 窗口 -
将模型一直保留在 GPU 显存中
👉 好处:
-
后续生成 无需重复加载模型 -
速度大幅提升
Unload Model(卸载模型)
使用完后点击:
-
关闭 PowerShell 窗口 -
释放显存(VRAM) -
清理临时日志文件
📥 生成结果
当生成完成后:
-
Nuke 会自动在节点图中创建一个 Read 节点 -
加载生成结果
该 Read 节点包含一个:
👉 DBFluxFill Settings 面板
记录以下信息(只读):
-
Seed -
Steps -
Guidance -
Prompt
👉 用于结果复现和参考


⚠️ 重要说明(Important Notes)
🧊 Nuke 在生成时会卡住(正常现象)
当你点击 Generate(生成) 时:
- Nuke
会暂时无响应(卡住) -
同时会弹出一个命令行窗口(Command Prompt) -
该窗口会显示模型推理进度
👉 这是正常行为
原因:
-
推理是在子进程(subprocess)中运行 -
使用独立的 Python 环境 -
目的是让模型内存(尤其是显存)与 Nuke 隔离
🚀 性能优化建议
使用:
👉 Generate (Keep Loaded)
效果:
-
模型会常驻 GPU 显存(VRAM) -
后续生成不需要重新加载模型 -
显著加快多次生成速度
💻 仅支持 Windows
该工具:
-
仅在 Windows 平台开发和测试 - 不支持 macOS / Linux
⚙️ config.json 配置文件
配置文件路径:
.nuke/DBFluxFill/config.json
该文件保存:
-
临时目录(Temp Dir) -
输出目录(Output Dir) -
输出文件名(Output Name)
👉 可以随时手动修改
👉 无需重新运行安装程序
🎬 Nuke 版本要求
-
最低支持:Nuke 13.2 -
开发版本:Nuke 13.2v8 -
已在更高版本中测试可用
🎮 显存(VRAM)说明
文档中的显存要求:
👉 是“建议值”,不是硬性限制
实际情况:
-
显存不足时仍可能运行 -
但会出现: -
速度变慢 -
或直接内存溢出(OOM)
📐 分辨率限制
Gizmo 会在以下情况发出警告:
-
图像尺寸 大于 2048px -
或 小于 512px
建议:
-
❌ 不建议使用超大分辨率(容易爆显存) -
❌ 太小的图像会导致: -
结果质量差 -
输出不可预测
⚡ fp8 模式硬件要求
fp8 模型特点:
-
使用 float8 量化 -
更节省显存、更快
但要求:
👉 必须使用 Ampere 架构或更新 GPU
支持:
-
RTX 30 系列(30xx) -
RTX 40 系列(40xx)
不支持:
-
RTX 20 系列(Turing) -
更旧显卡
🧾 Nuke Indie 支持
DBFluxFill 支持 Nuke Indie 版本
👉 Indie 模式影响:
-
文件操作方式 -
UI 对话框行为
使用注意:
安装时:
-
勾选 Indie mode 选项
或者:
-
在 config.json中手动修改该参数
🧠 一句话总结
👉 这是一个:
“外部AI推理 + Nuke桥接”的工具
特点:
-
稳定 ✔ -
隔离内存 ✔ -
但会卡 UI ❗
https://github.com/drberkowitz/DBFluxFill
夜雨聆风