使用SWIG实现的nihui/realcugan-ncnn-vulkan的Python FFI
项目描述
realcugan ncnn Vulkan Python
简介
使用SWIG实现的nihui/realcugan-ncnn-vulkan的Python FFI。
realcugan-ncnn-vulkan 是nihui对realcugan转换器的ncnn实现。使用Vulkan API在Intel / AMD / Nvidia上运行速度快。
此项目仅封装了原始RealCUGAN类。因此,除了核心的放大和降噪功能之外,其他功能(如多线程加载和保存)不可用。当然,实现了自动瓷砖大小和预填充设置,所以不用担心。
下载
现在有linux x64、Windows x64和MacOS x64版本可供下载。对于其他平台,您可能需要自行编译。MacOS ARM64构建不可用的原因是它需要ARM Python Dev Libs,我在GitHub的MacOS x64 VM上没有找到它。此外,我没有Mac。
- 然而,对于使用较旧GLIBC(版本< 2.29)的Linux(如Ubuntu 18.04),您可以尝试使用ubuntu-1804版本,或者自行编译。
- Windows版本并非适用于所有Python版本。Windows构建的版本适用于Python 3.9。这是一个已知问题: ImportError: 在导入_rife_ncnn_vulkan_wrapper时加载DLL失败:找不到指定的模块。
更新:它已上传到PyPI,现在您可以使用pip进行安装。
安装
pip install realcugan-ncnn-vulkan-python
构建
首先,您必须在您的平台上安装python、python开发包(Visual Studio中的Python原生开发库)、vulkan SDK和SWIG。然后,有两种方法可以构建它
- 使用setuptools构建并直接安装到Python包中。(目前处于开发中)
- 直接使用CMake(旧方法)
使用setuptools
python setup.py install
使用CMake
Linux
- 安装依赖项:cmake、vulkan sdk、swig和python-dev
Debian、Ubuntu和其他类似Debian的发行版
apt-get install cmake libvulkan-dev swig python3-dev
Arch发行版
pacman -S base-devel cmake vulkan-headers vulkan-icd-loader swig python
- 使用CMake构建
git clone https://github.com/ArchieMeng/realcugan-ncnn-vulkan-python.git
cd realcugan-ncnn-vulkan-python
git submodule update --init --recursive
cd src
cmake -B build .
cd build
make
Windows
我使用Visual Studio 2019和msvc v142为Windows构建了这个项目。
安装visual studio,打开项目目录,并构建。任务完成。
Windows上唯一的问题是,你不能使用CMake for Windows GUI生成Visual Studio解决方案文件并进行构建。这将导致库在加载时崩溃。
一种方法是在使用Visual Studio以目录方式打开项目,并在Visual Studio中构建它。另一种方法是像在release.yml中写的那样在powershell中构建它
Mac OS X
- 安装依赖项:cmake、vulkan sdk、swig和python-dev
- 从https://vulkan.lunarg.com/sdk/home下载vulkan sdk
- 如果你已经安装了homebrew,运行以下命令以获取SWIG
brew install swig
- 我想python dev在Mac上是现成的。如果不是,请在谷歌上搜索。
- 使用CMake构建
- 你可以传递-DUSE_STATIC_MOLTENVK=ON选项以避免在MacOS上链接vulkan加载器库
git clone https://github.com/ArchieMeng/realcugan-ncnn-vulkan-python.git
cd realcugan-ncnn-vulkan-python
git submodule update --init --recursive
cd src
cmake -B build .
cd build
make
用法
示例程序
from PIL import Image
from realcugan_ncnn_vulkan import RealCUGAN
with Image.open("input.png") as image:
realcugan = RealCUGAN(gpuid=0, scale=2, noise=3)
image = realcugan.process(image)
image.save("output.png")
文档
已知问题
- 在Linux上,模块最终化会在nvidia专用图形卡上崩溃。(图像处理仍然有效。)
- 尚未在Mac OS上进行测试。我想它应该可以工作。
Original realcugan Project
- https://github.com/bilibili/ailab/tree/main/Real-CUGAN
- https://github.com/nihui/realcugan-ncnn-vulkan
其他开源代码
- https://github.com/Tencent/ncnn用于在所有平台上进行快速神经网络推理
- https://github.com/webmproject/libwebp用于在所有平台上编码和解码Webp图像
- https://github.com/nothings/stb用于在Linux / MacOS上解码和编码图像
- https://github.com/tronkko/dirent用于在Windows上列出目录中的文件
realcugan-ncnn-vulkan-python-1.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 12699646d7e42bede9a1a4b081bb23b7beafba6b784f68bd76aa8ae62e891b4d |
|
MD5 | 08daba5cadacb5fddc181d86ac8dff74 |
|
BLAKE2b-256 | 648fa97b3fac5e2123e4652a122f1df50846e4721056964003890edc20f24fbf |