一、引言
-
接触过AI绘画的一定都知道
“图片超清放大”
,但是要在各个AI应用中使用单独的“图片超清放大”
,我目前没有找到体量小又操作方便的。 -
于是我找了一个自己拥有GUI和webUI的图片放大模型(现在这个程序已经不止一个模型了)
-
nunif——前身是waifu2x,nunif现在的体量还是比较大的,现在的GUI上也有了不少功能
-
nunif的github官方网址:https://github.com/nagadomi/nunif
-
现在的nunif的主要功能:
-
waifu2x 图像超分辨率
-
iw3:2D 到 3D 视频转换
-
cliqa:图像质量评估
-
-
值得注意的是waifu2x作为早期版本直到现在也没有可以使用的命令行功能
-
iw3却拥有命令行工具:
python -m iw3 -i <输入文件或目录> -o <输出文件或目录>
-
参数调整:
-
--divergence
(3D 强度):默认值为 2.0,用于调整最佳观看距离。 -
--convergence
:默认值为 0.5,用于调整屏幕边缘的显示效果。 -
--ipd-offset
:用于调整 VR 设备的瞳距。
-
-
-
cliqa 同样提供了命令行工具,可以利用这些评估结果来过滤低质量图像
有很多我没有学习到的地方需要大家自己去官方网站学习了解其中的内容,接下来只是waifu2x的安装
二、源码部分
源码下载:https://download.csdn.net/download/2401_83225324/90316300?spm=1001.2014.3001.5503
https://download.csdn.net/download/2401_83225324/90316300
https://download.csdn.net/download/2401_83225324/90316854
1. bat文件部分
简单的介绍:
InstallNunif 是安装完成后的文件夹
这是你从我在CSDN的资源中下载的文件
你首先要做的是先检查自己是不是拥有python3.10在系统变量中,假如没有,请你安装python
因为我在我的电脑上已经安装过了,所以这里没有显示路径
请你注意:不要使用默认的安装方式,也请不要安装在有空格的文件夹中,这是bat文件设计的局限性
进入文件夹后,
core
文件夹是bat核心。
进入其中的
python
文件夹,这里存放了所有的程序文件,接下来会好好讲讲里面的内容
1-1 Text.py
Text.py
能够用来输出你的cuda版本号
# 文件名:check_cuda_version.py
import subprocess
import re
def get_cuda_version():
try:
# 执行 nvidia-smi 命令并获取输出
output = subprocess.check_output(['nvidia-smi']).decode()
# 使用正则表达式匹配 CUDA 版本
match = re.search(r'CUDA Version: (\d+\.\d+)', output)
if match:
return match.group(1)
else:
return "CUDA version not found"
except subprocess.CalledProcessError:
return "nvidia-smi command failed to run"
except FileNotFoundError:
return "nvidia-smi command not found"
if __name__ == "__main__":
cuda_version = get_cuda_version()
print(f"Detected CUDA version: {
cuda_version}")
1-2 first.bat
-
检索所有可用的 Python 编码路径
-
检查每个 Python 版本并筛选符合条件的版本
-
检查是否找到合适的 Python 版本
-
输出选定的 Python 版本
-
使用选定的 Python 版本创建虚拟环境
-
激活虚拟环境并运行 Text.py 脚本
-
从输出文件中提取 CUDA 版本号
-
删除输出文件
-
将版本号保存到 data.json 文件中
@echo off
chcp 936 >nul
REM 设置代码页为 GBK(936)
REM 检索所有可用的 Python 编码路径
echo 检索系统中所有可用的 Python 版本...
setlocal enabledelayedexpansion
set PYTHON_PATHS=
for /f "tokens=*" %%p in ('where python') do (
set PYTHON_PATHS=!PYTHON_PATHS! %%p
)
REM 检查每个 Python 版本并筛选符合条件的版本
set SELECTED_PYTHON=
for %%p in (%PYTHON_PATHS%) do (
for /f "tokens=2 delims= " %%v in ('"%%p" --version 2^>^&1') do (
for /f "tokens=1,2 delims=." %%a in ("%%v") do (
set major=%%a
set minor=%%b
if !major! geq 3 (
if !minor! geq 8 (
if !minor! leq 12 (
if "!minor!"=="10" (
set SELECTED_PYTHON=%%p
goto :found
) else (
if not defined SELECTED_PYTHON (
set SELECTED_PYTHON=%%p
)
)
)
)
)
)
)
)
:found
REM 检查是否找到合适的 Python 版本
if not defined SELECTED_PYTHON (
echo 未找到符合条件的 Python 版本(3.8 到 3.12,优先选择 3.10)。
pause
exit /b 1
)
REM 输出选定的 Python 版本
echo 选定的 Python 版本为:
%SELECTED_PYTHON% --version
REM 使用选定的 Python 版本创建虚拟环境
echo 正在使用选定的 Python 版本创建虚拟环境...
%SELECTED_PYTHON% -m venv venv
if errorlevel 1 (
echo 虚拟环境创建失败,请检查 Python 安装。
pause
exit /b 1
)
echo 虚拟环境创建成功。
REM 激活虚拟环境并运行 Text.py 脚本
echo 正在激活虚拟环境并运行 Text.py 脚本...
call venv\Scripts\activate
if errorlevel 1 (
echo 虚拟环境激活失败,请检查路径。
pause
exit /b 1
)
%SELECTED_PYTHON% "%~dp0Text.py" > output.txt
REM 从输出文件中提取 CUDA 版本号
set /p CUDA_VERSION=<output.txt
set CUDA_VERSION=%CUDA_VERSION:*: =%
REM 删除输出文件
del output.txt
REM 将版本号保存到 data.json 文件中
echo {"cuda_version":"%CUDA_VERSION%"} > "%~dp0data.json"
REM 完成
echo 脚本运行完成。
echo CUDA 版本已保存到 data.json 文件中。
exit /b 0
1-3 set.bat
-
启用延迟变量扩展
-
设置代码页为 UTF-8
-
激活虚拟环境
-
调试:检查 data.json 文件是否存在
-
调试:打印 data.json 文件内容
-
从 data.json 中获取 CUDA 版本
-
调试:打印包含 cuda_version 的行
-
调试:打印提取的 CUDA 版本
-
检查是否获取到 CUDA 版本
-
根据 CUDA 版本安装 PyTorch
@echo off
REM Enable delayed variable expansion
setlocal enabledelayedexpansion
REM Set code page to UTF-8
chcp 65001 >nul
REM Activate virtual environment
echo Activating virtual environment...
call venv\Scripts\activate
if errorlevel 1 (
echo Failed to activate virtual environment. Please check the path.
pause
exit /b 1
)
REM Debug: Check if data.json exists
if not exist data.json (
echo data.json file not found in the current directory.
pause
exit /b 1
)
REM Debug: Print content of data.json
echo Content of data.json:
type data.json
REM Get CUDA version from data.json
echo Getting CUDA version from data.json...
set "CUDA_VERSION="
for /f "tokens=*" %%i in ('type data.json ^| findstr /c:"cuda_version"') do (
set "line=%%i"
REM Debug: Print the line containing cuda_version
echo Line containing cuda_version: !line!
REM Extract version number using more robust method
for /f "tokens=2 delims=:," %%j in ("!line!") do (
set "CUDA_VERSION=%%~j"
REM Remove quotes, spaces, and trailing characters
set "CUDA_VERSION=!CUDA_VERSION:"=!"
set "CUDA_VERSION=!CUDA_VERSION: =!"
REM Remove trailing }
set "CUDA_VERSION=!CUDA_VERSION:~0,-1!"
)
)
REM Debug: Print the extracted CUDA version
echo Extracted CUDA_VERSION: !CUDA_VERSION!
REM Check if CUDA version was retrieved
if "!CUDA_VERSION!"=="" (
echo No CUDA version detected. Installing CPU version of PyTorch.
set CUDA_VERSION=none
) else (
echo Detected CUDA version: !CUDA_VERSION!
)
REM Install PyTorch based on CUDA version
if "!CUDA_VERSION!"=="12.6" (
echo Detected CUDA 12.6. Installing PyTorch with cu121 support.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
) else if "!CUDA_VERSION!"=="11.8" (
echo Detected CUDA 11.8. Installing PyTorch with cu118 support.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
) else if "!CUDA_VERSION!"=="12.4" (
echo Detected CUDA 12.4. Installing PyTorch with cu124 support.
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
) else (
echo No supported CUDA version detected. Installing CPU version of PyTorch.
pip install torch torchvision torchaudio
)
if errorlevel 1 (
echo PyTorch installation failed. Trying to install with a mirror.
pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
if errorlevel 1 (
echo PyTorch installation failed. Please check your network or CUDA version.
pause
exit /b 1
)
)
echo PyTorch installed successfully.
echo development environment set up successfully.
REM Done
echo Script completed.
exit /b 0
1-4 Waifu2x_set.bat
-
启用延迟变量扩展
-
设置代码页为 UTF-8
-
步骤 1:激活已存在的虚拟环境
-
步骤 2:克隆 nunif 仓库
-
步骤 3:安装 PyTorch 及其他依赖项
-
步骤 4:安装 GUI 依赖项(默认为“y”)
-
步骤 5:下载预训练模型
-
步骤 6:提示安装完成
@echo off
REM Enable delayed variable expansion
setlocal enabledelayedexpansion
REM Set the code page to UTF-8
chcp 65001 >nul
REM Step 1: Activate the existing virtual environment
echo Activating virtual environment venv...
call venv\Scripts\activate
if errorlevel 1 (
echo Failed to activate the virtual environment. Please check the path of the virtual environment.
pause
exit /b 1
)
REM Step 2: Clone the nunif repository
echo Cloning the nunif repository...
git clone https://github.com/nagadomi/nunif.git
if errorlevel 1 (
echo Failed to clone the repository. Please check if Git is installed.
pause
exit /b 1
)
cd nunif
REM Step 3: Install PyTorch and other dependencies
echo Installing PyTorch and other dependencies...
pip install -r requirements-torch.txt
if errorlevel 1 (
echo Failed to install PyTorch dependencies.
pause
exit /b 1
)
pip install -r requirements.txt
i