当前位置:   article > 正文

“Datawhale X 魔搭” AI夏令营第四期:AIGC方向——学习笔记

“Datawhale X 魔搭” AI夏令营第四期:AIGC方向——学习笔记

Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),是基于魔搭社区可图Kolors-LoRA风格故事挑战赛开展的实践学习。此次活动提供的速通教程如下:Datawhale (linklearner.com)

一、问题背景

   赛事内容

  1. 参赛者需在可图Kolors 模型的基础上训练LoRA 模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格......

  2. 基于LoRA模型生成 8 张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度及连贯性 

    官方样例:偶像少女养成日记

3b9828d020524e70ba1ad181355aac03.png

评分标准

本次比赛通过客观评分判断选手提交作品的有效性,但最终评分以主观评分为准。

1、主观评分  由评委对参赛作品进行投票,评审标准可以从技术运用(40%)、组图风格连贯性(30%)、整体视觉效果(30%)几方面进行评判投票。

2、客观评分  美学分数仅作评价提交是否有效的标准,其中美学分数小于6(阈值可能根据比赛的实际情况调整,解释权归主办方所有)的提交被视为无效提交,无法参与主观评分。

 比赛讨论区

可图Kolors-LoRA风格故事挑战赛 · 魔搭社区 (modelscope.cn)

二、模型训练

     根据上面的速通教程即可完成baseline的训练,对各阶段中的几个名词进行解释:

Step1:参赛报名

    按教程在官网上报名即可。

    1.LoRA模型 全称Low-Rank Adaptation of Large Language Models,是一种用于微调大型语言模型的低秩适应技术。它最初应用于NLP领域,特别是用于微调GPT-3等模型。而在Stable Diffusion这一文本到图像合成模型的框架下,LoRA被用来对预训练好的大模型进行针对性优化,以实现对特定主题、风格或任务的精细化控制。

    2.DiffSynth-Studio
 是开源的 Diffusion 引擎,旨在将基于 Diffusion 的丰富图像及视频模型集中到一起,实现开源生态互联,从而充分发挥其强大的生成能力,目前 DiffSynth-Studio 已经支持了 Stable Diffusion、ControlNet、AnimateDiff、IP-Adapter、混元 DiT、Kolors、ExVideo 等模型,且提供了简洁易用的训练框架,该框架可以轻松地实现 Kolors 等模型的 LoRA 训练。

   3.Data-Juicer
 是专为大模型训练设计的一站式多模态数据处理系统,在图像处理上,Data-Juicer 提供了丰富的算子,包括图像自动化标注、图像有害内容识别与过滤、水印检测、图像美学评估等。用户可以方便地使用 Data-Juicer 处理和过滤图像,获得高质量的训练数据,从而实现惊艳的图像生成效果。

Step2:创建实例

    1. PAI-DSW(Data Science Workshop)是一款为AI开发者量身定制的一站式AI开发平台,随时随地开启Notebook快速读取数据、开发算法、训练及部署模型。(可以理解为它是一个云端机器学习交互式开发IDE。)

    2. 创建DSW实例  在使用DSW前,需要创建PAI实例,DSW支持通过控制台和Python SDK两种方式创建实例,同时在运行DSW实例前,所需的计算资源要准备好。而如何创建DSW实例,在教程中已经详细的描述,这里不再赘述。

     3. 镜像配置  这里采用的是官方镜像源mcodelscope:1.17.1-pytorch2.3.0tensorflow2.16.1-gpu-py310-cu121-ubuntu22.04,换句话就是在Ubuntu 22.04操作系统上运行的镜像环境,它包含了特定版本的PyTorch、TensorFlow以及Python和其他依赖项,实际上是在一个Linux环境中工作。

Step3:跑通baseline

  1. 导入库:首先,代码导入了需要用到的库,包括 data-juicer和微调的工具 DiffSynth-Studio

  2. 数据集构建:下载数据集kolors,处理数据集

  3. 模型微调:模型微调训练,以及加载训练后的模型

  4. 图片生成:调用训练好的模型生成图片

三、思考总结

简单修改部分提示词后的生成ai图像的结果,以及输出2行列4图像的代码。

955b81b35bf640b7b00f7a39a228ec5f.png

  1. import numpy as np
  2. from PIL import Image
  3. # 加载图片并转换为numpy数组
  4. images = [np.array(Image.open(f"{i}.jpg")) for i in range(1, 9)]
  5. # 将图片分为两组,每组四张
  6. top_row = np.concatenate(images[:4], axis=1) # 拼接第一行的四张图片
  7. bottom_row = np.concatenate(images[4:], axis=1) # 拼接第二行的四张图片
  8. # 垂直拼接两行图片
  9. image = np.concatenate([top_row, bottom_row], axis=0)
  10. # 创建PIL Image对象
  11. image = Image.fromarray(image)
  12. # 调整大小
  13. image = image.resize((1024 * 4, 1024 * 2)) # 假定每张图片的宽度和高度都是1024像素
  14. # 显示或保存图片
  15. image.show() # 或者使用 image.save('output.jpg') 保存图片

d67e6679264f42a3a4e8e75b46073b14.jpeg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/978153
推荐阅读
相关标签
  

闽ICP备14008679号