模型:
kakaobrain/karlo-v1-alpha-image-variations
Karlo是基于OpenAI的unCLIP架构的文本条件图像生成模型,改进了标准超分辨率模型,将分辨率从64px提升到256px,仅在有限数量的去噪步骤中还原高频细节。
Karlo可以在diffusers中使用!
pip install diffusers transformers accelerate safetensors
from diffusers import UnCLIPPipeline import torch pipe = UnCLIPPipeline.from_pretrained("kakaobrain/karlo-v1-alpha", torch_dtype=torch.float16) pipe = pipe.to('cuda') prompt = "a high-resolution photograph of a big red frog on a green leaf." image = pipe([prompt]).images[0] image.save("./frog.png")
from diffusers import UnCLIPImageVariationPipeline import torch from PIL import Image pipe = UnCLIPImageVariationPipeline.from_pretrained("kakaobrain/karlo-v1-alpha-image-variations", torch_dtype=torch.float16) pipe = pipe.to('cuda') image = Image.open("./frog.png") image = pipe(image).images[0] image.save("./frog-variation.png")
Karlo是基于unCLIP的文本条件扩散模型,由先验、解码器和超分辨率模块组成。在这个存储库中,我们包含了标准超分辨率模块的改进版本,用于在7个反向步骤中将64px的图像放大到256px,如下图所示:
具体而言,标准的SR模块通过DDPM目标在前6个去噪步骤中使用重排技术将64px放大到256px。然后,额外的经过微调的SR模块通过 VQ-GAN 风格损失执行最后一步反向操作以恢复高频细节。我们观察到这种方法非常有效地将低分辨率图像放大到较高分辨率,仅需较少的反向步骤。
我们从头开始训练所有组件,使用了包括COYO-100M、CC3M和CC12M在内的115M个图像-文本对。在先验和解码器的情况下,我们使用了OpenAI提供的ViT-L/14。与unCLIP的原始实现不同,我们将解码器中的可训练transformer替换为ViT-L/14中的文本编码器,以提高效率。在SR模块的情况下,我们首先使用DDPM目标在100万步训练模型,然后进行额外的23.4万步来微调额外组件。下表总结了我们组件的重要统计数据:
Prior | Decoder | SR | |
---|---|---|---|
CLIP | ViT-L/14 | ViT-L/14 | - |
#param | 1B | 900M | 700M + 700M |
#optimization steps | 1M | 1M | 1M + 0.2M |
#sampling steps | 25 | 50 (default), 25 (fast) | 7 |
Checkpoint links | 1239321 , 12310321 , 12311321 | 12312321 | 12313321 |
在检查点链接中,ViT-L-14等价于原始版本,但我们为方便起见将其包含在内。我们还注意到,ViT-L-14-stats用于归一化先验模块的输出。
我们在CC3M和MS-COCO的验证集中定量评估Karlo-v1.0.alpha的性能。下表显示了CLIP分数和FID。为了测量FID,我们将较短一侧的图像调整大小为256px,然后在中心进行裁剪。我们在所有情况下为先验和解码器设置了不依赖分类器的引导尺度,分别为4和8。我们观察到,即使在解码器的25个采样步骤中,我们的模型也能够达到合理的性能。
CC3M
Sampling step | CLIP-s (ViT-B/16) | FID (13k from val) |
---|---|---|
Prior (25) + Decoder (25) + SR (7) | 0.3081 | 14.37 |
Prior (25) + Decoder (50) + SR (7) | 0.3086 | 13.95 |
MS-COCO
Sampling step | CLIP-s (ViT-B/16) | FID (30k from val) |
---|---|---|
Prior (25) + Decoder (25) + SR (7) | 0.3192 | 15.24 |
Prior (25) + Decoder (50) + SR (7) | 0.3192 | 14.43 |
有关更多信息,请参阅即将发布的技术报告。
此版本的Karlo在包括 COYO -100M高质量子集、CC3M和CC12M在内的115M个图像-文本对上进行了训练。对于对更大规模高质量数据集上训练的更好版本的Karlo感兴趣的人,请访问我们的应用程序 B^DISCOVER 的首页。
如果您在研究中发现这个存储库对您有用,请引用:
@misc{kakaobrain2022karlo-v1-alpha, title = {Karlo-v1.0.alpha on COYO-100M and CC15M}, author = {Donghoon Lee, Jiseob Kim, Jisu Choi, Jongmin Kim, Minwoo Byeon, Woonhyuk Baek and Saehoon Kim}, year = {2022}, howpublished = {\url{https://github.com/kakaobrain/karlo}}, }