当前位置:AIGC资讯 > AIGC > 正文

Datawhale X 魔搭 AI夏令营第四期AIGC文生图方向Task1笔记

目录

前置知识 生成对抗网络(GAN) 大规模预训练模型 LoRA baseline一站式实现过程 下载baseline文件 安装环境,然后重启kernel 调整prompt 总结

前置知识

指导手册里写得很详细,这里写一些最开始阅读时没有完全理解的点

生成对抗网络(GAN)

生成对抗网络(Generative Adversarial Network, GAN)是由两部分组成的深度学习模型:生成器(Generator)和判别器(Discriminator)。生成器尝试生成逼真的图像,而判别器则试图分辨这些图像是真实的还是生成的。在训练过程中,生成器不断改进以欺骗判别器,判别器也不断提高识别能力,最终导致生成器能够生成非常逼真的图像。

大规模预训练模型

CLIP:通过大规模的文本和图像配对数据训练,CLIP能理解文本和图像之间的复杂关系。它能够在提供文本描述的情况下找到与之高度一致的图像,或者反过来生成匹配描述的图像。

DALL-E:DALL-E是基于Transformer的模型,能够通过文本描述生成非常详细且富有创意的图像。这是因为它在大量图像-文本对上预训练,从而学会了如何将语言中的细微之处转换为视觉元素。

Stable Diffusion:Stable Diffusion是基于扩散模型的一种生成模型,通过多步迭代将随机噪声逐渐转变为符合文本描述的图像。它在图像生成的细节表现上更为出色,并且通过预训练和优化在生成质量和速度上都表现出色。

扩散模型所用的去噪过程:

LoRA

Low-Rank Adaptation (LoRA) 是一种用于大规模预训练模型的轻量级微调技术,旨在以较低的计算成本和较少的参数调整,实现对模型在特定任务或风格上的定制化优化。

LoRA 的核心思想是通过低秩分解来对预训练模型的权重矩阵进行调整。具体来说,它引入了两个低秩矩阵,使得在微调过程中不需要直接调整模型中的所有权重,而是通过调整这两个低秩矩阵来实现参数的适应性更新。

baseline一站式实现过程

指导手册写得特别好,这里还是补充自己阅读时注意到的几个点。

下载baseline文件

git lfs install

这是 Git Large File Storage(Git LFS)的一个命令,用于安装和配置 Git LFS。Git LFS 是一个扩展 Git 的工具,用于处理大文件和二进制文件的版本控制。它特别适合管理那些无法高效存储在传统 Git 仓库中的大文件(如图像、视频、模型文件等)。

安装环境,然后重启kernel

!pip install simple-aesthetics-predictor
!pip install -v -e data-juicer
!pip uninstall pytorch-lightning -y
!pip install peft lightning pandas torchvision
!pip install -e DiffSynth-Studio

Data-Juicer 是一个数据处理和特征工程工具,旨在自动化和简化数据预处理过程,提高数据科学项目的效率。

可以自动化许多数据处理任务,包括数据清洗、缺失值填补、异常值检测等,减少了人工干预的需求 提供特征选择和特征生成的功能,帮助用户从原始数据中提取有用的信息,以提升模型的性能 支持各种数据转换操作,如数据标准化、归一化、编码等,以使数据适合于机器学习模型的输入要求 提供数据可视化功能

DiffSynth-Studio 是一个用于生成模型的开发工具,提供了构建、训练和优化生成模型的功能,适合用于图像生成、数据合成等任务。

提供了构建和训练生成模型的工具,如 GANs 等。用户可以使用这些工具创建复杂的生成模型,用于图像生成、数据合成等任务 允许用户对生成模型进行合成、优化和调试,提供灵活的配置选项以调整模型的超参数和结构

接着重启 kernel,释放内存资源,避免可能的内存泄漏或资源不足问题。

调整prompt

首先是手册中讲到的关于 prompt 的设置:

提示词很重要,一般写法:主体描述,细节描述,修饰词,艺术风格,艺术家

一开始我想生成一个新的8图故事,于是我让 ChatGPT 给我生成了一个简单的草稿,举其中两个例子如下:

男孩独自坐在一片湖边,湖面平静如镜,倒映着他的身影。他低着头,手里拿着一块石子,若有所思地看着湖面。
男孩站在湖边,重新振作起来,眼中闪烁着坚定的光芒。天空中出现彩虹,他面向前方,胸有成竹地握紧了剑。

无脑更换 prompt 后发现生成的图片中有很多问题,一个是各图片中的男孩形象差距较大,另一个是很多细节(如彩虹、若有所思、坚定)未能明显表示。

学习原本的 prompt 后我作出修改:

每个 prompt 开头都设置为“二次元,黑色短发男孩,白T恤”,确保形象统一 采用描述性的词语或短语,尽量使用短句,避免很多描述的堆积

关于“negative_prompt”,暂时还没有很学会,于是先统一设置为““丑陋、变形、嘈杂、模糊、低对比度”。

这样生成的8图好了很多,但还是有一些问题,主要体现在图片中有多个人物的情况。比如我开始想设置成“男孩回乡,背影,村民向他跑来欢呼”,但生成的图片里村民们也都是背影(笑)。我猜测是要给不同人物各自设置特征,不然会用前一个人物的特征。做了一点尝试但村民那个生成的还是有点……奇怪(遗憾放弃),另一个“男孩和老者”的还可以:

二次元,黑色短发男孩,白T恤,森林深处,充满期待,和白发苍苍的老者面对面,老者穿着长袍,手持一根法杖,比男孩略高,温和地微笑着

以下是我的8图,讲述了一个男孩学剑的成长经历:

总结

目前能得到一个看得出来讲述完整故事的8图,但是有一些细节未连贯(如男孩的剑),还有是背景环境不够丰富,好几张像男孩的大头贴,接下来的学习继续调整

总结

### 文章总结
本文详细介绍了基于生成对抗网络(GAN)技术的图像生成过程,并结合大规模预训练模型、LoRA技术,通过《baseline一站式实现过程》来展示如何调整和优化图像生成的效果。以下是文章的核心内容和步骤总结:
#### 前置知识
1. **生成对抗网络(GAN)**:由生成器和判别器组成,通过不断迭代提升生成图像的真实性和判别器的识别能力。
2. **大规模预训练模型**:
- **CLIP**:理解文本与图像的复杂关系,实现文本到图像的搜索或生成。
- **DALL-E**:基于Transformer模型,通过文本描述生成详细且富有创意的图像。
- **Stable Diffusion**:基于扩散模型的生成模型,通过多次迭代将噪声转变为符合描述的图像,擅长细节处理和高质量生成。
3. **LoRA**(Low-Rank Adaptation):用于大规模预训练模型的轻量级微调技术,通过调整低秩矩阵实现模型定制优化。
#### baseline一站式实现过程
1. **下载baseline文件**:
- 使用Git LFS安装命令处理大文件管理,确保顺利下载模型及相关文件。
2. **安装环境并重启kernel**:
- 安装多项库(如simple-aesthetics-predictor, data-juicer, peft等),这些库涵盖了模型预测、数据处理和生成模型的开发功能。
- 重启kernel以优化运行环境和资源利用。
3. **调整prompt**:
- 提示词设置的重要性及写法指导:包括主体描述、细节描述、修饰词、艺术风格和艺术家。
- 通过ChatGPT帮助生成初始提示词,并逐步调整优化prompt,确保生成图像的统一性和高质量。
- 引入“negative_prompt”排除不需要的元素,如“丑陋、变形”等。
#### 总结
通过细致调整prompt和优化模型设置,本文作者成功生成了一个讲述完整故事的8图系列,但仍存在细节连贯性和背景丰富性不足的问题。未来的学习将着眼于这些方面的进一步提升,以实现更加精致和富有表现力的图像生成效果。
整体来看,本文提供了从理论知识到实战操作的全方位指导,适合对生成对抗网络和图像生成技术感兴趣的初学者和从业者学习借鉴。

更新时间 2024-08-15