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

mx17686528894 2024-08-25 09:01:03 阅读 98

本人是信安专业的在校大学生,对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文件

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

<code>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="一个黑色长发小女孩,在家中沙发上坐着,双手托着腮,很无聊,全身,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("1.jpg")

torch.manual_seed(1)

image = pipe(

prompt="一个黑色长发小女孩,在家中吃着早饭,家庭和睦,全身,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("2.jpg")

torch.manual_seed(2)

image = pipe(

prompt="一个黑色长发小女孩,走在上学的路上,风和日丽,比较开心,全身,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,色情擦边",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("3.jpg")

torch.manual_seed(5)

image = pipe(

prompt="一个黑色长发小女孩,在教室里停听讲,双手托着腮,很认真,半身,在课桌上,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,扭曲的手指,多余的手指",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("4.jpg")

torch.manual_seed(0)

image = pipe(

prompt="一个黑色长发小女孩,在操场上奔跑,与同学们一起,很开心,全身,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("5.jpg")

torch.manual_seed(1)

image = pipe(

prompt="一个黑色长发小女孩,在放学回家的路上,夕阳,无聊,全身,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("6.jpg")

torch.manual_seed(7)

image = pipe(

prompt="一个黑色长发小女孩,在家中吃晚饭,家庭和睦,全身,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("7.jpg")

torch.manual_seed(0)

image = pipe(

prompt="一个黑色长发小女孩,陪家人散步,傍晚,放松心情,全身,白色连衣裙",code>

negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",code>

cfg_scale=4,

num_inference_steps=50, height=1024, width=1024,

)

image.save("8.jpg")

 

 

 

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

四、模型公开下载

ModelScope搜索我的用户名handsomeMX。

 使用SDK或者Git下载。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。