使用SWIG实现的Python FFI nihui/waifu2x-ncnn-vulkan
项目描述
waifu2x ncnn Vulkan Python
简介
使用SWIG实现的Python FFI nihui/waifu2x-ncnn-vulkan。
waifu2x-ncnn-vulkan 是 nihui 的 ncnn 实现 waifu2x 转换器。在 Intel / AMD / Nvidia 上使用 Vulkan API 运行速度快。
本项目仅封装了原始的 Waifu2x 类。因此,除了核心的放大和去噪功能外,其他功能如多线程加载和保存等均不可用。当然,自动瓦片大小和预填充设置已实现,所以不用担心。
下载
目前提供 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设计的。这是一个已知问题:导入错误:在导入_rife_ncnn_vulkan_wrapper时加载DLL失败:指定的模块找不到。- 更新
- GitHub上的二进制轮版本现在与特定Python版本相关联。请根据您的Python版本下载正确的版本。
- 它已上传到PyPI,您现在可以使用pip进行安装。但您需要安装所有构建依赖项(SWIG和Vulkan Dev),因为此库的PyPI包是源分布。
安装
pip install waifu2x-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 --recursive https://github.com/media2x/waifu2x-ncnn-vulkan-python.git
cd waifu2x-ncnn-vulkan-python
cmake -B build -S waifu2x_ncnn_vulkan_python
cmake --build build
Windows
我使用Visual Studio 2019和msvc v142为Windows构建了这个项目。
安装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加载器库
- 剩余步骤与Linux类似。
用法
示例程序
from PIL import Image
from waifu2x_ncnn_vulkan import Waifu2x
with Image.open("input.png") as image:
waifu2x = Waifu2x(gpuid=0, scale=2, noise=3)
image = waifu2x.process(image)
image.save("output.png")
文档
已知问题
- 在Linux上,nvidia专用显卡的模块最终化会崩溃。(图像处理仍然正常。)
- 尚未在Mac OS上进行测试。我猜它应该可以工作。
使用此包的软件
waifu2x原始项目
- https://github.com/nagadomi/waifu2x
- https://github.com/lltcggie/waifu2x-caffe
- https://github.com/nihui/waifu2x-ncnn-vulkan
其他使用的开源代码
- https://github.com/Tencent/ncnn用于所有平台上的快速神经网络推理
项目详情
关闭
waifu2x-ncnn-vulkan-python-1.0.4.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | bc7023cd4f2daf7ce3954086ef314f92236ca6529ad7715d1324291a1dfeda00 |
|
MD5 | 16fb7d47b867dafdf17e174a76a8fd04 |
|
BLAKE2b-256 | 4228a5ed9e1e843732709d07a0e1c8d50a71a1933a923883905aa4d11191b297 |