背景

从零入门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的更多相关文章

  1. DDD实战进阶第一波(八):开发一般业务的大健康行业直销系统(业务逻辑条件判断最佳实践)

    这篇文章其实是大健康行业直销系统的番外篇,主要给大家讲讲如何在领域逻辑中,有效的处理业务逻辑条件判断的最佳实践问题. 大家都知道,聚合根.实体和值对象这些领域对象都自身处理自己的业务逻辑.在业务处理过 ...

  2. DDD实战进阶第一波(十五):开发一般业务的大健康行业直销系统(总结篇)

    前面我们花了14篇的文章来给大家介绍经典DDD的概念.架构和实践.这篇文章我们来做一个完整的总结,另外生成一个Api接口文档. 一.DDD解决传统的开发的几大问题: 没有描述需求的设计模型:而是直接通 ...

  3. Android自己定义组件系列【7】——进阶实践(4)

    上一篇<Android自己定义组件系列[6]--进阶实践(3)>中补充了关于Android中事件分发的过程知识.这一篇我们接着来分析任老师的<可下拉的PinnedHeaderExpa ...

  4. Redis进阶实践之十三 Redis的Redis-trib.rb文件详解

    一.简介     事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的角度来阐述一下,对第一次使用的人来说很重要.redis-trib.rb是redis官方推出的管理re ...

  5. Redis进阶实践之十六 Redis大批量增加数据

    一.介绍      有时,Redis实例需要在很短的时间内加载大量先前存在或用户生成的数据,以便尽可能快地创建数百万个键.这就是所谓的批量插入,本文档的目标是提供有关如何以尽可能快的速度向Redis提 ...

  6. Redis进阶实践之十八 使用管道模式加速Redis查询

    一.引言             学习redis 也有一段时间了,该接触的也差不多了.后来有一天,以为同事问我,如何向redis中批量的增加数据,肯定是大批量的,为了这主题,我从新找起了解决方案.目前 ...

  7. DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)

    要实现软件设计.软件开发在一个统一的思想.统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束. 虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍 ...

  8. DDD实战进阶第一波(五):开发一般业务的大健康行业直销系统(实现产品上下文领域层)

    从这篇文章开始,我们根据前面的DDD理论与DDD框架的约束,正式进入直销系统案例的开发. 本篇文章主要讲产品上下文中的领域层的主要实现,先简单讲下业务方面的需求:产品SPU与产品SKU,产品SPU主要 ...

  9. DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)

    前一篇文章我们完成了产品上下文的领域层,我们已经有了关于产品方面的简单领域逻辑,我们接着来实现产品上下文关于仓储持久化与应用层的用例如何来协调 领域逻辑与仓储持久化. 首先大家需要明确的是,产品上下文 ...

  10. MongoDb进阶实践之六 MongoDB查询命令详述(补充)

    一.引言         上一篇文章我们已经介绍了MongoDB数据库的查询操作,但是并没有介绍全,随着自己的学习的深入,对查询又有了新的东西,决定补充进来.如果大家想看上一篇有关MongoDB查询的 ...

随机推荐

  1. SQL注入攻击及防御

    SQL注入攻击及防御 1.项目实验环境 目标靶机OWASP_Broken_Web_App_VM_1.2: https://sourceforge.net/projects/owaspbwa/files ...

  2. ubuntu podman相关

    前言 记录podman的安装.配置以及一些常用操作,会不定时更新: 正文 1. podman 安装以及配置 ubuntu 安装 podman sudo apt update sudo apt inst ...

  3. ubuntu 使用natapp配置内网穿透

    前言 在自己的服务器上起了服务,但由于域名还没申请下来,无法使用域名测试微信公众号接口,辛亏看到了这个博客:Natapp内网穿透服务工具.跟随这篇博客,我搭建了自己的内网穿透服务,现在记录如下. 过程 ...

  4. SpringBoot配置文件的优先级

    配置文件优先级 (1)命令行参数: (2)java:comp/env的JNDI属性(当前J2EE应用的环境): (3)JAVA系统的环境属性: (4)操作系统的环境变量: (5)JAR包外部的appl ...

  5. jQuery -- 手稿

  6. JavaScript --函数--手稿

  7. 松灵机器人scout mini小车 自主导航(3)——建图导航仿真

    松灵机器人Scout mini小车建图导航仿真 在之前的文章中,我们已经介绍了如何在gazebo和rviz对scout mini小车进行仿真,并且测试了添加自定义的传感器,在本文章中将进一步介绍如何利 ...

  8. 小产品,快变现,Solo社区共建者 James 专访

    采访人:徐小夕. 本次受邀采访的嘉宾是Solo社区计划负责人&Solo社区联合创建者 James Pan(老潘). 专访内容 1. Solo社区创建的背景 随着国内软件市场内卷加剧,加上大环境 ...

  9. JuiceFS 直连 NFS 新功能介绍,赋能 NAS 进行 AI 训练

    NAS 通过提供多用户网络数据存取服务,极大地简化了数据共享和管理.而 NFS 作为实现这种共享的一种主流协议,尽管广泛应用,但在处理复杂的 AI 训练场景时常常受限于其性能和一致性问题. Juice ...

  10. FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流

    <FFmpeg开发实战:从零基础到短视频上线>一书的"10.2.2  FFmpeg向网络推流"介绍了轻量级流媒体服务器MediaMTX,虽然MediaMTX使用很简单, ...