Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用更大规模的数据训练,会有更好的效果吗? #102

Open
rainsoulsrx opened this issue Mar 11, 2024 · 17 comments
Open

使用更大规模的数据训练,会有更好的效果吗? #102

rainsoulsrx opened this issue Mar 11, 2024 · 17 comments

Comments

@rainsoulsrx
Copy link

你好,如题,请问有没有做过这样的实验,使用更大量级的训练集训练的话,会有更加显性的结果吗?和后面开源的supir相比,想知道supir的效果更多的是数据的贡献还是整体架构的贡献

@0x3f3f3f3fun
Copy link
Collaborator

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

@rainsoulsrx
Copy link
Author

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

感谢你的回复,期待后面调整分析的结论,感恩!!

@rainsoulsrx
Copy link
Author

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

supir的作者一直没有回复我o(╥﹏╥)o所以更加感谢你的回复~~!!

@rainsoulsrx
Copy link
Author

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

你好,我想问下这1500w张高清图片时如何使用的呢,加入原图的尺寸比较大,假设是6000*4000,那么是将全图reszie之后,再crop成512的分辨率吗,还是说,全图的尺寸不做缩放,直接在其中随机crop出来512分辨率的小块进行训练呢?

@CuddleSabe
Copy link

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

你好,我想问下这1500w张高清图片时如何使用的呢,加入原图的尺寸比较大,假设是6000*4000,那么是将全图reszie之后,再crop成512的分辨率吗,还是说,全图的尺寸不做缩放,直接在其中随机crop出来512分辨率的小块进行训练呢?

看论文是crop 512,感觉他们的数据集尺寸不会太大,所以没有crop之后无实际语义的情况。
我这边在1.5上训练了他们的zerosft和zero cross attn,相比于普通的controlnet还是有很大提升的

@0x3f3f3f3fun
Copy link
Collaborator

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

你好,我想问下这1500w张高清图片时如何使用的呢,加入原图的尺寸比较大,假设是6000*4000,那么是将全图reszie之后,再crop成512的分辨率吗,还是说,全图的尺寸不做缩放,直接在其中随机crop出来512分辨率的小块进行训练呢?

你好。我们是直接随机裁剪512的patch来训练的,使用的函数是random_crop_arr,将min_crop_frac设置为0.7。不过我们训练集的图片都没有到6000*4000这个级别,大部分应该是1000左右,所以crop出来的图像还是有一定内容的。如果图片特别大的话,直接裁剪512的patch可能语义信息比较弱,不能充分使用SD的生成能力(猜测,未经实验验证)。

@rainsoulsrx
Copy link
Author

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

你好,我想问下这1500w张高清图片时如何使用的呢,加入原图的尺寸比较大,假设是6000*4000,那么是将全图reszie之后,再crop成512的分辨率吗,还是说,全图的尺寸不做缩放,直接在其中随机crop出来512分辨率的小块进行训练呢?

你好。我们是直接随机裁剪512的patch来训练的,使用的函数是random_crop_arr,将min_crop_frac设置为0.7。不过我们训练集的图片都没有到6000*4000这个级别,大部分应该是1000左右,所以crop出来的图像还是有一定内容的。如果图片特别大的话,直接裁剪512的patch可能语义信息比较弱,不能充分使用SD的生成能力(猜测,未经实验验证)。

那比如说我从一些网站上下载了很多高质量图,比如pexels之类的,图像原本的分辨率都是很大的单反图,这种图像,怎样利用才能发挥出更大的价值呢。

@rainsoulsrx
Copy link
Author

还有个疑问是,网络上的高清数据,如果是单反相机拍摄的话,就会存在很多背景虚化的图像,这种图像,是不是也不应该包含在训练集中,会影响到模型的学习

@CuddleSabe
Copy link

CuddleSabe commented Apr 29, 2024

还有个疑问是,网络上的高清数据,如果是单反相机拍摄的话,就会存在很多背景虚化的图像,这种图像,是不是也不应该包含在训练集中,会影响到模型的学习

你可以自己实验一下,我是用diffusers复现然后8*a100自训的sd1.5版本supir。数据集大概30m左右,很多单反的背景模糊图像。初期在1.5w次iter之前是会有部分部位模糊的现象,但是到1.5w之后整个模型就收敛了,不会出现局部模糊的情况

贴一个效果图
1

elephant_input

@rainsoulsrx
Copy link
Author

还有个疑问是,网络上的高清数据,如果是单反相机拍摄的话,就会存在很多背景虚化的图像,这种图像,是不是也不应该包含在训练集中,会影响到模型的学习

你可以自己实验一下,我是用diffusers复现然后8*a100自训的sd1.5版本supir。数据集大概30m左右,很多单反的背景模糊图像。初期在1.5w次iter之前是会有部分部位模糊的现象,但是到1.5w之后整个模型就收敛了,不会出现局部模糊的情况

贴一个效果图 1

elephant_input

你也是从原始图像中,随机裁剪出512的区域训练吗,基本能保证每次裁剪都包含图像的主体部分对吗?

@CuddleSabe
Copy link

还有个疑问是,网络上的高清数据,如果是单反相机拍摄的话,就会存在很多背景虚化的图像,这种图像,是不是也不应该包含在训练集中,会影响到模型的学习

你可以自己实验一下,我是用diffusers复现然后8*a100自训的sd1.5版本supir。数据集大概30m左右,很多单反的背景模糊图像。初期在1.5w次iter之前是会有部分部位模糊的现象,但是到1.5w之后整个模型就收敛了,不会出现局部模糊的情况
贴一个效果图 1
elephant_input

你也是从原始图像中,随机裁剪出512的区域训练吗,基本能保证每次裁剪都包含图像的主体部分对吗?

我是剔除掉0.5<长宽比<2的图像,然后最短边resize到512,再crop出512大小

@rainsoulsrx
Copy link
Author

还有个疑问是,网络上的高清数据,如果是单反相机拍摄的话,就会存在很多背景虚化的图像,这种图像,是不是也不应该包含在训练集中,会影响到模型的学习

你可以自己实验一下,我是用diffusers复现然后8*a100自训的sd1.5版本supir。数据集大概30m左右,很多单反的背景模糊图像。初期在1.5w次iter之前是会有部分部位模糊的现象,但是到1.5w之后整个模型就收敛了,不会出现局部模糊的情况

你也是从原始图像中,随机裁剪出512的区域训练吗,基本能保证每次裁剪都包含图像的主体部分对吗?

我是剔除掉0.5<长宽比<2的图像,然后最短边resize到512,再crop出512大小

这样的话,在reszie的过程中,其是会损失掉原图的细节吧,比如原始图像分辨率4k*6k,在reszie之后就会损失掉很多了,这样训练出来的模型生成效果的上限降低了吧

@CuddleSabe
Copy link

还有个疑问是,网络上的高清数据,如果是单反相机拍摄的话,就会存在很多背景虚化的图像,这种图像,是不是也不应该包含在训练集中,会影响到模型的学习

你可以自己实验一下,我是用diffusers复现然后8*a100自训的sd1.5版本supir。数据集大概30m左右,很多单反的背景模糊图像。初期在1.5w次iter之前是会有部分部位模糊的现象,但是到1.5w之后整个模型就收敛了,不会出现局部模糊的情况

你也是从原始图像中,随机裁剪出512的区域训练吗,基本能保证每次裁剪都包含图像的主体部分对吗?

我是剔除掉0.5<长宽比<2的图像,然后最短边resize到512,再crop出512大小

这样的话,在reszie的过程中,其是会损失掉原图的细节吧,比如原始图像分辨率4k*6k,在reszie之后就会损失掉很多了,这样训练出来的模型生成效果的上限降低了吧

重要的是保持结构一致性,保持训练和推理的分布一直。你想一想用户输入哪里会有给4k*6k的图像做supir修复的

@rainsoulsrx
Copy link
Author

还有个疑问是,网络上的高清数据,如果是单反相机拍摄的话,就会存在很多背景虚化的图像,这种图像,是不是也不应该包含在训练集中,会影响到模型的学习

你可以自己实验一下,我是用diffusers复现然后8*a100自训的sd1.5版本supir。数据集大概30m左右,很多单反的背景模糊图像。初期在1.5w次iter之前是会有部分部位模糊的现象,但是到1.5w之后整个模型就收敛了,不会出现局部模糊的情况

你也是从原始图像中,随机裁剪出512的区域训练吗,基本能保证每次裁剪都包含图像的主体部分对吗?

我是剔除掉0.5<长宽比<2的图像,然后最短边resize到512,再crop出512大小

这样的话,在reszie的过程中,其是会损失掉原图的细节吧,比如原始图像分辨率4k*6k,在reszie之后就会损失掉很多了,这样训练出来的模型生成效果的上限降低了吧

重要的是保持结构一致性,保持训练和推理的分布一直。你想一想用户输入哪里会有给4k*6k的图像做supir修复的

但是用户还是有可能输入一个1024*1024的图,做修复的,如果训练的时候按照短边512 reszie了的话,那么模型生成的上限就被限制在1024之下了,如果输入1024的图做修复,效果会打折扣

@CuddleSabe
Copy link

限制在1024之下了,如果输入1024的图做修复,效果会打折

supir也是512训练的,只是original_size指定为1024来作为额外的embedding,而我们公司有我们自己的技术可以512训练1024生成

@rainsoulsrx
Copy link
Author

限制在1024之下了,如果输入1024的图做修复,效果会打折

supir也是512训练的,只是original_size指定为1024来作为额外的embedding,而我们公司有我们自己的技术可以512训练1024生成

厉害~感谢讨论~~

@coolKeen
Copy link

coolKeen commented Jul 9, 2024

你好,SUPIR我不是很了解,你可以询问SUPIR的作者来获取准确的回答~。关于DiffBIR,我们昨天更新了一版模型,训练数据用的是过滤(比较粗糙)之后的laion2b-en的子集,总共1500w张高清图片,但是效果没有SUPIR那么明显的提升,我觉得原因可能是:1)SD v2.1的生成能力有限 2)数据集不完整,存在bias,后续需要再仔细调整一下。

感谢你的回复,期待后面调整分析的结论,感恩!!

哥,这1500w张图片的图片名有不,方便提供下不~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants