【保姆级教程】用PAI-DSW修复亚运历史老照片

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 本教程整合了来自开源社区的高质量图像修复、去噪、上色等算法,并使用 Stable Diffusion WebUI 进行交互式图像修复。参与者可以根据需要进行参数调整,组合不同的处理方式以获得最佳修复效果。参与者还可以在活动页面上传修复后的成果图片,参与比赛,获胜者将有机会获得丰厚的奖品。

AI老照片修复教程简述

阿里云作为第十九届杭州亚运会官方合作伙伴,值此亚运会 110 周年庆典之际,与亚奥理事会联合发起“历久弥新——亚运史料AI修复”计划,由阿里云市场部品牌团队、阿里云开发者团队联合计算平台和存储团队举办“用AI修复亚运老照片”活动。


本教程整合了来自开源社区的高质量图像修复、去噪、上色等算法,并使用 Stable Diffusion WebUI 进行交互式图像修复。参与者可以根据需要进行参数调整,组合不同的处理方式以获得最佳修复效果。参与者还可以在活动页面上传修复后的成果图片,参与比赛,获胜者将有机会获得丰厚的奖品。活动地址:https://developer.aliyun.com/topic/aiforgames,你也可以邀请好友一起修复,有机会赢取iPad等礼品!


使用PAI修复亚运老照片

1. 准备资源和环境

开始教程前,请按以下步骤准备环境和资源:

【重要】:PAI-DSW免费资源包只适用于本教程中的PAI-DSW产品。如果您领取了PAI-DSW资源包后,使用了PAI-DSW及PAI的其他产品功能(如PAI-DLC、PAI-EAS等),PAI-DSW产品产生的费用由资源包抵扣,其他产品功能产生的费用无法抵扣,会产生对应的费用账单。

  1. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
  2. 成功登录后,在产品类别下选择AI与机器学习>机器学习平台PAI,在交互式建模PAI-DSW卡片上单击立即试用【说明】:如果您此前已申请过试用PAI的免费资源包,此时界面会提示为已试用,您可以直接单击已试用按钮,进入PAI的控制台。
  3. 交互式建模PAI-DSW面板,勾选服务协议后,单击立即试用,进入免费开通页面。【重要】以下几种情况可能产生额外费用
  • 使用了除免费资源类型外的计费资源类型:您申请试用的是PAI-DSW免费资源包,但您创建的DSW实例使用的资源类型非阿里云免费试用提供的资源类型。当前可申请免费使用的资源类型有:ecs.gn6v-c8g1.2xlarge、ecs.g6.xlarge、ecs.gn7i-c8g1.2xlarge。
  • 申请试用的免费资源包与使用的产品资源不对应:
  • 您创建了PAI-DSW实例,但您申请试用的是PAI-DLC或PAI-EAS产品的免费资源包。您使用DSW产品产生的费用无法使用免费资源包抵扣,会产生后付费账单。
  • 您申请试用的是PAI-DSW免费资源包,但您使用的产品是PAI-DLC或PAI-EAS。使用PAI-DLC和PAI-EAS产品产生的费用无法使用DSW免费资源包抵扣,会产生后付费账单。
  • 免费额度用尽或超出试用期:领取免费资源包后,请在免费额度和有效试用期内使用。如果免费额度用尽或试用期结束后,继续使用计算资源,会产生后付费账单。请前往资源实例管理页面,查看免费额度使用量和过期时间,如下图所示。
  • 1.png
  1. 开通机器学习PAI并创建默认工作空间。其中关键参数配置如下,更多详细内容,请参见开通并创建默认工作空间
  • 本教程地域选择:华北2(北京)。您也可以根据情况选择华东1(杭州)、华东2(上海)、华南1(深圳)地域。
  • 单击免费开通并创建默认工作空间:在弹出的开通页面中配置订单详情。配置要点如下。
  • 本教程不需要开通其他产品,您需要在组合开通配置模块,去勾选其他产品的复选框。
  • 服务角色授权模块单击去授权,根据界面提示为PAI完成授权,然后返回开通页面,刷新页面,继续开通操作。

C4F2FABC-C93E-45AC-8165-5801B40C1020.png

  1. 开通成功后单击进入PAI控制台,在默认工作空间中创建DSW实例。其中关键参数配置如下,其他参数取默认配置即可。更多详细内容,请参见创建及管理DSW实例

【说明】:创建DSW实例需要一定时间,与当前的资源数有关。如果您使用地域资源不足,可更换其他支持免费试用的地域申请开通试用并创建DSW实例。

参数

描述

地域及可用区

本教程选择:华北2(北京)

实例名称

您可以自定义实例名称,本教程示例为:AIGC_test_01。

资源类型

本教程选择:GPU规格,规格名称为ecs.gn7i-c8g1.2xlarge

【说明】:阿里云免费试用提供的资源类型包括以下几种类型:

  • ecs.gn7i-c8g1.2xlarge
  • ecs.g6.xlarge
  • ecs.gn6v-c8g1.2xlarge

数据集(可选)

建议您申请免费的OSS或NAS资源包,然后在数据集配置模块单击创建数据集,在弹出的数据集配置页面中重点配置以下参数,其他参数可保持默认值。

  • 选择数据存储:选择阿里云对象存储(OSS)阿里云文件存储(NAS)
  • 选择OSS或NAS文件系统:在下拉框中选择类型为OSSNAS的文件系统。建议您选择上述步骤中已创建的OSS或NAS文件系统。防止网络不通,导致无法挂载OSS或NAS文件系统。

选择镜像

选择官方镜像中的stable-diffusion-webui-env:pytorch1.13-gpu-py310-cu117-ubuntu22.04

2. 在PAI-DSW中打开教程

  1. 进入PAI-DSW开发环境。
  1. 登录PAI控制台
  2. 在页面左上方,选择DSW实例所在的地域。
  3. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。
  4. 在左侧导航栏,选择模型开发与训练>交互式建模(DSW)
  5. 单击需要打开的实例操作列下的打开,进入PAI-DSW实例开发环境。
  1. Notebook页签的Launcher页面,单击快速开始区域Tool下的DSW Gallery,打开DSW Gallery页面。
  2. 在DSW Gallery页面中,搜索并找到用AI重燃亚运经典教程,单击教程卡片中的在DSW中打开

单击后即会自动将本教程所需的资源和教程文件下载至DSW实例中,并在下载完成后自动打开教程文件。

(官方DSW Gallery 暂未正式发布,功能完善开发中,体验版可先下载文件,并在DSW中打开)

1.png

3. 导入修复照片

依次运行数据准备节的单元格,可下载提供的亚运老照片并解压至input文件夹中

1.png

针对给定的图片,我们支持下列两种方式,或进行组合来自由的进行老照片修复任务:

  • 从命令行运行源码修复图片
  • 基于SDWebUI修复图片

(如您不需要使用/修改源码,可直接移步至基于 SDWebUI修复图片 节)

4. 基于源码修复图片

4.1 修复概述

根据模型处理方式的不同,我们将老照片图像修复任务的步骤大致分为以下几步:

  • 图像去噪:去除图像中的噪声、模糊等
  • 图像超分:提升图像分辨率及清晰度
  • 面部增强:检测并修复老照片中的人脸
  • 图像上色:有条件/无条件的进行老照片上色
  • 划痕清理:检测划痕位置/手动标记划痕位置,进行图像填充

在Gallery中,我们整理并集成了大量相关领域的开源算法及其预训练模型供您方便的进行一键式使用。

您也可以在notebook中进一步优化/开发您的老照片修复算法。

已经包含的算法包括:

功能

算法

链接

图像去噪

Restormer (CVPR 2022)

https://github.com/swz30/Restormer

NAFNet (ECCV 2022)

https://github.com/megvii-research/NAFNet

图像超分

RealESRGAN (ICCVW 2021)

https://github.com/xinntao/Real-ESRGAN

SwinIR (ICCVW 2021)

https://github.com/JingyunLiang/SwinIR

HAT (CVPR 2023)

https://github.com/XPixelGroup/HAT

面部增强

CodeFormer (NeurIPS 2022)

https://github.com/sczhou/CodeFormer

图像上色

DDC (ICCV 2023)

https://github.com/piddnad/DDColor

DeOldify

https://github.com/jantic/DeOldify

Unicolor (TOG2020)

https://github.com/luckyhzt/unicolor

划痕清理

LaMa (WACV 2022)

https://github.com/advimman/lama

4.2 修复示例

4.2.1 一般示例

本教程所提供的大部分案例,您可通过一键下载,并运行相应的命令行命令进行执行。

这里我们以RealESRGAN算法进行展示。

Step1: 代码/模型下载

1.png

下载解压完成后,您可在对应文件夹中查看该算法的源代码

1.png

Step2: 执行推理

具体算法参数,您可参考notebook中的相关参数进行设置。

通过指定输入的文件夹/输出的文件夹,您可运行相关算法进行图像修复的相关任务。

1.png

Step3: 算法结果

执行完成后您可在results/{task_name}中看见修复后的图像结果。

1.png

4.2.2 有条件上色

我们提供了基于SAM和Unicolor的半交互式上色及修改的管线

step_1: 初始化模型

引入依赖包以及初始化SAM和unicolor模型

1.png

step_2:读取图片

读取上色前的黑白图片以及通过上述无参考的DDC/DeOldify获取的上色图片,并画出坐标系方便选取参考点和参考格

1.png

1692704520257-d87eded4-e525-4080-a751-30bc1902e53b.png1.png

step_3:提供提示点

由于该算法使用256x256大小图像下的16x16的方格作为颜色的提示,选择需要改变颜色的方格的左上格点坐标,以及需要改变成的颜色,并选取格点中心作为SAM的提示点(左图为SAM的提示点,右图为unicolor的提示方块)

1.png

1.png

step_3:选取蒙版

调用SAM生成多个需要替换颜色部分的蒙版,并选择最贴合替换区域的蒙版,如果无参考上色的图片颜色较为流畅,建议使用上色后图片作为输入

1.png2.png3.png

step_4: 生成基于参考的图片并替换:

使用unicolor获取指定区域颜色后的图像并用SAM生成的蒙版替换

1.png

4.2.3 划痕清理

Step1: 代码/模型下载

1.png

Step2: 启动UI

1.png

单机生成的链接可进入UI页面

1.png

Step3: 交互式操作

1.png

2.png

Step4: 查看结果

您可在右侧查看结果(如待修复图像分辨率过大,预览可能失败)。您可在控制台中查看图片生成路径,并在页面中打开。

1.png

5. 基于SDWebUI修复图片

SD WebUI是目前最受欢迎的AI绘画工具之一,在图像生成任务的基础上,其集成了丰富的超分模型,可用于可视化的图像修复。通过交互式的控制,用户可以更加精细化、方便的进行图像修复任务。

为了解决模型/插件下载困难的用户特点,我们在本教程中预置了图像修复相关插件/模型,供用户更轻松、便捷的体验机遇SD WebUI的老照片修复功能。

已经支持的模型/插件包括:

  • 预置插件/模型 列表

插件

功能

链接

stable-diffusion-webui-localization-zh_CN

页面汉化

https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN

a1111-sd-webui-tagcomplete

Tag  自动补全

https://github.com/DominikDoom/a1111-sd-webui-tagcomplete

multidiffusion-upscaler-for-automatic1111

Diffusion/VAE的显存优化

https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111

sd-webui-stablesr

基于StableSR的超分

https://github.com/pkuliyi2015/sd-webui-stablesr

sd-webui-deoldify

基于DeOldify的图像上色

https://github.com/SpenserCai/sd-webui-deoldify

sd-webui-controlnet

基于ControlNet的图像重绘

https://github.com/Mikubill/sd-webui-controlnet

功能

模型

基模型

realisticVisionV40_v40VAE.safetensors

(仅用于StableSR)

v2-1_768-ema-pruned.safetensors

超分

4X-UltraSharp

BSRGAN

ESRGAN

Real  ESRGAN

Real  ESRGAN Anime

ScuNet

ScuNet  PSNR

SwinIR  4x

StableSR

面部增强

GFPGAN

CodeFormer

图像上色

DeOldify

DeOldify_Artistic

ControlNet

canny

depth

5.1 启动SDWebUI

Step1: 代码/模型下载

(我们预置了诸多模型及插件,此处下载&解压需要10-15min)

1.png

Step2: 启动SDWebUI

2.png

启动完成后,可单击链接进入WebUI界面:

3.png

4.png

  • 您可利用WebUI进行任意的操作来进行老照片的修复,下面我们提供了最常见的三种操作方式。

5.2 附加功能

5.2.1 操作步骤

您可在附加功能选项卡中对图像进行适当的超分/面部增强/图像上色任务。

1.png

5.2.2 下载生成图像

生成结果保存在 stable-diffusion-webui/outputs/extras-images/date 文件夹中

在DSW的Notebook选项卡中右键下载(Download)即可将图片下载到本地

5.3 StableSR插件

5.3.1 操作步骤

1.png

2.png

3.png

5.3.2 下载生成图像

生成结果保存在 stable-diffusion-webui/outputs/img2img-images/date 文件夹中

在DSW的Notebook选项卡中右键下载(Download)即可将图片下载到本地

5.4 局部重绘

5.4.1 操作步骤

1.png

2.png

【可选】(设置ControlNet 进行局部可控的重绘)

3.png

4.png

5.4.2 下载生成图像

生成结果保存在 stable-diffusion-webui/outputs/img2img-images/date 文件夹中

在DSW的Notebook选项卡中右键下载(Download)即可将图片下载到本地

6. 完成

7. 资源清理及后续

7.1 清理

  • 领取免费资源包后,请在免费额度和有效试用期内使用。如果免费额度用尽或试用期结束后,继续使用计算资源,会产生后付费账单。请前往资源实例管理页面,查看免费额度使用量和过期时间,如下图所示。
  • 1.png
  • 如果无需继续使用DSW实例,您可以按照以下操作步骤停止DSW实例。
  1. 登录PAI控制台
  2. 在页面左上方,选择DSW实例的地域。
  3. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击默认工作空间名称,进入对应工作空间内。
  4. 在工作空间页面的左侧导航栏选择模型开发与训练>交互式建模(DSW),进入交互式建模(DSW)页面。
  5. 单击目标实例操作列下的停止,成功停止后即停止资源消耗。
  • 如果需要继续使用DSW实例,请务必至少在试用到期1小时前为您的阿里云账号充值,到期未续费的DSW实例会因欠费而被自动停止。

7.2 后续

在试用有效期期间,您还可以继续使用DSW实例进行模型训练和推理验证。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6月前
|
IDE 开发工具
垃圾分类模型训练部署教程,基于MaixHub和MaixPy-k210(3)
在开发板上运行模型 1、烧录模型文件到板子 使用kflash_gui工具,可以完成这个任务。
389 0
|
6月前
|
机器学习/深度学习 Python
垃圾分类模型训练部署教程,基于MaixHub和MaixPy-k210(2)
至此,我们就已经成功上传了其中一个类别的图片啦!按照上面的方式,我们可以继续上传其余每个类别的图片。 上传完所有类别的图片后,来到总览,可以大致浏览我们刚刚上传的图片。 接下来,就要用这些图片来训练用于垃圾分类的模型了!
318 0
|
6月前
|
IDE 数据处理 开发工具
垃圾分类模型训练部署教程,基于MaixHub和MaixPy-k210(1)
我的准备 Maix duino开发板一块(含摄像头配件) Type-c数据集一根
302 0
|
2月前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
106 3
|
6月前
|
机器学习/深度学习 数据采集 算法
机器学习之sklearn基础教程
机器学习之sklearn基础教程
|
6月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
293 1
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
355 1
|
3月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】klearn基础教程
scikit-learn(通常缩写为sklearn)是一个用于Python编程语言的强大机器学习库。它提供了各种分类、回归、聚类算法,以及数据预处理、降维和模型评估的工具。以下是sklearn的基础教程,帮助你开始使用它
27 3
|
5月前
|
机器学习/深度学习 数据采集 自然语言处理
机器学习之sklearn基础教程
机器学习之sklearn基础教程
|
6月前
|
机器学习/深度学习 人工智能 PyTorch
《人工智能专栏》专栏介绍 & 专栏目录 & Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程
《人工智能专栏》专栏介绍 & 专栏目录 & Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程
189 1

热门文章

最新文章

相关产品

  • 人工智能平台 PAI