open-sora-plan适配昇腾开源验证任务心得

举报
yd_237844074 发表于 2024/12/14 11:19:19 2024/12/14
【摘要】 根据任务计划书了解任务内容,主要目的是将 Open-Sora-Plan项目适配至华为的 Ascend(昇腾),确保其在昇腾上能够单卡、多卡推理部署。

Open-Sora-Plan 是由北京大学元语义智能研究组开发的一个面向文本驱动的视频生成开源框架。该项目集成了最新的生成式AI技术,提供了从文字描述生成高质量视频的能力,支持用户通过简单的自然语言提示生成逼真的动态内容。
根据任务计划书了解任务内容,主要目的是将 Open-Sora-Plan项目适配至华为的 Ascend(昇腾),确保其在昇腾上能够单卡、多卡推理部署。

环境准备

在开始使用 Open-Sora-Plan 进行适配和验证任务之前,需要完成以下环境准备工作:

本机实验环境介绍:EulerOS
内核版本:Linux devserver-314b-0 5.10.0-136.12.0.86.r1526_92.hce2.aarch64
NPU:910B
torch 2.4.0
torch-npu 2.4.0
python 3.8

项目下载:git clone https://github.com/PKU-YuanGroup/Open-Sora-Plan
cd Open-Sora-Plan


FFmpeg

FFmpeg 用于视频的解码、编码和处理。
安装方式:(我安装的4.0.2版本)
1.下载

wget https://ffmpeg.org/releases/ffmpeg-<version>.tar.bz2
tar xjvf ffmpeg-<version>.tar.bz2
cd ffmpeg-<version>

2.编译和安装 FFmpeg

./configure \
  --prefix=/usr/local \
  --enable-gpl \
  --enable-nonfree \
  --enable-libass \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-shared \
  --disable-static \

make -j$(nproc)
sudo make install
  1. 验证安装
    ffmpeg -version

注:编译可能需要40分钟左右。


decord安装

办法一:
pip install decord#大概率用不了
办法二:

git clone --recursive https://github.com/dmlc/decord
cd decord
mkdir build && cd build
cmake .. -DUSE_CUDA=0 -DCMAKE_BUILD_TYPE=Release -DFFMPEG_DIR=/dev/shm/dingsong/Open-Sora-Plan/ffmpeg-4.0.2/ffmpeg-4.0.2#FFMPEG安装目录
make

编译完成后

cd ../python 
pwd=$PWD 
echo "PYTHONPATH=$PYTHONPATH:$pwd" >> ~/.bashrc 
source ~/.bashrc 
python3 setup.py install --user

decord-0.6.0安装成功
e58b652dfe2d6accdcc2a04655407ec8.png

报错解决:10da66e4ebe59cd318d64523eefa3f06.png
检测ffmpeg在编译阶段是否生成.so文件,没生成就说明ffmpeg编译安装阶段出了问题再清理内存make一遍。
image.png
报错解决:5b4dbcfa937b4846d931f6480c2384d2.png
可能因为软件版本与内核不兼容,建议切换ffmpeg版本,试了很多遍还是python3.8与ffmpeg4.0.2安装成功。
decord的官方安装解答对CentOS用户没太多帮助,可能会遇见别的错误,如有其他报错可以留言。


模型下载

diffusion model:https://huggingface.co/LanguageBind/Open-Sora-Plan-v1.3.0/tree/main/any93x640x640

vae:https://huggingface.co/LanguageBind/Open-Sora-Plan-v1.3.0/tree/main/vae

text encoder(大小超过100G):https://huggingface.co/google/mt5-xxlhttps://gitee.com/hf-models/mt5-xxl
若下载中断可以在下载文件目录下执行下面代码,可继续下载:

git fetch --all
git reset --hard origin/main

prompt refiner(可选):https://huggingface.co/LanguageBind/Open-Sora-Plan-v1.3.0/tree/main/prompt_refiner


模型推理(默认多卡)

bash scripts/text_condition/npu/sample_t2v_v1_3.sh \
    --model_path "/run/Open-Sora-Plan-v1.3.0/any93x640x640_i2v" \
    --text_encoder_name_1 "/run/mt5-xxl" \
    --ae_path "/run/Open-Sora-Plan-v1.3.0/vae" \
    --guidance_scale 7.5 \
    --num_sampling_steps 100 \
    --sample_method EulerAncestralDiscrete
    --batch_size 32

参数自定义修改.
单卡推理可修改scripts/text_condition/npu/sample_t2v_v1_3.sh脚本中第一行CUDA_VISIBLE_DEVICES=0 torchrun --nnodes=1 --nproc_per_node 1 --master_port 29513 \
推理中:
image.png
text to video 为例 4张910b推理一条大概250s左右
image.png
推理完成结果展示(默认output路径"./test"):
image.png


推理报错处理
期望参数缺少
cadb5b842942e3f297c47a55578014bb.png
可能因为wandb未登录,wandb login也报错

解决方法1:打开config配置文件,删除auths。
cat ~/.docker/config.json
保存内容如下:

{
“HttpHeaders”: {
“User-Agent”: “Docker-Client/18.09.0 (linux)”
}
}

再执行
wandb login <your-api-key>
api需要到官网进行注册。

解决方法2:替换wandb为TensorBoard

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。