Datawhale X 魔塔AI夏令营 ——从零入门AI生图精读代码&实战进阶_task 2

一.从工具视角回顾AI生图的历史

20世纪70年代:艺术家哈罗德·科恩(Harold Cohen)发明AARON,可通过机械臂输出作画。

2012年:吴恩达训练出的能生成“猫脸”的模型,它使用卷积神经网络(CNN)训练,证明了深度学习模型能够学习到图像的复杂特征。

2015年:谷歌推出“深梦”(Deep Dream)图像生成工具,类似一个高级滤镜,可以基于给定的图片生成梦幻版图片。

2021 年 1 月: OpenAI 推出DALL-E模型(一个深度学习算法模型,是GPT-3 语言处理模型的一个衍生版本),能直接从文本提示“按需创造”风格多样的图形设计。

注:AI生图模型属于多模态机器学习模型,通过海量的图库和文本描述的深度神经网络学习,最终的目标是可以根据输入的指示(不管是文本还是图片还是任何)生成符合语义的图片

二.探索AI生图前沿

2.1初步探索

可图 · 模型库 (modelscope.cn)是快手开源的文本到图像生成模型,该模型具有对英语和汉语的深刻理解,并能够生成高质量、逼真的图像。

代码开源链接:https://github.com/Kwai-Kolors/Kolors

模型开源链接:https://modelscope.cn/models/Kwai-Kolors/Kolors

技术报告链接:https://github.com/Kwai-Kolors/Kolors/blob/master/imgs/Kolors_paper.pdf

魔搭研习社最佳实践说明:https://www.modelscope.cn/learn/575?pid=543

2.2 通过魔搭社区持续探索

当我们希望AI能为我们将特定的文字生成在图片当中,像我们Task1中介绍的 创意海报生成 工具,早已在代码中固定了相应的文字位置和对应的字体,才能进行相应的生成,且大概率是进行了两个步骤——

  • 一个步骤是AI生成背景,

  • 另一个步骤是通过代码将对应的文字显示到对应位置,

  • 然后渲染,合成图片,给到我们。

 过去,文生图技术主要依赖于 SD 系列基础模型,且仅支持英文的提示词。然而,现在有了支持中文提示词的可图文生图模型。可图模型的提示词格式相对固定,魔搭社区还开源了涵盖各种风格的优质提示词集,用户可以点击跳转查看。这些提示词涵盖了600多种不同风格,可以帮助用户完善提示词,从而生成各种风格的图片,非常适合在学习中使用。

 魔搭社区还有各种资料,可以供我们学习&探索AI生图的前沿——

 

三.认识通义千问

点击直达,编程与技术支持能力是它的强项之一。

首先我们来直观感知下这个文生图代码的框架结构:

将代码一一询问AI即可。

3.1分析代码的主体架构

3.1.1输入的Prompt

你是一个优秀的python开发工程师,现在我们需要你帮我们逐行分析这个代码,用中文回答我的问题。{此处替换前面的代码}

3.1.2返回的结果

这段代码主要分为以下几个部分:

1.安装和卸载依赖包

  • 使用 !pip 命令来安装或卸载 Python 包。包括:

    • simple-aesthetics-predictor, data-juicer, peft, lightning, pandas, torchvision, 和 DiffSynth-Studio 的安装。

    • 卸载 pytorch-lightning(使用 -y 自动确认卸载)。

2.加载数据集

  • 使用 ModelScope 的 MsDataset 类加载名为 AI-ModelScope/lowres_anime 的数据集,并指定子集名称为 default 和分割为 train,缓存目录设置为 /mnt/workspace/kolors/data

3.数据预处理

  • 将数据集中的图像转换为 RGB 模式,并保存到指定目录。

  • 创建包含图像路径和文本描述的元数据文件 metadata.jsonl

  • 编写并保存 data_juicer_config.yaml 配置文件,用于后续的数据过滤和处理。

4.使用 Data-Juicer 进行数据处理

  • 使用 dj-process 命令根据配置文件对数据进行过滤和处理,生成 result.jsonl 文件。

5.数据整理与训练

  • 读取 result.jsonl 文件中的数据,并将其转换为 Pandas DataFrame,然后保存为 CSV 文件,并且将图片保存到./data/lora_dataset_processed/train文件夹下。

  • 下载模型download_models(["Kolors", "SDXL-vae-fp16-fix"])

  • 在前面模型的基础上,执行Lora微调训练

  • 加载微调后的模型

6.图像生成

  • 设置正向提示词,反向提示词,执行次数,图片尺寸

  • 设置随机种子,控制图片是否可以重复生成,并将图像保存为 .jpg 文件。

7.合并图像

  • 最后,将生成的多个图像合并成一个大图像,并调整大小。

整个流程涵盖了从数据加载、预处理、特征提取、模型预测到图像生成等多个方面。每一部分都有其特定的功能,共同构成了一个完整的二次元图像处理和生成的工作流。

 3.2逐行解释代码

3.2.1输入的问题

你是一个优秀的python开发工程师,现在我们需要你帮我们逐行分析这个代码,用中文回答我的问题。{此处替换前面的代码}

3.2.2返回的结果

这段代码主要完成以下功能:

  1. 安装和卸载一些Python包。

  2. 从ModelScope加载一个名为lowres_anime的数据集,并保存图像到指定目录。

  3. 创建并处理一个用于数据清洗的JSONL文件。

  4. 使用data-juicer工具过滤和处理数据集。

  5. 将处理后的数据集转换为CSV格式。

  6. 根据数据集通过DiffSynth做Lora微调。

  7. 加载Lora微调后的模型。

  8. 设置提示词,用微调后的模型生成图片。

 3.3代码还有疑问?

向AI追问

在刚刚逐行解析结果页后面继续追问,如图,通义给了我们更加细致的问题解释,大家可以举一反三,多操作一下

我对其中{替换成你的问题}还是不太理解,给我再详细介绍一下

四.实战演练一一基于话剧的连环画制作

4.1数据准备

4.1.1提示词
你是一个文生图专家,我们现在要做一个实战项目,就是要编排一个文生图话剧 话剧由8张场景图片生成,你需要输出每张图片的生图提示词 具体的场景图片 1、女主正在上课 2、开始睡着了 3、进入梦乡,梦到自己站在路旁 4、王子骑马而来 5、两人相谈甚欢 6、一起坐在马背上 7、下课了,梦醒了 8、又回到了学习生活中 生图提示词要求 1、风格为古风 2、根据场景确定是使用全身还是上半身 3、人物描述 4、场景描述 5、做啥事情 例子: 古风,水墨画,一个黑色长发少女,坐在教室里,盯着黑板,深思,上半身,红色长裙
4.1.2询问通义

自己在通义的返回的基础上,多多调整,争取打磨出一个最佳的提示词

4.1.3最后的话剧场景

结合AI内容,自己在AI结果上做一些调整,最终整理出来场景表格

图片编号

场景描述

正向提示词

反向提示词

图片1

女主正在上课

古风,水墨画,一个黑色长发少女,坐在教室里,盯着黑板,深思,上半身,红色长裙

丑陋,变形,嘈杂,模糊,低对比度

图片2

开始睡着了

古风,水墨画,一个黑色长发少女,坐在教室里,趴在桌子上睡着了,上半身,红色长裙

丑陋,变形,嘈杂,模糊,低对比度

图片3

进入梦乡,梦到自己站在路旁

古风,水墨画,一个黑色长发少女,站在路边,上半身,红色长裙

丑陋,变形,嘈杂,模糊,低对比度

图片4

王子骑马而来

古风,水墨画,一个英俊少年,骑着白马,上半身,白色衬衫

丑陋,变形,嘈杂,模糊,低对比度

图片5

两人相谈甚欢

古风,水墨画,一个英俊少年,白色衬衫,一个黑色长发少女,红色长裙,两个人一起聊天,开心,上半身

丑陋,变形,嘈杂,模糊,低对比度

图片6

一起坐在马背上

古风,水墨画,一个英俊少年,白色衬衫,一个黑色长发少女,红色长裙,两个人一起骑着马,全身

丑陋,变形,嘈杂,模糊,低对比度

图片7

下课了,梦醒了

古风,水墨画,一个黑色长发少女,坐在教室里,下课铃声响了,同学们开始走动,从睡梦中醒来,深思,上半身,红色长裙

丑陋,变形,嘈杂,模糊,低对比度

图片8

又回到了学习生活中

古风,水墨画,一个黑色长发少女,坐在教室里,盯着黑板,认真上课,上半身,红色长裙

丑陋,变形,嘈杂,模糊,低对比度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值