ETJava Beta | Java    注册   登录
  • 搜索:
  • 精读代码,实战进阶&实践Task2

    发表于      阅读(1)     博客类别:Crawler     转自:https://www.cnblogs.com/blank-page/p/18357809
    如有侵权 请联系我们删除  (页面底部联系我们)  

    背景

    从零入门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相关知识。