
在国产海光 DCU 上跑通腾讯 HunyuanVideo-1.5 视频生成模型背景前面分享了 DCU 上部署 MuseTalk 唇形同步模型的经验那个属于改口型的轻量任务。这次挑战的是一个量级完全不同的东西——腾讯混元 HunyuanVideo-1.5 文生视频模型。它要从一句文字描述直接生成一段视频涉及文本编码、LLM 语义理解、视觉编码、文字渲染四大类预训练组件协同权重链路长、显存压力大。这里把完整踩坑过程记录下来给做国产算力适配的同学参考。一、HunyuanVideo-1.5 是什么HunyuanVideo-1.5 是腾讯混元开源的轻量级文生视频Text-to-Video模型。输入一段 Prompt输出一段对应画面动态视频。相比 Sora、Runway 等动辄几十 B 参数的重量级方案它的特点是轻量化设计在控制参数量的前提下尽量保住生成质量对国产卡的显存更友好多模态组件耦合不是单一网络而是文本编码器byT5 LLM 语义编码器Qwen2.5-VL-7B 视觉编码器SigLIP 文字渲染模型Glyph-SDXL-v2的组合可控生成支持分辨率、宽高比、随机种子、CFG 蒸馏加速等参数调节一个实用亮点它能在生成的视频画面里渲染真实文字。比如 Prompt 写A girl holding a paper with words ‘Hello, world!’最终视频中女孩举着的纸上会真的出现这行字——这是靠 Glyph-SDXL-v2 组件实现的。二、本次部署的硬件与软件环境2.1 硬件环境项目规格CPU2× Hygon C86-4G 749032 Core2.0GHz加速卡8× 海光 DCU Z10064GB/卡内存256GB系统/数据盘各 3.6T HDDDCU 驱动6.3.30-V1.4.1a视频生成任务对显存和共享内存要求比唇形同步高不少建议单卡预留 32GB 以上显存、容器--shm-size设到 16G。2.2 经过验证的软件版本组件版本说明Python3.10基础镜像内置diffusers0.35.2扩散模型核心库版本敏感transformers4.51.3文本/LLM 编码器依赖loguru0.7.3日志imageio / imageio[ffmpeg]latest视频读写与编解码pycountrylatest语言代码处理DTK26.04海光 DCU 驱动工具链镜像内置这些版本是实测可用组合彼此有依赖约束不建议随意升级 diffusers / transformers容易触发 API 不兼容报错。三、容器环境搭建3.1 拉取镜像海光官方维护的 DCU 基础镜像已内置 DTK 与 vLLM 运行环境dockerpull harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.9.2-ubuntu22.04-dtk26.04-0130-py3.10-20260202镜像 ID 为f04dd6ead746后续创建容器时用。3.2 启动容器dockerrun-it\--namemodelstest-5\--networkhost\--ipchost\--shm-size16G\--device/dev/kfd\--device/dev/mkfd\--device/dev/dri\-v/opt/hyhal:/opt/hyhal\-v/data/model/:/models/\-v/data/home/fanwh:/workspace/\-v/data/scripts/bench:/bench/\--group-add video\--cap-addSYS_PTRACE\--security-optseccompunconfined\f04dd6ead746\/bin/bash各挂载/设备参数的作用参数作用--device/dev/kfd等暴露 DCU 设备节点容器才能识别加速卡-v /opt/hyhal:/opt/hyhal挂载海光驱动运行时库缺了会找不到设备--shm-size16G视频生成中间张量大共享内存不够会 OOM-v /data/model/:/models/权重持久化到宿主机避免重建容器重新下载视频生成容器比一般推理更吃共享内存遇到Bus error或进程被杀先确认--shm-size是否足够。四、安装 Python 依赖进入容器后克隆仓库并安装组件gitclone https://github.com/Tencent-Hunyuan/HunyuanVideo-1.5.gitcdHunyuanVideo-1.5 pipinstallloguru0.7.3-ihttps://mirrors.aliyun.com/pypi/simple/ pipinstallimageio-ihttps://mirrors.aliyun.com/pypi/simple/ pipinstalldiffusers0.35.2-ihttps://mirrors.aliyun.com/pypi/simple/ pipinstallpycountry-ihttps://mirrors.aliyun.com/pypi/simple/ pipinstalltransformers4.51.3-ihttps://mirrors.aliyun.com/pypi/simple/ pipinstallimageio[ffmpeg]-ihttps://mirrors.aliyun.com/pypi/simple/统一走阿里云镜像下载稳定。注意diffusers和transformers务必锁版本升级后generate.py里部分调用签名会变化直接报错。五、模型权重准备5.1 各组件及作用主模型之外还要补齐 4 类辅助权重缺一不可组件作用来源HunyuanVideo-1.5 主模型视频生成主干网络Tencent-HunyuanGlyph-SDXL-v2画面内文字渲染AI-ModelScopebyt5-small文本编码器googleQwen2.5-VL-7B-InstructLLM 语义编码器约 15GBQwenFLUX.1-Redux-dev视觉编码器SigLIPblack-forest-labs如果只做纯文生视频、不需要画面里出文字Glyph-SDXL-v2 可酌情跳过其余三个编码器必须齐。5.2 下载辅助权重主模型已放在/models/Hunyuan/HunyuanVideo-1.5/的前提下补充其余组件mkdir-p/models/Hunyuan/HunyuanVideo-1.5/text_encoder/Glyph-SDXL-v2/# 文字渲染模型modelscope download--modelAI-ModelScope/Glyph-SDXL-v2\--local_dir/models/Hunyuan/HunyuanVideo-1.5/text_encoder/Glyph-SDXL-v2/# 文本编码器modelscope download--modelgoogle/byt5-small\--local_dir/models/Hunyuan/HunyuanVideo-1.5/text_encoder/byt5-small/# LLM 语义编码器体积最大预留下载时间modelscope download--modelQwen/Qwen2.5-VL-7B-Instruct\--local_dir/models/Hunyuan/HunyuanVideo-1.5/text_encoder/llm/# 视觉编码器modelscope download--modelblack-forest-labs/FLUX.1-Redux-dev\--local_dir/models/Hunyuan/HunyuanVideo-1.5/vision_encoder/siglip/完整权重清单见官方文档checkpoints-download.md。其中 Qwen2.5-VL-7B 约 15GB建议在网络稳定时段或离线拷入。六、推理前必须改的一处代码DCU 适配的 PyTorch 里unpad_input的返回值个数和原始 CUDA 版不一致直接跑会报参数不匹配。需要改掉hyvideo/utils/flash_attn_no_pad.py# 修改前x_unpad,indices,cu_seqlens,max_s,used_seqlens_in_batchunpad_input(# 修改后删掉 used_seqlens_in_batch 这个返回值x_unpad,indices,cu_seqlens,max_sunpad_input(# x_unpad, indices, cu_seqlens, max_s, used_seqlens_in_batch unpad_input(这只是去掉一个多余的返回变量不影响注意力计算逻辑生成效果无差异。七、启动推理7.1 推理脚本 run.sh#!/bin/bash# ---------- 基本参数 ----------PROMPTA girl holding a paper with words Hello, world!IMAGE_PATHnone# 纯文本生视频填 noneSEED1ASPECT_RATIO16:9RESOLUTION480p# 先用 480p 跑通再上更高分辨率OUTPUT_PATH./outputs/output.mp4MODEL_PATH/models/Hunyuan/HunyuanVideo-1.5/# ---------- GPU ----------N_INFERENCE_GPU1# ---------- 速度相关 ----------CFG_DISTILLEDtrue# CFG 蒸馏减少推理步数SAGE_ATTNfalse# DCU 缺 sageattention 依赖必须关SPARSE_ATTNfalseOVERLAP_GROUP_OFFLOADINGfalseENABLE_CACHEfalse# DCU 下关缓存最稳CACHE_TYPEdeepcacheENABLE_STEP_DISTILLfalse# ---------- 质量相关 ----------REWRITEfalse# 关提示词重写需 vLLMDCU 不可用ENABLE_SRfalse# 先关超分跑通再说# ---------- 执行 ----------torchrun--nproc_per_node$N_INFERENCE_GPUgenerate.py\--prompt$PROMPT\--image_path$IMAGE_PATH\--resolution$RESOLUTION\--aspect_ratio$ASPECT_RATIO\--seed$SEED\--rewrite$REWRITE\--cfg_distilled$CFG_DISTILLED\--enable_step_distill$ENABLE_STEP_DISTILL\--sparse_attn$SPARSE_ATTN\--use_sageattn$SAGE_ATTN\--enable_cache$ENABLE_CACHE\--cache_type$CACHE_TYPE\--overlap_group_offloading$OVERLAP_GROUP_OFFLOADING\--sr$ENABLE_SR\--save_pre_sr_video\--output_path$OUTPUT_PATH\--model_path$MODEL_PATH7.2 关键参数说明参数含义DCU 上的建议--resolution输出分辨率先480p稳定后再提--aspect_ratio画面比例支持16:9/9:16/1:1--cfg_distilledCFG 蒸馏加速开true可明显提速--use_sageattnSageAttention必须 falseDCU 无此依赖--enable_cache推理缓存deepcache建议 false兼容性更好--sr超分后处理先关跑通再开--rewritePrompt 重写依赖 vLLMDCU 不可用--seed随机种子固定值可复现7.3 运行与结果bashrun.sh跑完视频落在./outputs/output.mp4。实测 480p 下画面连贯、文字渲染准确女孩手中纸张显示 “Hello, world!”端到端流程打通。八、验证结论维度结论硬件适配主干 UNet、byT5 文本编码、Qwen2.5-VL LLM 编码、SigLIP 视觉编码均可在 DCU Z100 上运行稳定性端到端推理无中断驱动与软件环境匹配生成质量480p 画面流畅画面内文字渲染正确性能取舍关 SageAttention 与缓存后最稳CFG 蒸馏可有效缩短推理步数九、踩坑记录按出现顺序现象根因处理启动报缺文字渲染/编码器权重辅助组件没下全按第五章补齐 Glyph-SDXL-v2、byt5、Qwen2.5-VL、SigLIPunpad_input()返回值数量不匹配DCU 版 PyTorch 返回值更少删掉used_seqlens_in_batch见第六章byT5 加载报mean_resizing参数错误自定义 byT5 未接收该参数sed -i s/mean_resizingFalse// hyvideo/models/text_encoders/byT5/__init__.pySageAttention 依赖缺失DCU 环境未装该库run.sh设SAGE_ATTNfalse开缓存后异常DCU 对 deepcache 兼容一般run.sh设ENABLE_CACHEfalse进程被杀 / Bus error共享内存或显存不足调大--shm-size、先用480p、单卡显存留 32GB经验上HunyuanVideo-1.5 上 DCU 主要过三关权重下齐组件多、体积大、改一行 FlashAttention 代码第六章、关掉不兼容的加速项SageAttention / 缓存。三关过了基本就稳了。参考资料项目仓库GitHub - Tencent-Hunyuan/HunyuanVideo-1.5模型页HunyuanVideo-1.5 · 模型库权重清单checkpoints-download.md如果这份 DCU 文生视频部署记录对你有用欢迎留言交流踩坑经历。后续还会补充更高分辨率 / 开启超分的实际表现。