Skip to content

Latest commit

 

History

History
242 lines (170 loc) · 14.1 KB

README_CN.md

File metadata and controls

242 lines (170 loc) · 14.1 KB

Real-ESRGAN

download PyPI Open issue Closed issue LICENSE python lint Publish-pip

English | 简体中文

🔥 🔥 🔥 添加了针对动漫视频的小模型, 更多信息在 anime video models 中.

  1. Real-ESRGAN的Colab Demo google colab logo.
  2. Real-ESRGAN的 动漫视频Colab Demo google colab logo.
  3. 支持Intel/AMD/Nvidia显卡的绿色版exe文件: Windows版 / Linux版 / macOS版,详情请移步这里。NCNN的实现在 Real-ESRGAN-ncnn-vulkan

Real-ESRGAN 的目标是开发出实用的图像修复算法
我们在 ESRGAN 的基础上使用纯合成的数据来进行训练,以使其能被应用于实际的图片修复的场景(顾名思义:Real-ESRGAN)。

🎨 Real-ESRGAN 需要,也很欢迎你的贡献,如新功能、模型、bug修复、建议、维护等等。详情可以查看CONTRIBUTING.md,所有的贡献者都会被列在此处

🌌 感谢大家提供了很好的反馈。这些反馈会逐步更新在 这个文档

❓ 常见的问题可以在FAQ.md中找到答案。(好吧,现在还是空白的=-=||)

🚩 更新

  • ✅ 添加了针对动漫视频的小模型, 更多信息在 anime video models 中.
  • ✅ 添加了ncnn 实现:Real-ESRGAN-ncnn-vulkan.
  • ✅ 添加了 RealESRGAN_x4plus_anime_6B.pth,对二次元图片进行了优化,并减少了model的大小。详情 以及 与waifu2x的对比请查看anime_model.md
  • ✅ 支持用户在自己的数据上进行微调 (finetune):详情
  • ✅ 支持使用GFPGAN增强人脸
  • ✅ 通过Gradio添加到了Huggingface Spaces(一个机器学习应用的在线平台):Gradio在线版。感谢@AK391
  • ✅ 支持任意比例的缩放:--outscale(实际上使用LANCZOS4来更进一步调整输出图像的尺寸)。添加了RealESRGAN_x2plus.pth模型
  • 推断脚本支持: 1) 分块处理tile; 2) 带alpha通道的图像; 3) 灰色图像; 4) 16-bit图像.
  • ✅ 训练代码已经发布,具体做法可查看:Training.md

如果 Real-ESRGAN 对你有帮助,可以给本项目一个 Star ⭐ ,或者推荐给你的朋友们,谢谢!😊
其他推荐的项目:
▶️ GFPGAN: 实用的人脸复原算法
▶️ BasicSR: 开源的图像和视频工具箱
▶️ facexlib: 提供与人脸相关的工具箱
▶️ HandyView: 基于PyQt5的图片查看器,方便查看以及比较


📖 Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data

[论文]   [项目主页]   [YouTube 视频]   [B站视频]   [Poster]   [PPT]
Xintao Wang, Liangbin Xie, Chao Dong, Ying Shan
Tencent ARC Lab; Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences


我们提供了一套训练好的模型(RealESRGAN_x4plus.pth),可以进行4倍的超分辨率。
现在的 Real-ESRGAN 还是有几率失败的,因为现实生活的降质过程比较复杂。
而且,本项目对人脸以及文字之类的效果还不是太好,但是我们会持续进行优化的。

Real-ESRGAN 将会被长期支持,我会在空闲的时间中持续维护更新。

这些是未来计划的几个新功能:

  • 优化人脸
  • 优化文字
  • 优化动画图像
  • 支持更多的超分辨率比例
  • 可调节的复原

如果你有好主意或需求,欢迎在 issue 或 discussion 中提出。
如果你有一些 Real-ESRGAN 中有问题的照片,你也可以在 issue 或者 discussion 中发出来。我会留意(但是不一定能解决:stuck_out_tongue:)。如果有必要的话,我还会专门开一页来记录那些有待解决的图像。


便携版(绿色版)可执行文件

你可以下载支持Intel/AMD/Nvidia显卡的绿色版exe文件: Windows版 / Linux版 / macOS版

绿色版指的是这些exe你可以直接运行(放U盘里拷走都没问题),因为里面已经有所需的文件和模型了。它不需要 CUDA 或者 PyTorch运行环境。

你可以通过下面这个命令来运行(Windows版本的例子,更多信息请查看对应版本的README.md):

./realesrgan-ncnn-vulkan.exe -i 输入图像.jpg -o 输出图像.png -n 模型名字

我们提供了五种模型:

  1. realesrgan-x4plus(默认)
  2. reaesrnet-x4plus
  3. realesrgan-x4plus-anime(针对动漫插画图像优化,有更小的体积)
  4. RealESRGANv2-animevideo-xsx2 (针对动漫视频, X2)
  5. RealESRGANv2-animevideo-xsx4 (针对动漫视频, X4)

你可以通过-n参数来使用其他模型,例如./realesrgan-ncnn-vulkan.exe -i 二次元图片.jpg -o 二刺螈图片.png -n realesrgan-x4plus-anime

可执行文件的用法

  1. 更多细节可以参考 Real-ESRGAN-ncnn-vulkan.
  2. 注意:可执行文件并没有支持 python 脚本 inference_realesrgan.py 中所有的功能,比如 outscale 选项) .
Usage: realesrgan-ncnn-vulkan.exe -i infile -o outfile [options]...

  -h                   show this help
  -v                   verbose output
  -i input-path        input image path (jpg/png/webp) or directory
  -o output-path       output image path (jpg/png/webp) or directory
  -s scale             upscale ratio (4, default=4)
  -t tile-size         tile size (>=32/0=auto, default=0) can be 0,0,0 for multi-gpu
  -m model-path        folder path to pre-trained models(default=models)
  -n model-name        model name (default=realesrgan-x4plus, can be realesrgan-x4plus | realesrgan-x4plus-anime | realesrnet-x4plus)
  -g gpu-id            gpu device to use (default=0) can be 0,1,2 for multi-gpu
  -j load:proc:save    thread count for load/proc/save (default=1:2:2) can be 1:2,2,2:2 for multi-gpu
  -x                   enable tta mode
  -f format            output image format (jpg/png/webp, default=ext/png)

由于这些exe文件会把图像分成几个板块,然后来分别进行处理,再合成导出,输出的图像可能会有一点割裂感(而且可能跟PyTorch的输出不太一样)

这些exe文件均基于Tencent/ncnn以及nihuirealsr-ncnn-vulkan,感谢!


🔧 依赖以及安装

安装

  1. 把项目克隆到本地

    git clone https://github.com/xinntao/Real-ESRGAN.git
    cd Real-ESRGAN
  2. 安装各种依赖

    # 安装 basicsr - https://github.com/xinntao/BasicSR
    # 我们使用BasicSR来训练以及推断
    pip install basicsr
    # facexlib和gfpgan是用来增强人脸的
    pip install facexlib
    pip install gfpgan
    pip install -r requirements.txt
    python setup.py develop

⚡ 快速上手

普通图片

下载我们训练好的模型: RealESRGAN_x4plus.pth

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

推断!

python inference_realesrgan.py -n RealESRGAN_x4plus -i inputs --face_enhance

结果在results文件夹

动画图片

训练好的模型: RealESRGAN_x4plus_anime_6B
有关waifu2x的更多信息和对比在anime_model.md中。

# 下载模型
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth -P experiments/pretrained_models
# 推断
python inference_realesrgan.py -n RealESRGAN_x4plus_anime_6B -i inputs

结果在results文件夹

Python 脚本的用法

  1. 虽然你使用了 X4 模型,但是你可以 输出任意尺寸比例的图片,只要实用了 outscale 参数. 程序会进一步对模型的输出图像进行缩放。
Usage: python inference_realesrgan.py -n RealESRGAN_x4plus -i infile -o outfile [options]...

A common command: python inference_realesrgan.py -n RealESRGAN_x4plus -i infile --outscale 3.5 --half --face_enhance

  -h                   show this help
  -i --input           Input image or folder. Default: inputs
  -o --output          Output folder. Default: results
  -n --model_name      Model name. Default: RealESRGAN_x4plus
  -s, --outscale       The final upsampling scale of the image. Default: 4
  --suffix             Suffix of the restored image. Default: out
  -t, --tile           Tile size, 0 for no tile during testing. Default: 0
  --face_enhance       Whether to use GFPGAN to enhance face. Default: False
  --half               Whether to use half precision during inference. Default: False
  --ext                Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto

🏰 模型库

请参见 docs/model_zoo.md

💻 训练,在你的数据上微调(Fine-tune)

这里有一份详细的指南:Training.md.

BibTeX 引用

@Article{wang2021realesrgan,
    title={Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data},
    author={Xintao Wang and Liangbin Xie and Chao Dong and Ying Shan},
    journal={arXiv:2107.10833},
    year={2021}
}

📧 联系我们

如果你有任何问题,请通过 [email protected][email protected] 联系我们。

🤗 感谢

感谢所有的贡献者大大们~