阿里 DSW 试用心得——用 PAI-DSW 修复老照片
一、领取 PAI-DSW 资源,配置开发环境,下载图片
- 进入阿里云 https://free.aliyun.com 免费试用频道,打开
产品类别-AI与机器学习-机器学习平台 PAI
,点击交互式建模 PAI-DSW
的立即试用
,勾选同意服务协议,点击立即试用
按钮,即可开始试用。在接下来的欢迎页面中创建工作空间,完成服务角色授权(即 RAM 访问控制),其他选项保持默认,点击确认开通并创建默认工作空间
按钮,即完成了工作空间创建。点击前往默认工作空间
进入新创建的工作空间。 - 点击工作空间左侧边栏的
交互式建模(DSW)
,再点击创建实例
,输入实例名称,选择GPU规格,选择官方镜像的stable-diffusion-webui-env
,点击下一步,再点击创建实例
,即完成了实例的创建。等待几分钟,直到 DSW 实例环境准备完成,点击列表右侧的打开
,进入 DSW 实例。点击DSW Gallery
进入案例库,找到用AI重燃亚运经典
,点击在DSW中打开
,进入案例的 Notebook 界面。案例上半部分分类列出了很多图像修复相关的算法,包含去噪、超分、面部增强、上色、划痕修复等,本文第二部分将通过命令行应用这些算法。案例算法列表下是SDWebUI及其插件和模型的介绍。 - 点击 Notebook 的 cell 并运行,完成老照片的下载,在
demos/image-restoration/input
下可见下载的10张照片。
二、基于命令行修复图片,供开发者更加直观的查看源码并进行相关修改
1、超分
先安装超分工具,然后在 cell 中使用 RealESRNet 对照片进行超分(可能需要新建 cell 并 pip install basicsr),结果会输出到 demos/image-restoration/results
。检查结果可见超分效果一般,其中 anime 模型效果最差。接下来使用 HAT 做超分,经过对比发现效果要好于 RealESRNet,只是受限于试用环境条件,需要调整为较小的 tile。
2、上色
和上一步类似,安装工具,调整部分参数如输入路径(此处修改为上一步输出的经超分的照片所在的文件夹),执行无条件上色。完成后检查发现部分颜色与实际不附,故需要进行有条件上色。执行 Notebook 中安装工具和加载模型及照片的 cell,调整有条件上色 cell 中的参数(此处修改为经无条件上色的图片的路径,如需精确调整可将打格的参数调高),完成指定区域的重新上色。有条件上色过程中如果出现找不到 clip 模块的报错,需要新建 cell 并安装 openai 提供的 clip 模块(在 Code cell 中先运行git clone https://github.com/openai/CLIP.git /tmp//CLIP
再运行!pip install /tmp//CLIP
即可)。有条件上色的大致流程为初始化-读取图片-选取提示点-选取蒙版-生成基于参考的图片并替换。
3、划痕清理
大致流程为下载代码和预训练文件并安装 modelscope 环境-启动界面服务并在浏览器打开生成的地址-上传图片并手动标记划痕进行清理-在 notebook 中查看修复结果。和前两个功能一样,中间可能需要手动安装缺失的 python 模块。
4、图像去噪
与之前的流程类似,下载代码及预训练文件-执行推理任务。去噪操作会造成图像细节丢失。
5、面部增强
同样的,下载代码及预训练文件,运行推理任务。面部增强给了w
、further bg upscaleface
、upscale by realesrgan
三个可调整的参数,对比可见有--bg_upsampler realesrgan --face_upsample
的效果较好。
三、基于 SD WebUI,通过交互式的控制,进行更精细也更方便的图像修复
Stable Diffusion是一个图像生成AI,主要用于通过文本提示生成所需图片。作为 Stable Diffusion 的扩展应用,Stable Diffusion Web UI 扩展了多种功能,如txt2img、img2img、inpaint等,还包含了许多模型融合改进、图片质量修复等附加升级。调节 SD WebUI 的不同参数可以产生不同的效果,用户可按自己的需要和喜好进行创作。
阿里交互式建模 PAI-DSW 可非常方便的操作 SD WebUI,只要按默认配置启动 cell 就可以在浏览器打开操作界面。
1、基于附加功能的老照片修复
SD WebUI 的使用非常简单,打开主页后切换至附加功能
标签页,上传要修复的老照片,调整缩放比例、面部增强、DeOldify等参数,点右侧的“生成”按钮就完成了。需要注意的是阿里分配的试用显卡显存较小,操作较大的图片时需要把各项参数调小,特别是分辨率。
2、使用 StableSR 插件进行图生图方式的老照片修复
与上一种方法类似,切换至图生图
标签页,上传照片,勾选Enable Tiled VAE
并调小数值,“脚本”选择StableSR
,“模型”选择webui-768v-139.ckpt
,upscale 保持默认的 2,点右侧“生成”按钮即可。
3、使用“局部重绘”进行老照片修复
仍然是图生图
标签页,顶部基模型选择realisticVisionV40
,prompt 文本框填写提示词,第二层标签页选择局部重绘
,在图像框处点击选择要修复的照片,用鼠标在需要重绘的位置绘制蒙版,勾选和调整底部面部修复
参数,将重绘幅度
调低到低于 0.1,在 ControlNet 标签页勾选启用,ControlType 选 Canny 和 Depth,点击右侧“生成”按钮,完成修复。
以上三种方法生成的图片都保存在stable-diffusion-webui/outputs
下,可下载查看。
四、完成试用后的资源清理
完成试用后如果无需继续使用DSW实例,应手动停止这些实例,避免产生不必要的费用。停用流程如下(参考官方教程 https://developer.aliyun.com/article/1318158?spm=a2c6h.28407179.J_4221192580.2.779d3277kd19t1):
- 登录PAI控制台。
- 在页面左上方,选择DSW实例的地域。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。
- 在工作空间页面的左侧导航栏选择模型开发与训练>交互式建模(DSW),进入交互式建模(DSW)页面。
- 单击目标实例操作列下的“停止”,成功停止后即停止资源消耗。
五、总结
通过此次试用阿里 DSW,了解了在 PAI-DSW 环境下用命令行和 SD WebUI 两种方式进行老照片修复的相关知识,也看到了 DSW 环境图像处理的效果,并对现在流行的 Stable Diffusion 等大模型相关的概念也有了一定的了解。后续如果有批量图像处理的需求,会考虑向上级推荐阿里 DSW。