Kolors: 用于逼真文本到图像合成的高效扩散模型训练
目录
🎉 最新消息
-
2024.08.06 🔥 姿势ControlNet已发布!请查看ControlNet(姿势)以获取更多详情。
-
2024.08.01 🔥 Kolors-Dreambooth-LoRA训练和推理代码已发布!请查看Dreambooth-LoRA以获取更多详情。
-
2024.07.31 🔥 Kolors-IP-Adapter-FaceID-Plus权重和推理代码已发布!请查看IP-Adapter-FaceID-Plus以获取更多详情。
-
2024.07.26 🔥 ControlNet和修复模型已发布!请查看ControlNet(Canny, Depth)和修复模型以获取更多详情。
-
2024.07.17 🔥 Kolors-IP-Adapter-Plus权重和推理代码已发布!请查看IP-Adapter-Plus以获取更多详情。
-
2024.07.12 🤗 Kolors现已在Diffusers中可用!请查看kolors-diffusers或下面的示例以获取详情!感谢Diffusers团队的技术支持。
-
2024.07.10 🤖 Kolors支持ModelScope。
-
2024.07.06 🔥🔥🔥 我们发布了Kolors,这是一个在数十亿文本-图像对上训练的大型文本到图像模型。该模型支持中英双语,并支持256个token的上下文长度。有关更多技术细节,请参阅技术报告。
-
2024.07.03 📊 Kolors在FlagEval多模态文本到图像排行榜上获得第二名,特别是在中文和英文主观质量评估中表现出色,Kolors获得第一名。
-
2024.07.02 🎉 恭喜!我们关于可控视频生成的论文DragAnything: 使用实体表示的任意物体运动控制已被ECCV 2024接收。
-
2024.02.08 🎉 恭喜!我们关于生成模型评估的论文学习多维人类偏好用于文本到图像生成已被CVPR 2024接收。
📑 开源计划
- Kolors (文本到图像模型)
- 推理
- 检查点
- IP-Adapter
- ControlNet (Canny, Depth)
- 修复
- IP-Adapter-FaceID
- LoRA
- ControlNet (姿势)
- ComfyUI
- Gradio
- Diffusers
📖 简介
Kolors是由快手Kolors团队开发的基于潜在扩散的大规模文本到图像生成模型。通过在数十亿文本-图像对上训练,Kolors在视觉质量、复杂语义准确性以及中英文字符的文本渲染方面都展现出显著优势,超越了开源和闭源模型。此外,Kolors支持中英双语输入,在理解和生成中国特定内容方面表现出色。更多详情请参阅这份技术报告。
📊 评估
我们收集了一个名为KolorsPrompts的综合文本到图像评估数据集,用于比较Kolors与其他最先进的开放模型和闭源模型。KolorsPrompts包含超过1,000个提示,涵盖14个类别和12个评估维度。评估过程结合了人工和机器评估。在相关基准评估中,Kolors展示了极具竞争力的表现,达到了行业领先水平。
人工评估
对于人工评估,我们邀请了50位图像专家对不同模型生成的结果进行比较评估。专家根据视觉吸引力、文本忠实度和整体满意度三个标准对生成的图像进行评分。在评估中,Kolors获得了最高的整体满意度得分,并在视觉吸引力方面显著领先于其他模型。
模型 | 平均整体满意度 | 平均视觉吸引力 | 平均文本忠实度 |
---|---|---|---|
Adobe-Firefly | 3.03 | 3.46 | 3.84 |
Stable Diffusion 3 | 3.26 | 3.50 | 4.20 |
DALL-E 3 | 3.32 | 3.54 | 4.22 |
Midjourney-v5 | 3.32 | 3.68 | 4.02 |
Playground-v2.5 | 3.37 | 3.73 | 4.04 |
Midjourney-v6 | 3.58 | 3.92 | 4.18 |
Kolors | 3.59 | 3.99 | 4.17 |
所有模型结果均使用2024年4月的产品版本进行测试
机器评估
我们在KolorsPrompts上使用MPS(多维人类偏好得分)作为机器评估的评估指标。Kolors获得了最高的MPS得分,这与人工评估的结果一致。
模型 | 总体MPS |
---|---|
Adobe-Firefly | 8.5 |
Stable Diffusion 3 | 8.9 |
DALL-E 3 | 9.0 |
Midjourney-v5 | 9.4 |
Playground-v2.5 | 9.8 |
Midjourney-v6 | 10.2 |
Kolors | 10.3 |
有关更多实验结果和详细信息,请参阅我们的技术报告。
🎥 可视化
- 高质量人像
- 中国元素生成
- 复杂语义理解
- 文本渲染
上述可视化的案例提示可以在这里访问。
🛠️ 使用方法
要求
- Python 3.8 或更高版本
- PyTorch 1.13.1 或更高版本
- Transformers 4.26.1 或更高版本
- 推荐:CUDA 11.7 或更高版本
- 克隆仓库并安装依赖
apt-get install git-lfs
git clone https://github.com/Kwai-Kolors/Kolors
cd Kolors
conda create --name kolors python=3.8
conda activate kolors
pip install -r requirements.txt
python3 setup.py install
- 下载权重(链接):
huggingface-cli download --resume-download Kwai-Kolors/Kolors --local-dir weights/Kolors
或
git lfs clone https://huggingface.co/Kwai-Kolors/Kolors weights/Kolors
- 推理:
python3 scripts/sample.py "一张瓢虫的照片,微距,变焦,高质量,电影,拿着一个牌子,写着"可图""
# 图像将保存在 "scripts/outputs/sample_text.jpg"
- Web演示:
python3 scripts/sampleui.py
使用Diffusers
确保升级到最新版本(0.30.0.dev0)的diffusers:
git clone https://github.com/huggingface/diffusers
cd diffusers
python3 setup.py install
注意:
- 该pipeline默认使用
EulerDiscreteScheduler
。我们建议使用此调度器时,设置guidance scale=5.0
和num_inference_steps=50
。 - 该pipeline还支持
EDMDPMSolverMultistepScheduler
。对于此调度器,guidance scale=5.0
和num_inference_steps=25
是一个不错的默认设置。 - 除了文本到图像外,
KolorsImg2ImgPipeline
还支持图像到图像。
然后你可以运行:
import torch
from diffusers import KolorsPipeline
pipe = KolorsPipeline.from_pretrained(
"Kwai-Kolors/Kolors-diffusers",
torch_dtype=torch.float16,
variant="fp16"
).to("cuda")
prompt = '一张瓢虫的照片,微距,变焦,高质量,电影,拿着一个牌子,写着"可图"'
image = pipe(
prompt=prompt,
negative_prompt="",
guidance_scale=5.0,
num_inference_steps=50,
generator=torch.Generator(pipe.device).manual_seed(66),
).images[0]
image.show()
IP-Adapter-Plus
我们提供了IP-Adapter-Plus权重和推理代码,详见ipadapter。
# 下载权重
huggingface-cli download --resume-download Kwai-Kolors/Kolors-IP-Adapter-Plus --local-dir weights/Kolors-IP-Adapter-Plus
# 推理:
python3 ipadapter/sample_ipadapter_plus.py ./ipadapter/asset/test_ip.jpg "穿着黑色T恤衫,上面中文绿色大字写着"可图""
python3 ipadapter/sample_ipadapter_plus.py ./ipadapter/asset/test_ip2.png "一只可爱的小狗在奔跑"
# 图像将保存在 "scripts/outputs/"
ControlNet
我们提供了三个ControlNet权重和推理代码,详见controlnet。
# 下载权重
# Canny - ControlNet
huggingface-cli download --resume-download Kwai-Kolors/Kolors-ControlNet-Canny --local-dir weights/Kolors-ControlNet-Canny
# Depth - ControlNet
huggingface-cli download --resume-download Kwai-Kolors/Kolors-ControlNet-Depth --local-dir weights/Kolors-ControlNet-Depth
# Pose - ControlNet
huggingface-cli download --resume-download Kwai-Kolors/Kolors-ControlNet-Pose --local-dir weights/Kolors-ControlNet-Pose
如果你打算使用深度估计网络,请确保下载其对应的模型权重。
huggingface-cli download lllyasviel/Annotators ./dpt_hybrid-midas-501f0c75.pt --local-dir ./controlnet/annotator/ckpts
感谢DWPose,你可以使用姿势估计网络。请下载Pose模型dw-ll_ucoco_384.onnx(百度网盘,谷歌云盘)和Det模型yolox_l.onnx(百度网盘,谷歌云盘)。然后请将它们放入controlnet/annotator/ckpts/
。
# 推理:
python ./controlnet/sample_controlNet.py ./controlnet/assets/woman_1.png 一个漂亮的女孩,高品质,超清晰,色彩鲜艳,超高分辨率,最佳品质,8k,高清,4K Canny
python ./controlnet/sample_controlNet.py ./controlnet/assets/woman_2.png 新海诚风格,丰富的色彩,穿着绿色衬衫的女人站在田野里,唯美风景,清新明亮,斑驳的光影,最好的质量,超细节,8K画质 Depth
python ./controlnet/sample_controlNet.py ./controlnet/assets/woman_3.png 一位穿着紫色泡泡袖连衣裙、戴着皇冠和白色蕾丝手套的女孩双手托脸,高品质,超清晰,色彩鲜艳,超高分辨率,最佳品质,8k,高清,4K Pose
# 图像将保存在 "controlnet/outputs/"
图像修复
我们提供了图像修复权重和推理代码,详见inpainting。
# 下载权重
huggingface-cli download --resume-download Kwai-Kolors/Kolors-Inpainting --local-dir weights/Kolors-Inpainting
# 推理:
python3 inpainting/sample_inpainting.py ./inpainting/asset/3.png ./inpainting/asset/3_mask.png 穿着美少女战士的衣服,一件类似于水手服风格的衣服,包括一个白色紧身上衣,前胸搭配一个大大的红色蝴蝶结。衣服的领子部分呈蓝色,并且有白色条纹。她还穿着一条蓝色百褶裙,超高清,辛烷渲染,高级质感,32k,高分辨率,最好的质量,超级细节,景深
python3 inpainting/sample_inpainting.py ./inpainting/asset/4.png ./inpainting/asset/4_mask.png 穿着钢铁侠的衣服,高科技盔甲,主要颜色为红色和金色,并且有一些银色装饰。胸前有一个亮起的圆形反应堆装置,充满了未来科技感。超清晰,高质量,超逼真,高分辨率,最好的质量,超级细节,景深
# 图像将保存在 "scripts/outputs/"
IP-Adapter-FaceID-Plus
我们提供了IP-Adapter-FaceID-Plus权重和推理代码,详见ipadapter_FaceID。
# 下载权重
huggingface-cli download --resume-download Kwai-Kolors/Kolors-IP-Adapter-FaceID-Plus --local-dir weights/Kolors-IP-Adapter-FaceID-Plus
# 推理:
python ipadapter_FaceID/sample_ipadapter_faceid_plus.py ./ipadapter_FaceID/assets/image1.png "穿着晚礼服,在星光下的晚宴场景中,烛光闪闪,整个场景洋溢着浪漫而奢华的氛围"
python ipadapter_FaceID/sample_ipadapter_faceid_plus.py ./ipadapter_FaceID/assets/image2.png "西部牛仔,牛仔帽,荒野大镖客,背景是西部小镇,仙人掌,日落余晖, 暖色调, 使用XT4胶片拍摄, 噪点, 晕影, 柯达胶卷,复古"
# 图片将保存在 "scripts/outputs/" 目录下
Dreambooth-LoRA
我们提供了LoRA训练和推理代码,详细内容请参见Dreambooth-LoRA。
# 训练:
sh train.sh
# 推理:
python infer_dreambooth.py "ktxl狗在草地上跑"
📜 许可证 & 引用 & 致谢
许可证
Kolors权重对学术研究完全开放。如果您打算根据许可条款和条件将Kolors模型或其衍生品用于商业用途,请将问卷发送至kwai-kolors@kuaishou.com,以向许可方注册。如果被许可方提供的所有产品或服务在上一个日历月的月活跃用户不超过3亿,您向许可方的注册将被视为已获得相应的商业许可;如果被许可方提供的所有产品或服务在上一个日历月的月活跃用户超过3亿,您必须向许可方申请许可,许可方可自行决定是否授予您许可,在我方明确授予您此类权利之前,您不被授权行使本协议下的任何权利。
我们开源Kolors是为了与开源社区合作推动大型文本到图像模型的发展。本项目的代码在Apache-2.0许可下开源。我们诚挚地敦促所有开发者和用户严格遵守开源许可,避免将开源模型、代码及其衍生品用于任何可能危害国家和社会的目的,或用于任何未经安全评估和注册的服务。请注意,尽管我们尽最大努力确保训练过程中数据的合规性、准确性和安全性,但由于生成内容的多样性和组合性以及影响模型的概率随机性,我们无法保证输出内容的准确性和安全性,且模型容易受到误导。本项目不承担因使用开源模型和代码而导致的任何数据安全问题、舆论风险,或因模型被误导、滥用、误用或不当使用而产生的风险和责任。
引用
如果您觉得我们的工作有帮助,请引用它!
@article{kolors,
title={Kolors: Effective Training of Diffusion Model for Photorealistic Text-to-Image Synthesis},
author={Kolors Team},
journal={arXiv preprint},
year={2024}
}
致谢
联系我们
如果您想给我们的研发团队和产品团队留言,欢迎加入我们的微信群。您也可以通过电子邮件(kwai-kolors@kuaishou.com)与我们联系。