云服务器内容精选
-
SD WebUI推理性能测试 以下性能测试数据仅供参考。 开启Flash Attention 生成1280x1280图片,使用Ascend: 1* ascend-snt9b(64GB),约耗时7.5秒。 图1 生成图片耗时(1) 生成1280x1280图片,使用Ascend: 1* ascend-snt9b(32GB),约耗时9.3秒。 图2 生成图片耗时(2) 不开启Flash Attention 生成1280x1280图片,使用Ascend: 1* ascend-snt9b(64GB),约耗时10.1秒。 图3 生成图片耗时(3) 生成1280x1280图片,使用Ascend: 1* ascend-snt9b(32GB),约耗时14.1秒。 图4 生成图片耗时(4) 父主题: SD WEBUI套件适配PyTorch NPU的推理指导(6.3.908)
-
步骤一 导出镜像 完成在DevServer上部署SD WebUI推理服务章节的任务后,在宿主机上执行以下命令,导出镜像。 mv /home/ma-user/sdwebui/stable-diffusion-webui/models/VAE-approx/model.pt /home/ma-user/sdwebui/stable-diffusion-webui/models/VAE-approx/vaeapprox-sdxl.pt docker commit ${container_name} sdxl-train:0.0.1
-
步骤五 部署服务 单击AI应用名称,进入AI应用详情页,单击部署在线服务。 图7 部署在线服务 填写如下服务部署参数。 名称: 服务的名称,按照实际需要填写 是否自动停止:如果配置自动停止,服务会按照配置的时间自动停止。如果需要常驻的服务,建议关掉该按钮。 描述:按照需要填写。 资源池:选择专属资源池。若之前未购买专属资源池,具体步骤请参考创建资源池。 资源规格要求: 硬盘空间:至少200GB。 昇腾资源规格:可以申请Ascend: 1* ascend-snt9b(32GB)或Ascend: 1* ascend-snt9b(64GB)规格。请按需选择需要的规格,64GB规格的推理耗时更短。 推荐使用“西南-贵阳一”Region上的昇腾资源。 AI应用来源: 我的AI应用。 选择AI应用及其版本:此处选择上一步中创建的sdxl-webui-pytorch:0.0.1应用。 计算节点规格: 按需选择Ascend: 1* ascend-snt9b(32GB)或Ascend: 1* ascend-snt9b(64GB)。 图8 填写服务部署参数 选择开启APP认证并选择应用。 图9 开启APP认证 按照上述配置完参数后,单击“下一步”, 确认信息无误后,单击“提交”,完成服务的部署。
-
步骤六 访问在线服务 在Chrome浏览器中安装ModHeader插件。 图10 安装ModHeader插件 Chrome浏览器安装ModHeader插件后,可能会导致访问不了ModelArts平台,访问ModelArts时需要临时禁用ModHeader插件。或者使用Edge登录ModelArts,使用Chrome安装插件访问页面。 打开ModHeader,单击添加MOD。 图11 添加MOD 选择添加Request header。 图12 添加Request header 进入在线服务详情,查看Key值和Value值。 Key值固定为X-Apig-AppCode,Value值为APP认证的app_code值,在服务调用指南tab的APP认证API处展开,进行AppCode管理设置。 图13 获取Key值和Value值 将在ModHeader插件中添加Key值和Value值。 图14 添加Key和value 进入在线服务详情页,查看APP认证方式的服务API。 图15 API接口公网地址 复制API接口公网地址,并在地址后添加"/",进行页面访问,例如: https://infer-app-modelarts-cn-southwest-2.myhuaweicloud.com/v1/infers/abc104bb-d303-4ffb-a8fa-XXXXXXXXX/ 图16 访问在线服务 输入Prompt,修改所需要的请求参数(如Width、Height),进行Prompt请求。 图17 填写请求参数 表1 SDXL模型参数及其含义 参数名称 说明 是否必选 默认值 prompt 提示词,根据提示词生成含有对应内容的图像 是 无 negative_prompt 反向提示词,图像生成过程中应避免的提示 否 无 num_inference_steps 推理步骤数,控制推理的步数 否 40 height 生成图像的纵向分辨率 否 1024 width 生成图像的横向分辨率 否 1024 high_noise_frac 高噪声比例,即基础模型跑的步数占总步数的比例 否 0.8 refiner_switch 是否使用细化模型refiner 否 true(使用) seed 随机种子,控制生成图像的多样性 否 无 您可在ModelArts控制台查看相关日志。 图18 查看相关日志 首次请求时会进行模型加载,耗时较长,因此第一个请求可能超时,第二个请求将会正常,请耐心等待。
-
步骤四 创建AI应用 在ModelArts的AI应用页面,进行AI应用创建。 图3 创建AI应用 填写如下参数信息。 名称:AI应用的名称,请按照实际应用名填写。 版本:版本描述,请按照实际填写。 元模型来源:注意此处选择“从容器镜像选择”。 容器镜像所在路径:单击文件夹标签,选择已经制作好的镜像。 容器调用接口参数:根据镜像实际提供的协议和端口填写,本案例中的SDXL镜像提供HTTP服务和8183端口。 图4 填写参数(1) 系统运行架构: 选择ARM. 推理加速卡:无。 部署类型: 在线服务。 请求模式:同步请求。 启动命令: source /etc/bashrc && python3 launch.py --skip-torch-cuda-test --port 8183 --enable-insecure-extension-access --listen --log-startup --disable-safe-unpickle --skip-prepare-environment --api 按照上述配置完参数后,单击右下角的立即创建, 完成AI应用的创建。 图5 填写参数(2) 当AI应用状态变为正常时,表示创建完成。 图6 AI应用创建完成
-
步骤三 启动 自定义镜像 执行以下命令启动自定义镜像。 docker run -itd --name ${container_name} -p 8183:8183 -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /etc/localtime:/etc/localtime -v /usr/local/Ascend/driver:/usr/local/Ascend/driver -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi --shm-size 60g --device=/dev/davinci_manager --device=/dev/hisi_hdc --device=/dev/devmm_svm --device=/dev/davinci0 --security-opt seccomp=unconfined --network=bridge sdxl-train:0.0.1 bash
-
步骤一 准备环境 请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 购买DevServer资源时如果无可选资源规格,需要联系华为云技术支持申请开通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。 检查环境。 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward、
-
步骤四 进入容器运行 进入容器后执行启动命令。 docker exec -it ${container_name} bash python3 launch.py --port 8183 --skip-torch-cuda-test --enable-insecure-extension-access --listen --log-startup --disable-safe-unpickle --api 等待克隆仓库,下载依赖模型,启动成功后显示如图1所示。 图1 启动成功后显示 如果在安装编译handrefinerportable时出错,则需手动下载whl包: wget https://github.com/huchenlei/HandRefinerPortable/releases/download/v1.0.1/handrefinerportable-2024.2.12.0-py2.py3-none-any.whl pip install handrefinerportable-2024.2.12.0-py2.py3-none-any.whl --no-deps 如果启动不成功,验证PyTorch版本,需要torch==2.1.0。 pip list | grep torch #如果不是2.1.0版本,请重新安装 pip uninstall torch pip install torch==2.1.0 验证效果。 新开启一个终端,执行以下命令。 curl --noproxy '*' -kv -X POST localhost:8183/sdapi/v1/txt2img -H "Content-Type: application/json" -d '{"prompt":"ultrarealistic shot of a furry blue bird"}' 执行成功显示: 图2 执行成功显示 在浏览器输入http://{宿主机ip}:8183,可以访问前端页面,通过输入文字生成图片。 图3 输入文字生成图片 注意需要勾选Enable Flash Attention按钮。 图4 Enable Flash Attention优化按钮
-
软件配套版本 本方案支持的软件配套版本和依赖包获取地址如表1所示。 表1 软件配套版本和获取地址 软件名称 说明 下载地址 插件代码包 AscendCloud-3rdAIGC-6.3.908-xxx.zip 文件名中的xxx表示具体的时间戳,以包名的实际时间为准。 获取路径:Support-E 说明: 如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。
-
镜像版本 本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。 表2 基础容器镜像地址 镜像用途 镜像地址 Cann版本 基础镜像 swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc3-py_3.9-hce_2.0.2312-aarch64-snt9b-20240824153350-cebb080 cann_8.0.rc3
-
Step1 准备环境 请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
-
Step3 启动容器镜像 启动容器镜像。启动前请先按照参数说明修改${}中的参数。 export work_dir="自定义挂载的工作目录" export container_work_dir="自定义挂载到容器内的工作目录" export container_name="自定义容器名称" export image_name="镜像名称或ID" // 启动一个容器去运行镜像 docker run -itd --net=bridge \ -p 8080:8080 \ --device=/dev/davinci0 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ --shm-size=32g \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /var/log/npu/:/usr/slog \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ ${image_name} \ /bin/bash 参数说明: -v ${work_dir}:${container_work_dir}:代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下存放着训练所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 -p 8080:8080:开启一个端口,可以web访问(如冲突,可自行更换其他端口)。 ${image_name}:容器镜像的名称。 通过容器名称进入容器中。默认使用ma-user用户,后续所有操作步骤都在ma-user用户下执行。 docker exec -it ${container_name} bash
-
Step5 训练Wav2Lip模型 准备预训练模型。下载需要使用的预训练模型。 人脸检测预训练模型,下载链接。 专家唇形同步鉴别器,下载链接 ,此链接是官方提供的预训练模型。训练Wav2Lip模型时需要使用专家唇形同步鉴别器,用户可以用自己的数据训练,也可以直接使用官方提供的预训练模型。 处理初始视频数据集。 将下载好的人脸检测预训练模型修改名字为s3fd.pth,上传到/home/ma-user/Wav2Lip/face_detection/detection/sfd/s3fd.pth目录。 下载LRS2数据集。数据集文件夹结构如下: ├── LRS2_partly | ├── main | │ ├── five-digit numbered video IDs ending with (.mp4) | │ ├── 00001.mp4 | │ ├── 00002.mp4 对数据集进行预处理。具体命令如下。 python preprocess.py --data_root ./LRS2_partly --preprocessed_root lrs2_preprocessed/ data_root参数为原始视频根目录,preprocessed_root参数为处理后生成的数据集目录。 处理后数据目录如下所示。 preprocessed_root (lrs2_preprocessed) ├── main | ├── Folders with five-digit numbered video IDs(00001) | │ ├── *.jpg | │ ├── audio.wav | ├── 00001 | │ ├── *.jpg | │ ├── audio.wav 将LRS2文件列表中的.txt文件(train、val)放入该filelists文件夹中。 图2 filelists文件夹 train.txt和val.txt内容参考如下,为处理后视频数据的目录名字。 图3 train.txt和val.txt内容 训练专家唇形同步鉴别器。 如果使用LRS2数据集,可选择跳过此步骤。如果使用自己的数据集,训练命令参考如下。 python color_syncnet_train.py --data_root ./lrs2_preprocessed/main/ --checkpoint_dir ./savedmodel/syncnet_model/ --checkpoint_path ./checkpoints/lipsync_expert.pth 参数说明: --data_root :处理后的视频数据目录,与train.txt内容拼接后得到单个数据目录,例如:lrs2_preprocessed/main/00001。 --checkpoint_dir :此目录用于保存模型。 -checkpoint_path :(可选)可基于此目录的lipsync_expert模型继续进行训练,如果重新训练则不需要此参数。 默认每10000 step保存一次模型。 训练Wav2Lip模型。 训练Wav2Lip模型时需要使用专家唇形同步鉴别器。可以使用上一步3中的训练结果,也可以直接下载官方提供的预训练权重来使用。 具体训练命令如下。 python wav2lip_train.py --data_root ./lrs2_preprocessed/main/ --checkpoint_dir ./savedmodel --syncnet_checkpoint_path ./checkpoints/lipsync_expert.pth --checkpoint_path ./checkpoints/wav2lip.pth 首次训练会进行模型评估,默认为700 step,请耐心等待,结束之后会进行正式训练。 参数说明: --data_root :处理后的视频数据目录,与train.txt内容拼接后得到单个数据目录,例如:lrs2_preprocessed/main/00001。 --checkpoint_dir :此目录用于保存模型。 --syncnet_checkpoint_path :专家鉴别器的目录。 --checkpoint_path :(可选)可基于此目录的Wav2Lip模型继续进行训练,如果重新训练则不需要此参数。 默认每3000 step保存一次模型。 注: 专家鉴别器的评估损失应降至约 0.25,Wav2Lip评估同步损失应降至约 0.2,以获得良好的结果。 可以在文件设置其他不太常用的超参数hparams.py,常用超参如下: nepochs 训练总步数 checkpoint_interval Wav2Lip模型保存间隔步数 eval_interval Wav2Lip模型评估间隔步数 syncnet_eval_interval 专家鉴别器模型评估间隔步数 syncnet_checkpoint_interval 专家鉴别器模型保存间隔步数
-
获取软件和镜像 表2 获取软件和镜像 分类 名称 获取路径 插件代码包 AscendCloud-6.3.907-xxx.zip软件包中的AscendCloud-AIGC-6.3.907-xxx.zip 说明: 包名中的xxx表示具体的时间戳,以包名的实际时间为准。 获取路径:Support-E 说明: 如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。 基础镜像 西南-贵阳一: swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc2-py_3.9-hce_2.0.2312-aarch64-snt9b-20240727152329-0f2c29a 从SWR拉取。
-
Step4 安装依赖和软件包 从github拉取Wav2Lip代码。 cd /home/ma-user git clone https://github.com/Rudrabha/Wav2Lip.git cd /home/ma-user/Wav2Lip git reset --hard f361e9527b917a435928a10 如果出现报错SSL certificate problem: self signed certificate in certificate chain 图1 报错SSL certificate problem 可采取忽略SSL证书验证:使用以下命令来克隆仓库,它将忽略SSL证书验证。 git clone -c http.sslVerify=false https://github.com/Rudrabha/Wav2Lip.git 安装Wav2Lip Ascend软件包。 将获取到的Wav2Lip Ascend软件包AscendCloud-AIGC-*.zip文件上传到容器的/home/ma-user目录下。获取路径:Support网站。 解压AscendCloud-AIGC-*.zip文件,解压后将里面指定文件与对应Wave2Lip文件进行替换。 cd /home/ma-user unzip AscendCloud-AIGC-*.zip -d ./AscendCloud cp AscendCloud/multimodal_algorithm/Wav2Lip/train/f361e9527b917a435928a10/* /home/ma-user/Wav2Lip/ rm -rf AscendCloud* AscendCloud-AIGC-*.zip后面的*表示时间戳,请按照实际替换。 要替换的文件目录结构如下所示: |---Wav2Lip_code/ --- requirements.txt #建议的依赖包版本 注:需要对以下文件进行修改 --- color_syncnet_train.py #训练expert discriminator唇形同步鉴别器 --- wav2lip_train.py #训练 Wav2Lip 模型 --- preprocess.py #对初始视频数据进行推理 在以上三个文件内import末尾增加import如下: import torch_npu from torch_npu.contrib import transfer_to_npu 安装Python依赖包,文件为requirements.txt文件。 pip install -r requirements.txt
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格