提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言 一、基础知识 二、实现步骤 1.克隆存储库: 2. 安装环境,然后重启kernel 3. 调整prompt 总结前言
赛题介绍
一、基础知识
1.文生图的历史:
文生图(Text-to-Image Generation)是一种通过文本生成图像的技术,历史发展阶段如下:
1.1早期探索(20世纪60年代-20世纪90年代)
优势:图像生成技术主要依赖规则和模板匹配,通过预定义的规则将文本转换为简单的图形。
缺点:由于计算能力和算法的限制,生成的图像质量较低,应用场景也非常有限。
1.2基于统计模型的方法(2000年-2010年)
优势:利用概率图模型和统计语言模型来生成图像。
缺点:模型的复杂性和计算资源的限制,生成的图像仍然较为粗糙,不够逼真。
1.3深度学习的崛起(2010年-2020年)
发展:卷积神经网络(CNN)和生成对抗网络(GAN)的发展,文生图技术取得了突破性进展。2014年,Goodfellow等人提出的GAN模型通过生成器和判别器的对抗训练,提升了图像生成的质量。随后,各类变种GAN模型被提出,如DCGAN、Pix2Pix等,使得文生图技术在生成逼真图像方面达到了前所未有的高度。
1.4大规模预训练模型(2020年-至今)
发展:大规模预训练模型如OpenAI的CLIP、DALL-E以及Stable Diffusion等的出现,标志着文生图技术进入了一个新的时代。
1)CLIP通过大规模的文本和图像配对数据训练,能够理解和生成高度一致的文本和图像;
2)DALL-E和Stable Diffusion进一步提升了生成图像的创意和细节表现能力,使得通过简单的文本描述生成高质量、复杂图像成为可能。
应用场景:艺术创作、广告设计与辅助医疗诊断。
二、实现步骤
1.基础知识:
1)提示词(重要)
一般写法:主体描述,细节描述,修饰词,艺术风格,艺术家
【例】
【promts】Beautiful and cute girl, smiling, 16 years old, denim jacket, gradient background, soft colors, soft lighting, cinematic edge lighting, light and dark contrast, anime, super detail, 8k
【负向prompts】(lowres, low quality, worst quality:1.2), (text:1.2), deformed, black and white,disfigured, low contrast, cropped, missing fingers
2)Lora
Stable Diffusion中的Lora(LoRA)模型是一种轻量级的微调方法,它代表了“Low-Rank Adaptation”,即低秩适应。Lora不是指单一的具体模型,而是指一类通过特定微调技术应用于基础模型的扩展应用。在Stable Diffusion这一文本到图像合成模型的框架下,Lora被用来对预训练好的大模型进行针对性优化,以实现对特定主题、风格或任务的精细化控制。
1.克隆存储库:
复制以下代码,下载baseline文件
git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git
2. 安装环境,然后重启kernel
Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
DiffSynth-Studio:高效微调训练大模型工具
#下载数据集
from modelscope.msdatasets import MsDataset
ds = MsDataset.load(
'AI-ModelScope/lowres_anime',
subset_name='default',
split='train',
cache_dir="/mnt/workspace/kolors/data"
)
import json, os
from data_juicer.utils.mm_utils import SpecialTokens
from tqdm import tqdm
os.makedirs("./data/lora_dataset/train", exist_ok=True)
os.makedirs("./data/data-juicer/input", exist_ok=True)
with open("./data/data-juicer/input/metadata.jsonl", "w") as f:
for data_id, data in enumerate(tqdm(ds)):
image = data["image"].convert("RGB")
image.save(f"/mnt/workspace/kolors/data/lora_dataset/train/{data_id}.jpg")
metadata = {"text": "二次元", "image": [f"/mnt/workspace/kolors/data/lora_dataset/train/{data_id}.jpg"]}
f.write(json.dumps(metadata))
f.write("\n")
3. 调整prompt
设置你想要的图片风格,依次修改8张图片的描述。
正向描述词:你想要生成的图片应该包含的内容
反向提示词:你不希望生成的图片的内容
torch.manual_seed(0)
image = pipe(
prompt="二次元,一个紫色短发小女孩,在家中沙发上坐着,双手托着腮,很无聊,全身,粉色连衣裙",
negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
cfg_scale=4,
num_inference_steps=50, height=1024, width=1024,
)
image.save("1.jpg")
总结
这是我第一次写笔记,写的不好,多多见谅。希望大家一起学习!
总结
### 文章总结本篇文章主要介绍了在可图Kolors模型基础上训练LoRA模型以生成多样风格图片的过程,具体涵盖了文生图技术的发展历史、LoRA模型的基础知识以及实际操作步骤。
#### 前言
- **赛题介绍**:作者需基于Kolors模型和LoRA技术,生成包括水墨画、水彩、赛博朋克、日漫等无限风格的图片,并组成连贯的8张图片故事。对生成的LoRA风格进行美感度和连贯性评估。
#### 一、基础知识
- **文生图技术历史**:
1. **早期探索**(20世纪60-90年代):依赖规则和模板匹配,生成的图像质量低且应用场景有限。
2. **基于统计模型的方法**(2000-2010年):利用概率图模型和统计语言模型,但因复杂性和资源限制,图像仍较粗糙。
3. **深度学习的崛起**(2010-2020年):CNN和GAN的发展,特别是GAN的变种(如DCGAN、Pix2Pix)极大地提升了图像生成的质量。
4. **大规模预训练模型**(2020年至今):CLIP、DALL-E和Stable Diffusion的出现,使通过简单文本描述生成高质量、复杂图像成为可能。
- **LoRA模型**:Stable Diffusion中的LoRA是一种轻量级微调方法,用于优化预训练的大模型,以实现对特定主题或风格的精细化控制。
#### 二、实现步骤
1. **克隆存储库**:通过Git命令克隆基线代码和数据集。
2. **安装环境及重启kernel**:安装Data-Juicer和DiffSynth-Studio等工具,处理数据集,并准备训练环境。
- 示例代码展示了如何从模型库加载数据集,并转换为LoRA训练所需的格式。
3. **调整prompt**:
- **正向提示词**:定义图片应包含的内容。
- **负向提示词**:明确不希望出现在图片中的内容。
- 示例代码展示了如何使用不同参数进行图像生成。
#### 总结
文章作者通过详细的步骤介绍了基于LoRA模型进行文本到图像生成的过程,提供了从理论知识到实践操作的全面指南。虽然作者自谦地认为笔记写得不佳,但这篇文章对于理解和实践LoRA模型在图像处理中的应用具有较强的指导意义。