【Datawhale X 魔搭 AI夏令营第四期-AIGC方向】 Task1笔记:跑通baseline

前言

Datawhale的官方速通文档:https://linklearner.com/activity/14/10/24

本篇文章基于官方文档内容进行归纳总结。

跑通代码

Step0:开通阿里云PAI-DSW试用

阿里云PAI-DSW(Data Science Workshop)是一个云端的开发工具平台,提供所需的一切工具和资源来创建和训练AI模型,不用担心你自己的电脑性能是否足够强大。所以我们第一步需要进入阿里云PAI-DSW官网来开通领取5000算力时,为接下来环境的搭建等后续工作做准备。

链接:阿里云免费试用 - 阿里云

第一次登录的话可以使用支付宝登录,然后进行个人身份验证后再领取试用。

Step1:报名赛事

 赛事链接:https://tianchi.aliyun.com/competition/entrance/532254

使用支付宝登录并实名认证,点击报名参赛,同意协议点击报名即可,记得组建或者加入队伍。

Step2:在魔搭社区创建PAI实例

魔搭社区类似于阿里云PAI-DSW这台性能强大的主机的操作系统。你可以在魔搭社区中创建和管理你的项目,进行模型训练等。

链接:https://www.modelscope.cn/my/mynotebook/authorization

点击链接进入页面,按照上图,依次点击“授权ModelScope”→“开通并授权PAI”→“创建实例”,中间步骤根据提示走就行

在点击创建实例后的页面,实例随便起个名字,资源规格选第二个,之后就点击下一步、点击创建实例,启动完成后打开实例即可。

如果先前阿里云PAI-DSW试用没有领取成功则先用可使用魔搭的免费Notebook实例(比如我)

Step3:运行代码

1. 下载baseline文件(大约需要2分钟)

打开终端,粘贴以下代码,回车运行

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

2. 双击右侧kolors进入文件夹,双击打开baseline文件

3. 安装环境,然后重启kernel

安装 Data-Juicer 和 DiffSynth-Studio
Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
DiffSynth-Studio:高效微调训练大模型工具

4. 调整prompt,设置目标图片风格,依次修改8张图片的描述(可选)

正向描述词:你想要生成的图片应该包含的内容
反向提示词:你不希望生成的图片的内容

这里我尝试复刻魔女的夜宴宁宁线的剧情,修改描述为:

torch.manual_seed(0)
image = pipe(
    prompt="杰作,高精细,美丽细致的眼睛,细腻的发质,二次元,一个白色长发有呆毛的女孩,一个黑色凌乱头发的男孩,在社团活动室,男孩在一边坐着面无表情地趴在桌子上,女孩坐着和另一个路人女孩讲话,两人穿着蓝色高中校服,桌子上放着一个单单发白光的小瓶子,远景,不看着镜头,",
    negative_prompt="丑陋,变形,嘈杂,低对比度,nsfw,owres,解剖不好,手不好,文本,错误,手指缺失,多余的数字,更少的数字,裁剪,质量最差,低质量,正常质量,jpeg伪影,签名,水印,用户名,模糊,手指缺失、手不好、手臂缺失、长颈,驼背",
    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="杰作,高精细,美丽细致的眼睛,细腻的发质,二次元,不看着镜头,45°侧面,全身,一个白色长发有呆毛的女孩,一个黑色凌乱头发的男孩,两人穿着蓝色高中校服,两人坐在公园长椅上,闭眼微笑,头靠在一起",
    negative_prompt="丑陋,变形,嘈杂,低对比度,nsfw,owres,解剖不好,手不好,文本,错误,手指缺失,多余的数字,更少的数字,裁剪,质量最差,低质量,正常质量,jpeg伪影,签名,水印,用户名,模糊,手指缺失、手不好、手臂缺失、长颈,驼背",
    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="丑陋,变形,嘈杂,低对比度,nsfw,owres,解剖不好,手不好,文本,错误,手指缺失,多余的数字,更少的数字,裁剪,质量最差,低质量,正常质量,jpeg伪影,签名,水印,用户名,模糊,手指缺失、手不好、手臂缺失、长颈,驼背",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("5.jpg")

torch.manual_seed(1)
image = pipe(
    prompt="二次元,在拥挤的学校走廊,一个白色长发的女孩,穿着蓝色高中校服,神情悲伤失落,女生看向男生",
    negative_prompt="丑陋,变形,嘈杂,低对比度,nsfw,owres,解剖不好,手不好,文本,错误,手指缺失,多余的数字,更少的数字,裁剪,质量最差,低质量,正常质量,jpeg伪影,签名,水印,用户名,模糊,手指缺失、手不好、手臂缺失、长颈,驼背",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("6.jpg")

torch.manual_seed(7)
image = pipe(
    prompt="杰作,高精细,美丽细致的眼睛,细腻的发质,二次元,一个白色长发有呆毛的女孩,一个黑色凌乱头发的男孩,两人穿着蓝色高中校服,在社团活动室,男孩摔倒躺在地上,手碰到一个发光的白色水晶,女孩坐在很远的一边,神情惊讶,俯视视角,中景",
    negative_prompt="nsfw,owres,解剖不好,手不好,文本,错误,手指缺失,多余的数字,更少的数字,裁剪,质量最差,低质量,正常质量,jpeg伪影,签名,水印,用户名,模糊,手指缺失、手不好、手臂缺失、长颈,驼背",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("7.jpg")

torch.manual_seed(0)
image = pipe(
    prompt="杰作,高精细,美丽细致的眼睛,细腻的发质,二次元,背面,紧紧拥抱在一起,闭眼微笑,眼角有泪花,在社团活动室,白色长发小女孩,一个黑色凌乱头发小男孩,两人穿着蓝色高中校服,",
    negative_prompt="nsfw,owres,解剖不好,手不好,文本,错误,手指缺失,多余的数字,更少的数字,裁剪,质量最差,低质量,正常质量,jpeg伪影,签名,水印,用户名,模糊,手指缺失、手不好、手臂缺失、长颈,驼背",
    cfg_scale=4,
    num_inference_steps=50, height=1024, width=1024,
)
image.save("8.jpg")

这里从网上借鉴了正、反向tag组合

5. 依次顺序运行剩余的代码块,点击代码框左上角执行按钮,最终获得图片(大约需要20分钟)

下面的代码块按照功能主要分成这几类
1. 使用Data-Juicer处理数据,整理训练数据文件
2. 使用DiffSynth-Studio在基础模型上,使用前面整理好的数据文件进行训练微调
3. 加载训练微调后的模型
4. 使用微调后的模型,生成用户指定的prompt提示词的图片

生成图片效果如下

Step4:微调结果上传魔搭

上传链接:https://www.modelscope.cn/models/create

1.移动结果文件

创建terminal,粘贴如下命令,回车执行

mkdir /mnt/workspace/kolors/output & cd 
cp /mnt/workspace/kolors/models/lightning_logs/version_0/checkpoints/epoch\=0-step\=500.ckpt /mnt/workspace/kolors/output/
cp /mnt/workspace/kolors/1.jpg /mnt/workspace/kolors/output/

2. 下载结果文件

双击进入output文件夹,分别下载两个文件到本地

3. 创建并上传模型所需内容

  点击魔搭链接,创建模型,中文名称建议格式:队伍名称-可图Kolors训练-xxxxxx

这样就算创建完成并发布在创空间讨论区了。

4. 来到创空间,查看自己的模型是否发布

5.关闭PAI实例

完成后记得关闭实例,以防算力浪费

链接:https://www.modelscope.cn/my/mynotebook/authorization

若是使用魔搭的免费Notebook实例则在上方点击魔搭平台免费实例再点击关闭

总结

Task1的内容相对简单,可以充分激发新人兴趣。

不过新人对于图片生成效果无法精确掌控,有时候即使修改tag仍会生成改前的图片,这时可以尝试修改torch.manual_seed(0)中的参数。

同时我发现即使是同一tag有时会生成截然不同的内容,特别是对画风的描述,比如光是“二次元”这一描述,生成的画风有时会天差地别。另外,部分关于构图方面的描述,比如“近景远景,正面侧面,人物是否看向镜头”等词条效果不明显,或者可以说完全无效。对于多主角的图片效果也很差,经常出现少人、互动动作错误等情况,总的来说有很大的调整空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值