FLUX.1-Kontext-dev:图像增强AI模型
用于根据文本指令增强图像的AI模型
目录
Black Forest Labs 已发布 FLUX.1-Kontext-dev,这是一款先进的图像到图像 AI 模型,它可以通过文本指令增强现有图像。
与 FLUX.1-dev 仅通过文本生成图像不同,FLUX.1-Kontext-dev 会同时使用输入图像和文本提示来创建修改版本,同时保留关键元素。
此图像展示了 FLUX.1-Kontext-dev 增强图像的能力。
原始的 Go 标志图像:

通过指令 this gopher rides on the bicycle on the hilly road 进行了转换。结果还不错,对吧?
什么是 FLUX.1-Kontext-dev?
FLUX.1-Kontext-dev 是专为 上下文图像生成和编辑 而设计的。主要功能包括:
- 角色一致性:在多个场景中保留独特的元素(如角色或对象)
- 局部编辑:仅修改图像的特定部分,而不会影响其他部分
- 风格参考:在保持参考图像风格的同时生成新场景
- 图像增强:根据文本指令转换图像
安装
先决条件
您需要:
- 16GB+ 显存 的 GPU(推荐使用 NVIDIA RTX)
- Python 3.8+ 和 pip
- Hugging Face 的访问权限(账户和令牌)
安装步骤
-
如果您还没有 Hugging Face 账户,请在 huggingface.co 上 创建一个账户
-
访问模型页面:https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev
-
接受许可协议(仅限非商业用途)
-
在 https://huggingface.co/settings/tokens 上 创建一个写入访问令牌
-
下载模型:
git clone https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev
或者直接在代码中使用模型路径。
安装
安装所需的 Python 包:
pip install -U diffusers torch transformers pillow accelerate sentencepiece
或者使用 uv:
cd tools/fkon
uv sync
使用方法
基本 Python 脚本
以下是使用 FLUX.1-Kontext-dev 的完整示例:
import torch
from diffusers import FluxKontextPipeline
from PIL import Image
# 加载模型
model_path = "/path/to/FLUX.1-Kontext-dev"
pipe = FluxKontextPipeline.from_pretrained(
model_path,
torch_dtype=torch.bfloat16
)
# 启用 CPU 卸载以节省显存
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()
# 加载输入图像
input_image = Image.open("path/to/your/image.png").convert("RGB")
# 定义增强提示
prompt = "this gopher rides on the bicycle on the hilly road"
# 生成增强图像
result = pipe(
prompt=prompt,
image=input_image,
height=496,
width=680,
guidance_scale=3.5,
num_inference_steps=60,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(42)
)
# 保存结果
output_image = result.images[0]
output_image.save("augmented_image.jpg")
尺寸处理
FLUX.1-Kontext-dev 有特定的尺寸要求:
- 16 的倍数:尺寸应为 16 的倍数
- 自动调整:模型可能会调整尺寸以满足其要求
- 输出调整:我们的工具会自动将输出调整回请求的尺寸
工具通过以下步骤处理:
- 将请求的尺寸四舍五入为 16 的倍数
- 将输入图像调整为四舍五入后的尺寸
- 生成图像(模型可能会进一步调整)
- 将输出调整回您请求的尺寸
示例使用场景
- 角色转换
在保持一致性的同时转换角色:
prompt = "this gopher rides on the bicycle on the hilly road"
- 对象移除
移除不需要的元素:
prompt = "please remove the human dressed as minnie mouse from this photo"
小贴士和最佳实践
- 显存管理:如果显存有限,使用
enable_model_cpu_offload()以节省显存 - 尺寸规划:请求为 16 的倍数的尺寸以减少调整
- 提示清晰度:在文本指令中具体说明以获得更好的结果
- 批量生成:生成多个变体(
--n 4)以获得最佳结果 - 种子控制:使用手动种子以获得可重复的结果
限制
- 非商业许可:商业用途需要商业许可
- 硬件要求高:需要具有大量显存的 GPU
- 尺寸限制:可能会自动调整尺寸
- 处理时间:根据硬件不同,每张图像可能需要 10-15 分钟