Ascend-SACT/Real-ESRGAN
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

引言

基于 PyTorch 的 Real-ESRGAN 模型实现,该模型在自定义数据集上进行训练。相比于原始版本,本模型在人脸处理上展现出更优的结果。同时,将其集成到您的项目中也更为简便。

Real-ESRGAN 是一个经过升级的 ESRGAN,通过纯粹的合成数据训练,能够为常见的现实世界图像增强细节,同时去除恼人的瑕疵。

一、准备运行环境

表1 硬件设备

设备型号NPU配置
Atlas 800I A28*64G
Atlas 800T A28*64G

表2 软件版本配套表

配套版本环境准备指导
PyTorch2.9.0
torch-npu2.9.0
CANN8.5.0
Transformers4.57.6
Python3.11.14
npu-smi25.5.0

1.1 获取并安装vLLM Ascend镜像

1.1.1 软件包下载

方式一、通过vllm-ascend镜像安装部署

点击下载链接,打开网页后,选择 v0.17.0rc1 版本下载

1、执行以下命令下载

docker pull quay.io/ascend/vllm-ascend:v0.17.0rc1-openeuler

2、执行以下命令查看镜像是否下载成功

docker images | grep v0.17.0rc1-openeuler

二、下载权重

RealESRGAN_x2plus:

https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth

RealESRGAN_x4plus:

https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth

三、运行指导

3.1 单机单卡部署

3.1.1 启动容器服务样例命令

docker run -itd -u root \
--net=host \
--privileged=true \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
--device=/dev/davinci2 \
--device=/dev/davinci3 \
--device=/dev/davinci4 \
--device=/dev/davinci5 \
--device=/dev/davinci6 \
--device=/dev/davinci7 \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root:/root \
-p 8001:8001 \
--shm-size 1024g \
--name vllm-ascend-wlh2 \
quay.io/ascend/vllm-ascend:v0.17.0rc1-openeuler

3.1.2 进入容器

docker exec -it -u root vllm-ascend-wlh2 bash

3.1.3 安装依赖包

pip uninstall vllm_ascend
pip uninstall vllm
cd /workspace
git clone https://github.com/XPixelGroup/BasicSR
cd BasicSR/
pip install -r requirements.txt
python setup.py install

3.1.4 基于xinntao/Real-ESRGAN推理 (如果自研服务只依赖BasicSR请跳至3.1.5)

安装服务包

cd /workspace
git clone https://github.com/xinntao/Real-ESRGAN.git
cd Real-ESRGAN/
pip install facexlib
pip install gfpgan
pip install Pillow
python setup.py install
3.1.4.1 修改xinntao/Real-ESRGAN推理脚本inference_realesrgan.py

在开头添加

import torch
import torch_npu
from torch_npu.contrib import transfer_to_npu

将下载的权重放到/workspace/Real-ESRGAN/weights 下

mv RealESRGAN_*.pth /workspace/Real-ESRGAN/weights 
3.1.4.2 执行推理脚本
python inference_realesrgan.py -n RealESRGAN_x2plus -i inputs

3.1.5 基于BasicSR自定义的推理服务

在推理代码前添加以下代码:

import torch
import torch_npu
from torch_npu.contrib import transfer_to_npu

nvidia-smi相关命令修改为npu-smi info

3.1.5.1 报错1:

Traceback (most recent call last): File "/workspace/Real-ESRGAN/inference_realesrgan.py", line 2, in import cv2 File "/usr/local/python3.11.14/lib/python3.11/site-packages/cv2/init.py", line 181, in bootstrap() File "/usr/local/python3.11.14/lib/python3.11/site-packages/cv2/init.py", line 153, in bootstrap native_module = importlib.import_module("cv2") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/python3.11.14/lib/python3.11/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level)

解决方式: 更新opencv-python-headless版本保持和opencv-python一致

3.1.5.2 报错2:

Testing 8 video Traceback (most recent call last): File "/workspace/Real-ESRGAN/inference_realesrgan.py", line 169, in main() File "/workspace/Real-ESRGAN/inference_realesrgan.py", line 141, in main if len(img.shape) == 3 and img.shape[2] == 4: ^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'shape' [ERROR] 2026-03-30-11:33:11 (PID:588, Device:0, RankID:-1) ERR99999 UNKNOWN applicaiton exception

解决方式: 1、去掉inputs/vedio目录 或者2、使用inference_realesrgan_video.py推理视频,需要yum或apt安装ffmpeg包

3.1.6 参考

https://github.com/xinntao/Real-ESRGAN/blob/master/README_CN.md