Kolors模型是由快手团队开发的大型文本到图像生成模型,专门用于将文本描述转换成高质量的图像。
Kolors模型支持中英文双语输入,生成效果与Midjourney-v6相媲美,能够处理长达256个字符的文本输入,具备生成中英文文字的能力。
Kolors模型的技术优势在于其使用了基于U-Net架构的隐空间扩散模型,并引入了大语言模型进行文本表征,这使得它在处理复杂长文本方面表现出色。
Kolors模型在图像美感和质量上达到了国际领先水平,这得益于其两阶段的概念学习和美感提升的渐进训练策略以及针对高分辨率图像特性优化的全新加噪策略。
在评测方面,Kolors模型在智源FlagEval文生图模型评测榜单中主观综合评分全球第二,尤其在主观图像质量上表现突出,评分排名第一。
github项目地址:https://github.com/Kwai-Kolors/Kolors。
一、环境安装
1、python环境
建议安装python版本在3.8以上。
2、pip库安装
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pydantic==1.10.2 protobuf==3.20 tensorboard>=1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
3、Kolors模型下载:
git lfs install
git clone https://huggingface.co/Kwai-Kolors/Kolors.git
二、功能测试
1、运行测试:
(1)python调用测试
import torch
from kolors.pipelines.pipeline_stable_diffusion_xl_chatglm_256 import StableDiffusionXLPipeline
from kolors.models.modeling_chatglm import ChatGLMModel
from kolors.models.tokenization_chatglm import ChatGLMTokenizer
from diffusers import UNet2DConditionModel, AutoencoderKL
from diffusers import EulerDiscreteScheduler
# 定义模型权重路径
ckpt_dir = 'Kolors'
def infer(prompt):
# 加载文本编码器模型
text_encoder = ChatGLMModel.from_pretrained(
f'{ckpt_dir}/text_encoder',
torch_dtype=torch.float16
).half()
# 加载分词器
tokenizer = ChatGLMTokenizer.from_pretrained(f'{ckpt_dir}/text_encoder')
# 加载图片解码器 VAE
vae = AutoencoderKL.from_pretrained(f"{ckpt_dir}/vae", revision=None).half()
# 加载调度器用于生成步骤
scheduler = EulerDiscreteScheduler.from_pretrained(f"{ckpt_dir}/scheduler")
# 加载 U-Net 模型
unet = UNet2DConditionModel.from_pretrained(f"{ckpt_dir}/unet", revision=None).half()
# 设置图像生成管道
pipe = StableDiffusionXLPipeline(
vae=vae,
text_encoder=text_encoder,
tokenizer=tokenizer,
unet=unet,
scheduler=scheduler,
force_zeros_for_empty_prompt=False
)
# 将管道模型移至 GPU
pipe = pipe.to("cuda")
# 启用模型 CPU 卸载功能
pipe.enable_model_cpu_offload()
# 生成图像
image = pipe(
prompt=prompt,
height=1024, # 图像高度
width=1024, # 图像宽度
num_inference_steps=50, # 推理步数
guidance_scale=5.0, # 指导比例
num_images_per_prompt=1, # 每个提示生成的图像数量
generator=torch.Generator(pipe.device).manual_seed(66) # 随机种子
).images[0]
# 保存生成的图像
output_path = 'scripts/outputs/sample_test.jpg'
image.save(output_path)
print(f"图像已保存至:{output_path}")
if __name__ == '__main__':
# 定义生成图像的提示
prompt = '一张瓢虫的照片,微距,变焦,高质量,电影,拿着一个牌子,写着"good"'
infer(prompt)
(2)web端测试
未完......
更多详细的内容欢迎关注:杰哥新技术
总结
### 文章总结:《Kolors模型:引领文本到图像生成的技术革新》Kolors模型,源自快手团队,是一款强大的文本到图像生成模型。其主要亮点包括支持中英文双语输入,能够处理长达256个字符的复杂文本,并具备生成中英文文字的能力,生成效果与业界领先的Midjourney-v6相媲美。
**技术优势**:
- **架构创新**:Kolors采用基于U-Net架构的隐空间扩散模型,结合大语言模型进行文本表征,使得在处理复杂长文本时表现卓越。
- **美感提升**:通过两阶段的概念学习和美感渐进训练策略,以及针对高分辨率图像优化的加噪策略,Kolors在图像美感和质量上达到国际领先水平。
- **评测佳绩**:在智源FlagEval文生图模型评测中,Kolors荣获全球主观综合评分第二,尤其是在主观图像质量上排名第一。
**环境安装与功能测试**:
- **环境建议**:推荐使用3.8及以上版本的Python。
- **pip库安装**:详细列出了需要安装的torch、torchvision、torchaudio等依赖库及相关命令。
- **模型下载**:通过Git LFS工具克隆GitHub上的模型仓库。
- **功能测试**:提供了Python调用测试的代码示例,展示了如何使用Kolors模型将文本描述生成高清图像的全过程,包括模型加载、图像生成及保存等步骤。同时提到了Web端测试的未来扩展(注:文中提及的Web端测试部分未完整展示)。
**社区资源**:文中鼓励读者关注“杰哥新技术”获取更多详细信息。同时,开源项目地址(https://github.com/Kwai-Kolors/Kolors)为开发者提供了参与和贡献的平台。
综上所述,Kolors模型以其先进的技术架构和优异的生成效果,在文本到图像生成领域展现出强劲的竞争力和广阔的应用前景。