一个基于nonebot2的超分辨率重建插件
- 使用pip安装
pip install nonebot_plugin_RealESRGAN
然后在项目内导入插件
nonebot.load_plugin('nonebot_plugin_RealESRGAN')
- 使用nb安装
nb plugin install nonebot_plugin_RealESRGAN
- 从github安装
先将源代码拉下来
https://github.com/staskaer/nonebot_plugin_RealESRGAN
这种方式适合想自己做修改,这个项目结构挺简单的,注释也还算全,可以按照自己想要的方式进行修改。
本插件是使用超分辨率来对图像进行重建,可以简单理解成让图片变大变清晰。
超分辨率原理是基于这个仓库的,将此模型部署到线上后作为api来使用。效果如下。
感谢AK391通过Gradio添加到了Huggingface Spaces(一个机器学习应用的在线平台)Gradio在线版。不过由于免费版额度似乎有限,为了不占用其额度,本插件使用的是自建的仓库作为api接口,当然,如果各位用户想要追求稳定性,也最好是用自己的账号自建一个来专门为自己使用,教程见这里
不是很建议自建api了,因为我看到Huggingface里能搜到好多一样仓库,占用了搜索栏里的很多位置,影响感觉挺不好的,不信的话可以看看,加上之前写的教程感觉也不是很合适,就直接用这些现成的仓库吧
不过,由于线上算力存在限制,所以调用的是较小的模型,导致线上的模型似乎没有本地推断那么好,也因此这个插件仅供娱乐使用,想要获得更好的重建效果,建议使用原仓库提供的程序。当然,我也对原仓库的程序做了简单的封装,需要的可以看这里
使用方法很简单,首先输入[重建
, real-esrgan
, 超分辨率重建
, esrgan
, real_esrgan
]中的任意一个来启动插件。注意这些都是命令格式,即需要以/
或自定义的命令引导符开头。
然后输入[base
, anime
]中的一个来作为重建的类型,其中base
相对适用于一般图片,而anime
则对二刺螈图比较好,但也不绝对。
最后发送一张图片即可,但不能以文件形式发送。
当然你全部连起来输入也可以,不过我觉得这样不是很方便
之后bot会自动返回一张图或者是错误信息。
本插件仅有一个.env.dev
配置项,即Huggingface的api(如果你是自建的仓库话)。默认不用管。
RealESRGAN_API = "https://hf.space/embed/{你的id名}/{你的仓库名}/api/predict/"
- 不要上传过大的图,此插件仅供娱乐,太大的图不仅会导致远程服务器免费额度被大量占用,同时由于压图原因,也不会得到很好的重建结果。当然如果有这方面的需求,可以去使用本地程序,调用本地算力可劲用。
- 本插件返回的结果不代表原仓库的重建结果,事实上,调用不同的模型进行推断的效果差距还是很大的。
最好还是自己去建一个Huggingface Spaces免费仓库来作为自己的api接口,可以查阅这里- 不是很建议自建api了,因为我看到Huggingface里能搜到好多一样仓库,占用了搜索栏里的很多位置,影响感觉挺不好的,不信的话可以看看,加上之前写的教程感觉也不是很合适,就直接用这些现成的仓库吧
- 修bug(如果有的话)