首页 > 其他分享 >精读代码,实战进阶&实践Task2

精读代码,实战进阶&实践Task2

时间:2024-08-13 22:16:51浏览次数:14  
标签:古风 Task2 精读 进阶 生成 场景 图像 数据 加载

背景

从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习——
  • 适合想 入门并实践 AIGC文生图、工作流搭建、LoRA微调 的学习者参与
学习内容提要:从文生图实现方案逐渐进阶,教程偏重图像工作流、微调、图像优化等思路,最后会简单介绍AIGC应用方向、数字人技术(选学)

学习笔记

通义千问

  1. 通义千问的介绍:通义千问是具有信息查询、语言理解、文本创作等多能力的AI助手。编程与技术支持能力是它的强项之一。

 

精读baseline

这段代码主要完成以下几个工作流程:

1. **环境准备**:
   - 安装所需的Python包,例如`simple-aesthetics-predictor`, `data-juicer`, `peft`, `lightning`, `pandas`, `torchvision`等。
   - 卸载并重新安装某些特定版本的包,例如卸载`pytorch-lightning`再安装其他依赖。

2. **数据集加载与预处理**:
   - 加载名为`AI-ModelScope/lowres_anime`的数据集,并提取其中的图像数据。
   - 将图像数据保存至磁盘,并创建一个包含图像路径和对应的文本标签(这里是统一标记为"二次元")的元数据文件`metadata.jsonl`。

3. **数据清洗与过滤**:
   - 创建一个配置文件`data_juicer_config.yaml`,定义数据清洗的规则,包括图像尺寸过滤和宽高比过滤。
   - 使用`data-juicer`工具对数据集进行处理,输出过滤后的结果到`result.jsonl`文件。

4. **数据集整理与特征提取**:
   - 读取经过清洗的数据集,将其整理成DataFrame格式,并保存为CSV文件`result.csv`。
   - 使用CLIP模型提取图像和文本的嵌入向量,并计算它们之间的相似度分数。

5. **构建PyTorch数据集**:
   - 创建一个自定义的PyTorch数据集类`CustomDataset`,用于加载图像和文本数据。
   - 使用该数据集类创建一个数据加载器`DataLoader`,以便于后续训练使用。

6. **图像生成**:
   - 使用`StableDiffusionPipeline`模型根据不同的提示(prompt)生成一系列二次元风格的图像,并保存至磁盘。
   - 将生成的图像拼接在一起形成一个大的图像,并调整其尺寸。

下面是每个部分更详细的解释:

### 环境准备
这部分负责确保所有必要的Python包都已正确安装。

### 数据集加载与预处理
这部分从`MsDataset`加载数据集,并对图像进行基本处理,如转换颜色模式和保存至磁盘。同时,为每个图像创建一个包含路径和标签的元数据条目。

### 数据清洗与过滤
这部分定义了一个配置文件来指定数据清洗的标准,并调用`data-juicer`工具来执行这些操作。

### 数据集整理与特征提取
这部分将处理后的数据集整理成易于使用的格式,并利用CLIP模型计算图像和文本的相似度。

### 构建PyTorch数据集
这部分创建了一个PyTorch数据集类,用于方便地加载和预处理数据,以及创建数据加载器。

### 图像生成
这部分使用`StableDiffusionPipeline`根据给定的提示生成图像,并将多个图像拼接起来形成最终的输出。

整个脚本的工作流程是从数据集的加载和预处理开始,然后进行数据清洗,接着是特征提取和数据集构建,最后使用生成模型根据提示生成新的图像。

 通义千问返回Prompt

 

好的,根据您的要求,我为您编写了一套适用于每个场景的生图提示词。以下是每个场景的详细描述:

  1. 女主正在上课

    • 古风,淡墨勾勒,一位身穿青色长裙、束着高髻的少女,坐在书案前,专注地听着先生讲解,上半身特写,桌上散落着竹简和毛笔。
  2. 开始睡着了

    • 古风,轻柔笔触,那位少女头轻轻侧向一边,手肘支在书案上,手中还握着毛笔,似乎是在听课时不知不觉进入了梦乡,上半身特写,背景是安静的学堂。
  3. 进入梦乡,梦到自己站在路旁

    • 古风,细腻水彩,少女穿着蓝色衣裙,站在一条幽静的石板小径旁,周围是葱郁的竹林与盛开的桃花,她眺望着远方,全身特写。
  4. 王子骑马而来

    • 古风,线条流畅,一位英俊少年骑着一匹骏马缓缓而来,他身穿金色铠甲,头戴玉冠,目光温柔地看着少女,背景是宽阔的平原和远处的山峦,全身特写。
  5. 两人相谈甚欢

    • 古风,温暖色调,少女与少年并肩站立,彼此交谈,眼神中流露出笑意,背景是一片花海,花瓣随风飘落,上半身特写。
  6. 一起坐在马背上

    • 古风,动感画面,少女与少年共乘一骑,马儿正穿过一片森林,少女依偎在少年身后,双手环抱着他的腰,全身特写。
  7. 下课了,梦醒了

    • 古风,细腻笔触,少女从梦中醒来,手按住额头,似乎还在回味梦境,周围的同学都已离开,上半身特写,背景是空荡荡的学堂。
  8. 又回到了学习生活中

    • 古风,淡雅色彩,少女重新坐回书案前,手持毛笔认真书写,旁边放着几本古籍,上半身特写,学堂内还有其他学子的身影忙碌着。

这些描述可以作为生成图像的基础。如果您需要进一步调整或者有其他具体要求,请随时告诉我!

这是第一张场景的图像:“女主正在上课”。

女主正在上课

接下来我会继续生成其余的场景图像。请确认这张是否符合预期,如果没有问题,我们将继续下一个场景。

这是第二张场景的图像:“开始睡着了”。

开始睡着了

现在让我们继续生成下一个场景。

这是第三张场景的图像:“进入梦乡,梦到自己站在路旁”。

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

接下来我们生成第四张场景的图像。

这是第四张场景的图像:“王子骑马而来”。

王子骑马而来

现在让我们继续生成第五张场景的图像。

遇到问题&解决方案

1、阿里云PAI实例莫名被关闭移除,导致要重新创建实例和运行Baseline;

2、尝试本地部署训练模型和了解scepter webui相关知识。

标签:古风,Task2,精读,进阶,生成,场景,图像,数据,加载
From: https://www.cnblogs.com/blank-page/p/18357809

相关文章

  • Datawhale X 魔搭 AI夏令营 AIGC方向 Task2
    代码逐行解析先记录一下baseline代码通义千问生成的逐行解析:#安装Data-Juicer和DiffSynth-Studio!pipinstallsimple-aesthetics-predictor#安装simple-aesthetics-predictor!pipinstall-v-edata-juicer#安装data-juicer!pipuninstallpytorch-lightning-y#......
  • SQL进阶技巧:利用Stack()函数进行列转行及动态列转行方法
    目录0需求描述1数据分析 2 stack()函数应用stack(intn,v_1,v_2,...,v_k)n设为3,将后面6个元素按顺序分为3行2列n设为2,将后面6个元素按顺序分为2行3列n设为3,将后面7个元素按顺序分为3行3列n设为6,将后面6个元素转为为6行1列 3小结0需求描述在hive数仓中......
  • 线段树进阶 Part 1
    线段树是信息学竞赛最常见的数据结构。本篇笔记总结技巧和应用,不介绍基本线段树算法。1.常见技巧1.1信息设计用线段树解决问题,首先得考虑维护哪些信息。若不带修,任何满足结合律且封闭的信息(称为半群)都是可维护的。结合律一般都有,封闭性帮助我们设计信息。例如区间最大子段......
  • MySQL数据分析进阶(十三)高效的索引
    ※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!)【中字】SQL进阶教程|史上最易懂SQL教程!10小时零基础成长SQL大师!!https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.1007.0.......
  • C语言问答进阶--4、基本运算符
    赋值运算符A:下面将介绍赋值操作符。它的符号就是 = .A:赋值操作符,就是把一个值赋值给左边的变量。正如以前说的形如a=1之类的表达就是赋值运算符的具体应用。也许有的人在编写代码的时候写过这种代码:#include "iostream.h"int main(){    int x;    1=x;......
  • Scrapy框架进阶攻略:代理设置、请求优化及链家网实战项目全解析
    scrapy框架加代理付费代理IP池middlewares.py#代理IP池classProxyMiddleware(object):proxypool_url='http://127.0.0.1:5555/random'logger=logging.getLogger('middlewares.proxy')asyncdefprocess_request(self,request,spider):......
  • SQL进阶技巧:断点缝合问题【如何按照业务规则对相邻行数据进行合并】
    目录0需求描述1数据准备2数据分析3小结 0需求描述如下图所示,按照定义的规则进行数据变换注意:b中的数值只有0和11数据准备withdataas(select2010 a,0bunionallselect2011 a,1bunionallselect2012 a,0bunionallselect2013 a,1bunionall......
  • 【408DS算法题】009进阶-二维数组的查找
    Index题目实现代码分析题目在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。​进阶要求——时间复杂度:......
  • 面向对象--进阶
    static关键字静态修饰符可以修饰成员变量和方法(一般是工具类)特点:1、被类的所有对象共享(比如oa在线办公人数)2、可以通过类名.的方式调用(推荐使用)3、随着类的加载而加载,优先于对象而存在(对象在调用的时候才创建)工具类的方法添加static修饰构造方法私有化(不允许创建对象......
  • 【408DS算法题】进阶011-20年真题_三元组的最小距离
    Index真题题目分析实现总结真题题目定义三元组(a,b,c)(a,b,c均为正数)的距离D=|a-b|+|b-c|+|c-a|给定3个非空整数集合S1、S2和S3,按升序分别存储在3个数组中。设计一个尽可能高效的算法,计算并输出所有可能的三元组(a,b,c)......