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

Datawhale AI夏令营第四期 AIGC方向 task01小白学习笔记

本人是信安专业的在校大学生,对AIGC方向属于小白一枚,以下是本次学习的初步成果展示。

从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习。

接下来,我们将围绕发展历史、相关技术、小白速通指南来展开介绍。

一、文生图的历史

文生图(Text-to-Image Generation)是一种通过文本生成图像的技术,其发展历程可以追溯到早期的计算机视觉和自然语言处理研究。这一技术的历史可以分为几个关键阶段:

 二、文生图基础知识介绍

文生图主要以SD系列基础模型为主,以及在其基础上微调的lora模型和人物基础模型等。

接下来,我们简单了解下提示词、lora、ComfyUI和参考图控制这些知识点。

提示词

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

举个例子

【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

LoRA 

LoRA模型,全称Low-Rank Adaptation of Large Language Models,是一种用于微调大型语言模型的低秩适应技术。它最初应用于NLP领域,特别是用于微调GPT-3等模型。LoRA通过仅训练低秩矩阵,然后将这些参数注入到原始模型中,从而实现对模型的微调。这种方法不仅减少了计算需求,而且使得训练资源比直接训练原始模型要小得多,因此非常适合在资源有限的环境中使用。

在Stable Diffusion(SD)模型的应用中,LoRA被用作一种插件,允许用户在不修改SD模型的情况下,利用少量数据训练出具有特定画风、IP或人物特征的模型。这种技术在社区使用和个人开发者中非常受欢迎。例如,可以通过LoRA模型改变SD模型的生成风格,或者为SD模型添加新的人物/IP。

总的来说,LoRA模型是一种高效、灵活且适用于多种场景的模型微调技术,它在保持原始模型性能的同时,允许用户根据需要进行定制化调整。

 ComfyUI

ComfyUI具有直观易用的界面。

        通过节点的方式,用户可以清晰地看到各个模块的功能,并根据自己的需求进行调整和连接。这种方式使得工作流程更加明确,也降低了使用门槛,使得不熟悉代码的用户也能够轻松上手。

其次,ComfyUI的生成速度更快。

        相较于传统的Web UI,ComfyUI在生成图片时进行了优化,显著提高了生成速度。这意味着用户可以更快地获得所需的图片,节省了宝贵的时间和计算资源。

三、baseline一站式实现过程

1、下载baseline文件

打开终端,复制以下代码,完成下载:

git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git

 2、安装相关环境和包

!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:数据处理和转换工具,旨在简化数据的提取、转换和加载过程。Data-Juicer 可以类比为一个超级果汁机,你可以把不同种类的水果(数据)放进去,然后果汁机会自动进行清洗、去皮、切块,并把各种水果的果汁混合在一起,最终倒出你想要的美味果汁。

在数据处理的背景下,Data-Juicer 是一个用于简化数据处理的工具。你可能会有来自不同来源的数据,比如原始表格、数据库、API等。Data-Juicer 就像那个果汁机,它能够帮助你提取这些数据,进行清洗(去掉噪音和无关信息)、转换(改变数据格式或结构),最后输出你需要的干净数据,方便你进一步分析和使用。

DiffSynth-Studio:高效微调训练大模型工具。可以类比为一个音乐录音棚,设想你是一位音乐制作人,手头上已经有了一首基本完成的曲子(大模型)。但你想要让这首曲子更加符合某种特定的风格,比如说,加一些摇滚的元素,或者让它听起来更加流行。

DiffSynth-Studio 就是这个“录音棚”,它让你能够对已有的曲子(大模型)进行微调,加入你想要的特定元素(新数据或任务),而且这个过程非常高效,不需要从头制作一首新曲子(重新训练一个模型)。你只需要做一些调整,就能快速生成一首符合你需求的新版本曲子(微调后的模型)。

 3、修改prompt参数

 这里我用一个小女孩的一天来给大家展示。

torch.manual_seed(0)
image = pipe(
    prompt="一个黑色长发小女孩,在家中沙发上坐着,双手托着腮,很无聊,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("1.jpg")
torch.manual_seed(1)
image = pipe(
    prompt="一个黑色长发小女孩,在家中吃着早饭,家庭和睦,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("2.jpg")
torch.manual_seed(2)
image = pipe(
    prompt="一个黑色长发小女孩,走在上学的路上,风和日丽,比较开心,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,色情擦边",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("3.jpg")
torch.manual_seed(5)
image = pipe(
    prompt="一个黑色长发小女孩,在教室里停听讲,双手托着腮,很认真,半身,在课桌上,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,扭曲的手指,多余的手指",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("4.jpg")
torch.manual_seed(0)
image = pipe(
    prompt="一个黑色长发小女孩,在操场上奔跑,与同学们一起,很开心,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("5.jpg")
torch.manual_seed(1)
image = pipe(
    prompt="一个黑色长发小女孩,在放学回家的路上,夕阳,无聊,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("6.jpg")
torch.manual_seed(7)
image = pipe(
    prompt="一个黑色长发小女孩,在家中吃晚饭,家庭和睦,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("7.jpg")
torch.manual_seed(0)
image = pipe(
    prompt="一个黑色长发小女孩,陪家人散步,傍晚,放松心情,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("8.jpg")

 以上就是生成“小女孩的一天”图片。

四、模型公开下载

ModelScope搜索我的用户名handsomeMX。

 使用SDK或者Git下载。

总结

**文章总结:AIGC文生图学习成果展示**
本文由一名信安专业的在校大学生撰写,展示了他对AIGC(AI生成内容)方向中文生图(Text-to-Image Generation)技术的初步学习成果。文章基于Datawhale 2024年AI夏令营第四期的学习活动,并参与了魔搭社区的“可图Kolors-LoRA风格故事挑战赛”。
### 一、文生图的历史
- **背景**:文生图技术起源于计算机视觉和自然语言处理的研究,经历多个关键阶段发展而来。
### 二、文生图基础知识
- **主要模型**:以SD系列基础模型为主,包括lora模型和人物基础模型等。
- **关键知识点**:
- **提示词**:用于指导图像生成的文本描述,包括主体、细节、修饰词、艺术风格和艺术家等。
- **LoRA模型**:用于微调大型语言模型的低秩适应技术,通过训练低秩矩阵实现对模型的快速定制,适合资源有限的环境。
- **ComfyUI**:直观易用的图形界面工具,通过节点方式简化操作流程,提升生成速度。
### 三、baseline一站式实现过程
1. **下载baseline文件**:通过Git命令克隆指定仓库。
2. **安装环境和包**:包括`simple-aesthetics-predictor`、`data-juicer`、`peft`、`lightning`、`pandas`、`torchvision`和`DiffSynth-Studio`等,分别用于数据处理、模型微调和图像生成。
3. **修改prompt参数**:通过编写Python代码,调整prompt和negative_prompt参数,生成一系列描述“小女孩的一天”的图片,展示了文生图技术的实际应用。
### 四、模型公开下载
- 提供的模型可通过ModelScope搜索用户名“handsomeMX”获取,支持使用SDK或Git下载。
**总结**:本文通过详细介绍文生图技术的发展历史、基础知识、一站式实现过程及模型下载方式,展示了作者对AIGC中文生图技术的初步掌握和应用能力。文章内容丰富,步骤清晰,为初学者提供了宝贵的参考和指导。

更新时间 2024-08-16