TencentARC/MasaCtrl

无法很好的图像重建

hl123-123 opened this issue · 10 comments

我在colab使用https://github.com/TencentARC/MasaCtrl/blob/main/gradio_app/real_image_editing_app.py 中的 real_image_editing函数进行source_img -> target_img ,但是进行了多次实验我的source_img并不能很好的进行图像重建,我更改了seed和scale依旧图像重建的图像和原source_img不一致,但是多次重建后的图像却一模一样.我不明白其中的原理.
DDIM是确定性 的scheduler,可以解释多次改变seed,重建后的图像一模一样.可为啥重建后的图像和原图不一致呢.
因为图像重建不一致,导致生成的target_img和source_img形象差距很大.

我是使用real_image_editing_app.py中load_image函数导入图像的

img = load_image("/content/MasaCtrl/gradio_app/images/corgi.jpg")#/content/MasaCtrl/gradio_app/images/corgi.jpg)
x = real_image_editing(img,"A photo of a running corgi",4,10,50,7.5,51,"","")

这是我colab的地址https://colab.research.google.com/drive/1q9nofIF1IHvdcqMHEPDzcl6v4sZjsfj7?usp=share_link#scrollTo=IXY3kL88Nhyg

这是source_img
下载 (1)

这是重建后的图像
下载

这是target_img
下载 (2)

经过了测试我发现了一个很有意思的事情,就是输入模型的图片色彩通道顺序(RGB通道还是BGR通道),还有/255还是/127.5-1,都会影响最终的图像重建结果(针对于有些图像,尤其是柯基这只狗)。

好像这只狗特别不好搞,还是针对于图像背景就是很干净,很白的图像都会出现这种问题呢

我推荐使用BGR+ /127.5-1这种组合输入图像,重建效果较好。

这是其中一组例子:

原图:
QQ图片20230507214007

重建图1(使用你们提供的load_image,即RGB+/127.5-1)
下载 (3)

重建图2(BGR+/127.5-1)
下载 (4)

你好,建议使用playground_real.ipynb中提供的demo进行测试,针对于corgi.jpg也具有良好的重建效果。

THANKS A LOT.经过比对测试,我发现原来默认global_context里面model path是“andite/anything-v4.0”,但是playground_real.ipynb中model path是“CompVis/stable-diffusion-v1-4”。使用“andite/anything-v4.0”并不能很好的图像重建

THANKS A LOT.经过比对测试,我发现原来默认global_context里面model path是“andite/anything-v4.0”,但是playground_real.ipynb中model path是“CompVis/stable-diffusion-v1-4”。使用“andite/anything-v4.0”并不能很好的图像重建

不太对,不太对。应该说“CompVis/stable-diffusion-v1-4”可以较好的重建柯基这只狗但是不能很好重建动漫人物,比如我上方这个例子。从左到右是 原图,重建,使用prompt生成,masactrl的效果。
all_step4_layer10

所以说 图像重建的好坏和本身模型有很大的关系。

好像图像风格 和 模型权重的选择 要比较搭才行,通用性不是那么高啊

好像图像风格 和 模型权重的选择 要比较搭才行,通用性不是那么高啊

所以这个可以通过使用类似T2I-adapter 和muti-controlnet这种结合 辅助信息引导进行缓解吗

好像图像风格 和 模型权重的选择 要比较搭才行,通用性不是那么高啊

和生成是一个道理。在生成动漫图像的时候会选择Anything而不是原始的SD. 不同domain之间的数据差异还是挺好,选择对应的pretrained model能够更好的进行重建和编辑。

好像图像风格 和 模型权重的选择 要比较搭才行,通用性不是那么高啊

所以这个可以通过使用类似T2I-adapter 和muti-controlnet这种结合 辅助信息引导进行缓解吗

T2I-Adapter 和ControlNet能够帮助生成target layout, 但无法缓解domain的问题。同时,他们也需要选择不同pretrained model进行使用。:smile: