【实测】海光 DCU K100-AI 单卡部署 ComfyUI Wan2.2 INT8跑通图生视频
一、项目概述
本次测试目标是在海光 DCU K100-AI 单卡环境下,使用 ComfyUI 跑通 Wan2.2 图生视频工作流,并验证 INT8 权重加载、LightX2V LoRA 加速、以及第二轮热启动后的生成耗时。
结果为:
Prompt executed in 00:13:17
也就是约797秒。
ComfyUI 原生 Wan 节点
+ wan_offline_int8_loader
+ Wan2.2 INT8 high/low noise 权重
+ LightX2V 4-step LoRA
+ 单卡 K100-AI
二、测试环境
2.1 机器与容器
| 项目 | 配置 |
|---|---|
| 节点 | 192.168.217.66 |
| 容器 ID | 9b4637fb8077 |
| 加速卡 | 海光 DCU K100-AI |
| 测试卡数 | 单卡 |
| 使用设备 | cuda:0 K100_AI : native |
| 显存 | 65520 MB |
| 主机内存 | 193093 MB |
| PyTorch | 2.9.0 |
| ROCm | (6, 3) |
| ComfyUI | 0.3.56 |
| ComfyUI 路径 | /root/ComfyUI_DEMO/ComfyUI |
| 数据路径 | /data |
| 日志路径 | /data/profiles |
日志中确认的信息:
Total VRAM 65520 MB, total RAM 193093 MB
pytorch version: 2.9.0
AMD arch: gfx928:sramecc+:xnack-
ROCm version: (6, 3)
Device: cuda:0 K100_AI : native
ComfyUI version: 0.3.56
三、使用的工作流
对应的 UI 工作流是:
/data/图生视频(video_wan2_2_14B_i2v)_modi_int8_optim.json
实际 API prompt 记录文件是:
/data/profiles/wan22_int8_optim_r2_prompt.json
对应运行日志:
/data/profiles/comfy_8189_int8_optim_timing.log
四、模型文件准备
4.1 INT8 high / low noise 权重
本次使用两份 Wan2.2 INT8 权重:
wan2.2_i2v_high_noise_14B_int8_lightx2v.safetensors
wan2.2_i2v_low_noise_14B_int8_lightx2v.safetensors
容器中的路径为:
/root/ComfyUI_DEMO/ComfyUI/models/diffusion_models/wan2.2_i2v_high_noise_14B_int8_lightx2v.safetensors
/root/ComfyUI_DEMO/ComfyUI/models/diffusion_models/wan2.2_i2v_low_noise_14B_int8_lightx2v.safetensors
这两个文件实际是 /data 下权重的软链接:
/root/ComfyUI_DEMO/ComfyUI/models/diffusion_models/wan2.2_i2v_high_noise_14B_int8_lightx2v.safetensors -> /data/wan2.2_i2v_high_noise_14B_int8_lightx2v.safetensors
/root/ComfyUI_DEMO/ComfyUI/models/diffusion_models/wan2.2_i2v_low_noise_14B_int8_lightx2v.safetensors -> /data/wan2.2_i2v_low_noise_14B_int8_lightx2v.safetensors
如果需要重新创建软链接,可以执行:
ln -sf /data/wan2.2_i2v_high_noise_14B_int8_lightx2v.safetensors \
/root/ComfyUI_DEMO/ComfyUI/models/diffusion_models/wan2.2_i2v_high_noise_14B_int8_lightx2v.safetensors
ln -sf /data/wan2.2_i2v_low_noise_14B_int8_lightx2v.safetensors \
/root/ComfyUI_DEMO/ComfyUI/models/diffusion_models/wan2.2_i2v_low_noise_14B_int8_lightx2v.safetensors
4.2 LightX2V 4-step LoRA
本次工作流还使用了 high / low noise 两个 LoRA:
/root/ComfyUI_DEMO/ComfyUI/models/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors
/root/ComfyUI_DEMO/ComfyUI/models/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors
工作流中 LoRA 强度为:
strength_model = 1.0
4.3 VAE
使用 VAE:
wan_2.1_vae.safetensors
节点配置:
"vae_name": "wan_2.1_vae.safetensors"
4.4 文本编码器
使用文本编码器:
umt5_xxl_fp8_e4m3fn_scaled.safetensors
节点配置:
"clip_name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors",
"type": "wan",
"device": "default"
五、INT8 Loader 安装
这条路线依赖:
wan_offline_int8_loader
自定义节点安装位置:
/root/ComfyUI_DEMO/ComfyUI/custom_nodes/wan_offline_int8_loader
启动日志里可以看到:
Wan offline INT8 loader custom node installed.
在运行时,loader 成功替换了 Wan 模型里的 Linear 层:
Wan offline INT8 loader: replaced 400 Linear layers.
这是这条单卡 INT8 路线的关键点。
六、启动 ComfyUI 服务
进入容器后,建议先加载环境:
source /opt/dtk/env.sh
如果只跑单卡,可以指定:
export HIP_VISIBLE_DEVICES=0
然后启动 ComfyUI:
cd /root/ComfyUI_DEMO
python ComfyUI/main.py \
--disable-cuda-malloc \
--use-pytorch-cross-attention \
--port 8189 \
--listen 0.0.0.0 \
> /data/profiles/comfy_8189_int8_optim_timing.log 2>&1
如果要后台启动:
cd /root/ComfyUI_DEMO
nohup python ComfyUI/main.py \
--disable-cuda-malloc \
--use-pytorch-cross-attention \
--port 8189 \
--listen 0.0.0.0 \
> /data/profiles/comfy_8189_int8_optim_timing.log 2>&1 &
服务启动后检查:
curl http://127.0.0.1:8189/system_stats
浏览器访问:
http://服务器IP:8189
七、工作流关键参数
7.1 基础图生视频参数
工作流中图生视频节点:
"width": 640,
"height": 640,
"batch_size": 1
帧数由表达式计算:
"expression": "floor (a * b + 1)"
其中:
a = 5
b = 16
所以:
floor(5 * 16 + 1) = 81 帧
也就是说本次是:
640 x 640
81 帧
16 FPS
7.2 采样参数
工作流里使用两个 KSamplerAdvanced,分别对应 high noise 和 low noise 阶段。
总 steps:
20
切分点:
10
所以实际表现为两段采样:
high noise:0 -> 10
low noise:10 -> 20
日志中能看到两段进度条,每段都是 10/10。
采样器:
euler
调度器:
simple
CFG:
3.5
shift:
5.0
seed:
766384517380855
7.3 high noise 模型节点
"unet_name": "wan2.2_i2v_high_noise_14B_int8_lightx2v.safetensors",
"weight_dtype": "default"
对应 LoRA:
"lora_name": "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors",
"strength_model": 1.0
7.4 low noise 模型节点
"unet_name": "wan2.2_i2v_low_noise_14B_int8_lightx2v.safetensors",
"weight_dtype": "default"
对应 LoRA:
"lora_name": "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors",
"strength_model": 1.0
八、提交工作流
如果通过 Web UI 操作,可以在 ComfyUI 页面里导入:
/data/图生视频(video_wan2_2_14B_i2v)_modi_int8_optim.json
然后点击运行。
如果通过 API 提交,可以使用导出的 API prompt:
/data/profiles/wan22_int8_optim_r2_prompt.json
提交方式大致如下:
curl -X POST http://127.0.0.1:8189/prompt \
-H "Content-Type: application/json" \
-d @/data/profiles/wan22_int8_optim_r2_prompt.json
如果需要标准 ComfyUI API 格式,可以包装成:
{
"prompt": {
"...": "这里是 workflow prompt 内容"
},
"client_id": "your-client-id"
}
九、实测结果
9.1 第一轮结果
第一轮日志:
Prompt executed in 00:14:32
也就是:872秒
第一轮里包含较多加载和初始化开销,例如:
VAE load device: cuda:0, offload device: cpu, dtype: torch.bfloat16
CLIP/text encoder model load device: cuda:0, offload device: cpu, current: cpu, dtype: torch.float16
Wan offline INT8 loader: replaced 400 Linear layers.
第一轮采样日志中能看到两段 10 step:
100%|██████████| 10/10 [06:36<00:00, 39.67s/it]
100%|██████████| 10/10 [05:53<00:00, 35.39s/it]
Prompt executed in 00:14:32
9.2 第二轮结果,也就是 797 秒
第二轮在不关闭服务的情况下继续提交。模型、VAE、文本编码器已经热起来,因此总耗时下降。
日志结果:
Prompt executed in 00:13:17
第二轮采样日志:
100%|██████████| 10/10 [05:54<00:00, 35.47s/it]
100%|██████████| 10/10 [05:53<00:00, 35.39s/it]
Prompt executed in 00:13:17
可以看到第二轮两段采样都稳定在 35 秒左右一段平均 step 时间。
9.3 结果汇总
| 轮次 | 状态 | 耗时 |
|---|---|---|
| 第一轮 | 成功 | 00:14:32,约 872 秒 |
| 第二轮 | 成功 | 00:13:17,约 797 秒 |
对应日志:
/data/profiles/comfy_8189_int8_optim_timing.log
对应第二轮 prompt:
/data/profiles/wan22_int8_optim_r2_prompt.json
对应第二轮 run 记录:
/data/profiles/wan22_int8_optim_r2_run.json
十、关键日志说明
10.1 单卡确认
日志里显示:
Device: cuda:0 K100_AI : native
说明本次是单卡。
10.2 INT8 loader 生效
日志里显示:
Wan offline INT8 loader custom node installed.
Wan offline INT8 loader: replaced 400 Linear layers.
说明 INT8 权重加载和 Linear 替换生效。
10.3 注意 Flash Attention 日志
日志里有:
Warning: sdpa adopt the new interface of flash-attn
以及:
Using pytorch attention
说明这条路线里 attention 相关实现和当时安装的 FA 包有关,但本次 797 秒结果主要对应的是 INT8 optim 工作流本身。
十一、常见问题
11.1 这条路线用了几张卡?
单卡。
日志中设备是:
cuda:0 K100_AI
如果要强制单卡,启动前设置:
export HIP_VISIBLE_DEVICES=0
11.2 为什么第二轮更快?
第一轮会加载 VAE、CLIP、模型权重,并执行 INT8 Linear 替换。第二轮复用已加载的模型与缓存,所以总耗时更低。
11.3 为什么进度条是两段 10/10?
Wan2.2 I2V 有 high noise 和 low noise 两个模型阶段。工作流里总 steps 是 20,切分点是 10,所以日志上表现为两段:
high noise: 10 steps
low noise: 10 steps
十二、结论
本次在海光 DCU K100-AI 单卡上,使用 ComfyUI 原生 Wan2.2 图生视频工作流,加载 INT8 high/low noise 权重,并通过 wan_offline_int8_loader 替换 400 个 Linear 层,成功完成 640x640、81 帧、20 steps 的图生视频生成。
最终单卡第二轮热启动耗时:
797 秒
整体流程稳定,适合作为单卡 INT8 路线的部署参考。
更多推荐

所有评论(0)