Kandinsky 5.0 的 Image Editing 系列模型凭借 1K 分辨率输出、高视觉质量、强文字生成能力及俄语概念理解等特性,成为图编辑领域的重要选项。针对 24G 显存的 RTX 4090 显卡,通过 CPU Offloading、模型量化等优化配置,可实现运行。本文将从环境搭建、核心优化配置、实操步骤到常见问题排查,全面讲解使用流程。
一、环境准备
1. 基础环境要求
- 硬件:RTX 4090(24G 显存)
- 系统:Linux
- 软件依赖:
- Python 3.9+
- PyTorch 2.8+(需匹配 CUDA 12.8+)
- CUDA 12.8.1(官方推荐版本,确保 GPU 算力充分利用)
- 其他依赖库(通过 requirements.txt 安装)
2. 环境搭建步骤
(1)克隆仓库并进入目录
运行
bash
git clone https://github.com/kandinskylab/kandinsky-5.git
cd kandinsky-5
(2)安装依赖包
优先使用官方推荐的依赖版本,避免兼容性问题: 运行
bash
pip install -r requirements.txt
注意:RTX 4090 无需安装 Flash Attention 3(Hopper 架构专属优化),默认使用 PyTorch SDPA 注意力机制即可,减少显存占用。
(3)下载图编辑模型
无需下载全部模型,仅指定 Image Editing 相关模型,节省存储空间和显存开销:
运行
bash
export HF_ENDPOINT=https://hf-mirror.com
# 仅下载图编辑核心模型,需要使用自己在hugging face上生成的token。https://huggingface.co/settings/tokens
python download_models.py --models kandinskylab/Kandinsky-5.0-I2I-Lite --hf_token hf_xxxxxx
二、核心优化配置:24G 显存适配关键
RTX 4090(24G 显存)运行 Kandinsky 图编辑模型的核心是通过CPU Offloading 、模型量化 、注意力引擎选型三重优化,将显存占用控制在 24G 以内。以下是关键配置说明:
1. CPU Offloading(核心显存优化)
通过将部分模型层(如 VAE、文本编码器)卸载到 CPU 运行,仅保留核心生成模块(DiT)在 GPU,可大幅降低显存占用。Kandinsky 支持自动分层卸载,无需手动指定层分配,仅需通过参数启用。
2. Qwen 编码器量化
启用 NF4 量化(基于 bitsandbytes),可将文本编码器(Qwen2.5-VL)的显存占用降低约 40%,且不影响生成质量。该优化对图编辑任务的文本指令理解能力无明显影响,是 24G 显存的必选配置。
3. 注意力引擎选型
RTX 4090 支持 PyTorch SDPA(原生支持,无需额外安装),相比 Flash Attention 2/3,SDPA 在 24G 显存场景下更稳定,且能减少编译开销。默认使用auto模式会自动适配最优引擎,也可手动指定 SDPA。
4. 分辨率与步长控制
- 推荐分辨率:1024×1024(默认最优)或 1280×768(宽高比适配),避免超过 1920×1080(显存占用会激增)。
- 采样步长(NFE):默认 100 步,可降至 75 步(显存节省约 15%,质量损失极小)。
三、实操步骤:图编辑完整流程
1. 命令行模式(快速上手)
通过test.py脚本,结合优化参数直接运行图编辑任务,适合快速验证效果。
基本语法:
运行
bash
python test.py \
--config ./configs/k5_lite_i2i_sft_hd.yaml \
--prompt "替换指令" \
--image "输入图片路径" \
--width 1024 \
--height 1024 \
--offload # 启用CPU Offloading
--qwen_quantization # 启用Qwen编码器量化
--attention_engine=sdpa # 指定SDPA注意力引擎
--nfe 75 # 可选:降低采样步长
示例:将图片中的猫替换为哈士奇(保留背景不变)

运行
bash
python test.py \
--config ./configs/k5_lite_i2i_sft_hd.yaml \
--prompt "Replace the cat with a husky, leave the rest unchanged" \
--image "./assets/cat_in_hat.png" \
--width 1024 \
--height 1024 \
--offload \
--qwen_quantization \
--attention_engine=sdpa

2. Python 脚本模式(灵活定制)
通过编写 Python 脚本,可实现更精细的参数控制(如种子固定、输出路径自定义等),适配复杂场景。
完整脚本示例:
运行
python
import torch
from kandinsky import get_I2I_pipeline
# 1. 设备映射与优化配置(核心适配24G显存)
device_map = {
"dit": torch.device('cuda:0'), # 核心生成模块保留在GPU
"vae": torch.device('cuda:0'), # VAE轻量,可留在GPU;若显存紧张可改为'cpu'
"text_embedder": torch.device('cuda:0') # 量化后显存占用低,优先GPU
}
# 2. 加载图编辑流水线(启用Offloading和量化)
pipe = get_I2I_pipeline(
resolution=1024, # 适配24G显存的最优分辨率
offload=True, # 启用CPU Offloading
device_map=device_map,
conf_path="./configs/k5_lite_i2i_sft_hd.yaml",
qwen_quantization=True # 启用Qwen编码器NF4量化
)
# 3. 设置注意力引擎(SDPA适配4090)
pipe.set_attention_engine("sdpa")
# 4. 执行图编辑任务
out = pipe(
prompt="Turn this into a neon sign hanging on a brick wall in a cool modern office", # 编辑指令
image="./assets/test_image.jpg", # 输入图片路径
seed=42, # 固定种子,确保结果可复现
nfe=75, # 采样步长(降低显存占用)
save_path="./edited_neon_sign.png" # 输出路径
)
# 5. 保存结果
out[0].save("./final_edited_image.png")
print("图编辑完成,结果已保存!")
3. 关键参数说明
| 参数 | 作用 | 推荐值 |
|---|---|---|
--offload |
启用 CPU Offloading,卸载部分模型到 CPU | 必选(24G 显存场景) |
--qwen_quantization |
Qwen2.5-VL 编码器 NF4 量化 | 必选(节省 40% 文本编码器显存) |
--attention_engine |
选择注意力引擎 | sdpa(4090 最优) |
--resolution |
输出分辨率 | 1024×1024(或 1280×768) |
--nfe |
采样步长 | 75-100(平衡质量与显存) |
--magcache |
启用 MagCache 加速(仅支持 SFT 模型) | 可选(加速生成,不增加显存) |
四、显存占用优化验证
在 RTX 4090(24G)上,启用上述优化配置后,各环节显存占用如下:
- 模型加载阶段:约 16-18G(Offloading + 量化后降低 30%)
- 生成阶段峰值:约 20-22G(1024×1024 分辨率 + 75 步)
- 剩余显存:2-4G(避免显存溢出,确保系统稳定)
若需进一步降低显存占用,可将 VAE 模块卸载到 CPU(修改
device_map["vae"] = torch.device('cpu')),但生成速度会降低约 10%。
五、与美团龙猫模型的对比参考
在图片编辑场景中,将 Kandinsky 5.0 Image Editing 与美团开源的龙猫模型对比后发现,两者存在明显的体验差异:从实际运行效率来看,Kandinsky 5.0 的生成速度相对较慢,其单图编辑耗时高于龙猫模型。以下是将车换成摩托车的效果,可以和之前文章中龙猫的效果进行比对。
css
python test.py \
--config ./configs/k5_lite_i2i_sft_hd.yaml \
--prompt "Replace the truck with a motorcycle, leave the rest unchanged" \
--image "./assets/truck.jpg" \
--width 512 \
--height 512 \
--offload \
--qwen_quantization \
--attention_engine=sdpa

居然生成的图片只是换了个角度,没有换成摩托车。 
更关键的是,龙猫模型在中文指令理解与适配性上具备显著优势 ------ 对于中文用户常用的表述方式、文化场景相关的编辑需求,龙猫能更精准地捕捉核心意图,减少指令偏差导致的生成误差。
因此,若你的使用场景以中文指令为主,且对运行速度有较高要求,同时希望兼顾开源生态的易用性,优先推荐选择美团龙猫模型;而如果需要 1K 高分辨率输出、俄语概念支持或特定风格化编辑效果,Kandinsky 5.0 仍是值得尝试的备选方案(需接受其速度与中文适配的局限性)。