这篇文章发表于ICCV 2023,代码官网:TencentARC/MasaCtrl: [ICCV 2023] Consistent Image Synthesis and Editing (github.com)
一、环境准备
提前准备好python、pytorch环境,显存需要至少16GB。
二、配置项目环境
这里直接pip下载项目所有的依赖包就行,没什么特别需要注意的点。
pip install -r requirements.txt
三、运行
这里我主要用最基础的使用方法来说明,也就是运行它本地的Gradio图形化界面。官网给的示例运行代码就是直接跑app.py文件就行。
CUDA_VISIBLE_DEVICES=0 python app.py
注:这里记录一下我自己复现时出现的一些问题,如果读者有遇到相似情况可以借鉴。
1.加载的预训练模型
在app.py和app_utils.py两个文件中,它记录了默认加载的一些模型,但是因为网络问题,是无法在运行时自动下载的。所以这里我们需要将预训练的模型下载下来然后更改到本地路径。
比如我这里更改如下:
app.py:
app_utils.py:
2. Gradio问题
一开始它提示我:
然后我以为可能是版本的问题,然后我就更新到4.29.0,然后报了下面的错:
这里它的意思就是说没有这个参数,然后我百度了一会终于找到了解决的办法:我们需要将label该成value。主要是在下面两个位置:
image_systhensis_app.py 文件
real_image_editing_app.py
到这里,我的项目就启动起来了:
3.访问图形化界面
但是因为我是在服务器上跑的,我在本地访问这个url时,访问拒绝了。一开始我将他直接改成我服务器的ip地址,但是还是给我拒绝访问。如果大家也有这个问题可以参考一下我最后的改法:
其实就是在app.py文件中,设置一下启动的参数:分别是服务器的ip地址、端口号和inbrowser(,最后一个可有可无,就是启动后是否需要默认在浏览器中打开)。
四、实现一致的图像编辑
如果一切顺利的话,我们就可以在所提供的图形化界面中运行MasaCtrl了:
MasaCtrl提供了两种实现方法,一种是编辑生成的图像,另一种是对真实图像进行编辑。
下图是我进行编辑生成的图像,可能是设备差异又或者默认参数需要调整,反正我这里生成的图片感觉质量一般。从左到右分别是:
1. 在源提示下生成的图片
2. 目标提示下生成的图片(固定随机种子)
3. 利用MasaCtrl对2进行优化后的图片
这里是对真实图像进行编辑的效果,实际上效果也一般。