首页 > 其他分享 >Datawhale AI夏令营-第四期(AIGC方向)-Task01-可图Kolors-LoRA风格故事挑战赛

Datawhale AI夏令营-第四期(AIGC方向)-Task01-可图Kolors-LoRA风格故事挑战赛

时间:2024-08-09 17:10:11浏览次数:8  
标签:小女孩 prompt AI 魔法 AIGC Datawhale 魔法师 juicer data

从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习。

下面将分六部分介绍我的学习&实践情况。


一、文生图的历程与基石
首先,通过社区提供的学习资料和PPT,对文生图的历程与基石进行了快速的了解,以下为梗概:

  • 引言与定义
    • 拟合数据分布、生成模型、传输方程
  • 发展历程
    • VAE、GAN、Flow-based Models、Diffusion Models
  • 扩散模型
    • 正向过程
    • 逆向过程
    • 最终学习目标
    • SDE形式表示方式
    • 条件扩散模型
      • Classifier-guidance
      • Classifier-free-guidance
    • Stable Diffusion: 在使用VAE压缩后的latent空间进行建模
    • 模型加速
      • DPM-Solver
      • Consistency Model
  • Vision-Language Model(VLM)+文生图
    • 利用VLM进行更详细的标注,以提升生成准确性
    • 标注信息更细粒度
    • 包含位置布局信息

ps:这其实是一个非常概括的框架,其实每个知识点都有相应的论文,值得深入学习。


二、文生图基础知识

  • prompts (提示词)
    提示词为模型生成图像提供引导,通常包含主体描述、细节描述、修饰词、艺术风格、艺术家等,在给出prompts的同时也可给出负向prompts。
  • LoRA
    Low-Rank Adaptation (LoRA),即低秩适应。在Stable Diffusion这一文本到图像合成模型的框架下,Lora被用于对预训练好的大模型进行针对性微调,以实现对特定主题、风格或任务的精细化控制
    论文链接https://arxiv.org/abs/2106.09685
  • ComfyUI
    一个工作流工具。通过直观的界面和集成的功能,用户可以轻松地进行模型微调、数据预处理、图像生成等任务,从而提高工作效率和生成效果。
    链接https://github.com/comfyanonymous/ComfyUI
  • ControlNet
    一种可附加到预训练的扩散模型(如Stable Diffusion模型)上的可训练神经网络模块,通过引入额外的空间条件控制(例如边缘图、人体骨架、分割图、深度图等),来实现更细粒度的空间控制
    论文链接https://arxiv.org/abs/2302.05543

三、零基础实践

  • Step0:开通阿里云PAI-DSW试用
  • Step3: 体验一站式 baseline
    • 下载baseline文件
      git lfs install
      git clone https://www.modelscope.cn/datasets/maochase/kolors.git
      
      打开终端Terminal。
      image
      输入指令。
      image
    • 进入文件夹,打开baseline.ipynb文件。
      image
    • 点击执行第一个代码块,通过pip install安装相关环境包。
      # 安装 Data-Juicer 和 DiffSynth-Studio
      # Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
      # DiffSynth-Studio:高效微调训练大模型工具
      
      image
    • 显示安装完成后,点击“Restart Kernel”重启核。
      image
      image
    • 首先保留原有prompt,点击一键执行,查看效果。
      image
    • 其中最耗时的是模型微调部分,总耗时9分多。
      image
    • 初次执行(未修改prompts)的效果如下,与赛题给出的效果基本一致:
      image
  • Step4: 调整prompts,查看效果:
    这里首先对小女孩的外观、环境做了一些调整,
    提示词改为:
    prompt="二次元,一个绿色长发小女孩,在海滩上坐着,双手托着腮,很无聊,全身,白色连衣裙",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    
    文生图的生成效果如下:
    image
    再尝试一下生成男生,提示词为:
    prompt="二次元,一个棕色短发帅气男孩,在草地上站着,双手叉着腰,全身是汗,全身,足球服",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    
    文生图的生成效果如下:
    image

四、部分代码解读

  • 数据处理
    在下载数据、处理数据的过程中,我们会发现:
    运行到[2]代码块后,下载并保存的原始数据集路径下(/mnt/workspace/kolors/data/lora_dataset/train/),包含1400+张的训练图片;
    image
    而运行到[4]代码块后,处理后保存的数据集路径下(./data/lora_dataset_processed/train/),包含的训练图片只剩120+张;
    image
    这是因为在数据处理过程中,筛去了大部分图片。这一筛选过程是通过data-juicer工具实现的。具体见[3]代码块中的代码。
    data_juicer_config = """
    # global parameters
    project_name: 'data-process'
    dataset_path: './data/data-juicer/input/metadata.jsonl'  # path to your dataset directory or file
    np: 4  # number of subprocess to process your dataset
    
    text_keys: 'text'
    image_key: 'image'
    image_special_token: '<__dj__image>'
    
    export_path: './data/data-juicer/output/result.jsonl'
    
    # process schedule
    # a list of several process operators with their arguments
    process:
        - image_shape_filter:
            min_width: 1024
            min_height: 1024
            any_or_all: any
        - image_aspect_ratio_filter:
            min_ratio: 0.5
            max_ratio: 2.0
            any_or_all: any
    """
    with open("data/data-juicer/data_juicer_config.yaml", "w") as file:
        file.write(data_juicer_config.strip())
    
    !dj-process --config data/data-juicer/data_juicer_config.yaml
    
    可以看到,筛选过滤的条件写在image_shape_filterimage_aspect_ratio_filter中:对于图像尺寸,筛选长或宽大于1024的图像;对于图像长宽比,筛选长宽比处于[0.5, 2.0]的图像
    ps:因为没时间仔细查阅data-juicer工具的文档,所以只能大致解读代码实现的功能。但这已经很能说明data-juicer这个工具在数据处理上的便捷性

五、8图故事生成

  • prompt="二次元,动漫电影效果,一个棕色短发小女孩魔法师,身穿黑紫色魔法师长袍,在家中的魔法实验室里,四周摆满了药瓶和魔法书,她正专心地翻阅一本古老的魔法书籍",
    negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    
    image
  •   prompt="二次元,动漫电影效果,人物侧面,一个棕色短发的魔法师小女孩,穿着黑紫色魔法师长袍,背着背包,戴着黑色魔法帽,走在通往森林的小径上,背景是茂盛的树木和飘动的蝴蝶,她脸上带着期待的微笑表情",
      negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    
    image
  •   prompt="二次元,动漫电影效果,一个棕色短发的可爱小女孩魔法师,身着紫黑色的魔法长袍,手持木质魔杖,坐在森林中一个草地上,周围是光彩照人的魔法植物,她正专心地向一只坐在石头上的老魔法狐狸学习如何施展光明魔法",
      negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,色情擦边,手指尖锐",
    
    image
  •   prompt="二次元,动漫电影效果,人物侧面,一个充满神秘雾气的森林湖泊边,棕色短发的小女孩魔法师站在岸边,穿着紫黑色的魔法长袍,望向湖面,她正向一群水元素学习控水魔法,湖面波光粼粼,她嘴巴微张、表情略带惊奇",
      negative_prompt="丑陋、变形、嘈杂、模糊、低对比度,扭曲的手指,多余的手指",
    
    image
  •   prompt="二次元,动漫电影效果,森林中的一个幽暗洞穴,棕色短发的小女孩魔法师穿着紫色星星点缀的黑色长袍,正蹲下身来向一条巨大的红龙学习火焰魔法,小女孩的眼中反射着火焰的光芒,小女孩张开手掌,她的手中升起一小团火焰",
      negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    
    image
  •   prompt="二次元,动漫电影效果,棕色短发小女孩魔法师,她身穿黑紫色魔法师长袍,挥手与森林中的魔法小动物们告别,在森林中的一群魔法小动物围在小女孩身边,抬头望向小女孩",
      negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    
    image
  •   prompt="二次元,动漫电影效果,棕色短发的魔法师小女孩在一片热闹的市集中,身穿黑紫色长袍,准备参加魔法师大会,她四周是各路魔法师和炫目的魔法商品",
      negative_prompt="丑陋、变形、嘈杂、模糊、低对比度",
    
    image
  •   prompt="二次元,动漫电影效果,棕色短发的小女孩魔法师在魔法师大会的舞台上展示她的最强魔法,她面带微笑,正用木质魔杖引导着一场壮观的魔法元素风暴,她的黑紫色长袍在魔法光芒中闪耀,观众席上的其他魔法师们露出赞叹的表情",
      negative_prompt="丑陋、变形、嘈杂、模糊、低对比度、手指模糊",
    
    image

六、改进方向

  1. Prompt工程:通过更细粒度的prompts,进一步提升模型生成效果;
  2. 高质量训练数据:通过质量更高、数量更多、风格种类更多的训练数据对模型进行微调,使得模型生成效果更为丰富多样;
  3. 模型微调:通过微调技巧,提高模型微调效果(目前暂不明确,需要进一步研读Lora论文)。

标签:小女孩,prompt,AI,魔法,AIGC,Datawhale,魔法师,juicer,data
From: https://www.cnblogs.com/lingdu98/p/18349440

相关文章

  • ITSM垂类下,企业如何逐步搭建一个好的AI Agent
    随着企业数字化转型的不断深入,智能服务管理(ITSM)逐渐成为提升企业运营效率和服务质量的关键。企业纷纷探索如何将AI技术融入到IT服务管理中,以提升效率、降低成本并增强用户体验。成功实施AI并非易事,它要求企业在战略规划、技术选型、知识管理、流程优化等多个方面做出明智的决策。......
  • 足球预测法:贝叶斯方法与AI足球预测
    足球预测迄今已有200多年的历史了,曾经有无数的数学家与足球研究者试图勘破足球预测的规律,也因此如今有众多的足球预测方法与公式流传下来,但兴许是生不逢时,在过往年代,工具的匮乏落后导致许多优秀的预测法未能被大众所接纳,直到如今AI的出现,这些预测法才开始发光发热。而贝叶斯分......
  • 盘点市场热门AI视频智能分析边缘计算硬件及其特点与应用
    随着人工智能、大数据和云计算技术的飞速发展,安防监控市场正经历着前所未有的变革。其中,AI视频智能分析边缘计算硬件作为核心组成部分,正逐步成为市场的新宠。一、AI视频智能分析边缘计算硬件概述AI视频智能分析边缘计算硬件是指一类专门设计用于实现视频分析和边缘计算的硬件设......
  • 2024年10大ChatGPT AI 搬砖神器【打工族、学生党必备】
    随着ChatGPT的兴起,一大批AI工具随之诞生,其中有很多堪称神器分享10个国内可以使用使用的网站和AI搬砖工具,摸鱼起飞就靠他们了。1: AIPlus【AI对话】推荐指数:⭐️⭐️⭐️⭐️⭐️适合人群:学生党、打工人推荐理由:一个AI综合网站,有多个AI对话和绘画站,每个站点都很流畅且可用2:xie.y......
  • 自动训练稳定扩散错误(ModuleNotFoundError:没有名为“autotrain”的模块)
    我正在使用python3.11和cuda12.1..我正在尝试在本地计算机上训练模型。但安装后出现错误..!pipinstall-Uautotrain-advanced!auto​​trainsetup--update-torch我已经完成了上述命令,但是当我给出时autotraindreambooth--modelstableai/stable-diffusion-......
  • yum和rpm安装的Jenkins启动报错"Job for jenkins.service failed because the control
    jenkins卸载方式servicejenkinsstopyumcleanallyum-yremovejenkinsfind/-inamejenkins|xargs-n500rm-rf#文件名称符合name的文件。iname会忽略大小写#xargs命令可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数......
  • 在国产芯片上实现YOLOv5/v8图像AI识别-【2.3】RK3588上使用C++启用多线程推理更多内容
    本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。B站配套视频:https://www.bilibili.com/video/BV1or421T74f基础背景对于国产化芯片来说,是采用NPU进......
  • img_gray_naive 中 naive 的字解
    在变量名img_gray_naive中,"naive"的中文含义通常为“朴素的”、“简单的”或“基础的”。在编程和算法的上下文中,naive一般用来描述一种不复杂、直接、基础但通常有效的实现方式。具体含义解释:朴素的:naive表示没有使用任何复杂的优化或高级技巧,直接按照最基本的思路......
  • Adobe又出黑科技!5秒Ai绘画出图? Stable Diffusion来了!
    据我所知2024有两款Ai神器爆火一款是大名鼎鼎的ChatGPT另外一款则是Ai智能绘图软件—StableDiffusion本期重点介绍StableDiffusion尤其最近抖音小红书刷屏的AI人物大部分都是这款软件做的【软件介绍】▼StableDiffution****人工智能神器含保姆级安装教程&使......
  • fiftyone localhost:5151页面打开空白 error: disallowed MIME type (“text/plain”)
    解决办法:您必须更改两个键的注册表设置。打开注册表编辑器并前往Computer\HKEY_CLASSES_ROOT\.js并更改ContentType为application/javascript前往Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.js并更改 ContentType为application/javascript。然后只需重新启动shell......