Datawhale X 魔搭 AI夏令营 Task1 从零入门AI生图原理实践笔记

赛题内容

参赛者需在可图Kolors模型的基础上训练LoRA模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格…
基于LoRA模型生成8张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度及连贯性。

样例:偶像少女养成日记
img

相关作品在比赛品牌馆讨论区

可图Kolors-LoRA风格故事挑战赛

baseline要点讲解(请配合Datawhale速通教程食用)

Step1 设置算例及比赛账号的报名和授权
  • 开通阿里云PAI-DSW试用 链接
  • 在魔塔社区进行账号授权 链接

需要注意的是新用户需要先注册和绑定阿里云账号

Step2 进行赛事报名并创建PAI实例

赛事链接:https://tianchi.aliyun.com/competition/entrance/532254
PAI实例:https://www.modelscope.cn/my/mynotebook/authorization

Step3 执行baseline

按照教程新建终端,粘贴命令回车执行,这一步是为了拉取远程的baseline文件,需要等待一段时间。

git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git

拉取baseline后,可以在右侧文件中看到kolor文件夹,双击进入可以看到后缀.ipyhb的baseline文件,点击打开。

接下来执行运行环境的代码块,我们需要安装 Data-Juicer 和 DiffSynth-Studio

  • Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
  • DiffSynth-Studio:高效微调训练大模型工具

有些时候因为网络及代理的问题,环境的安装容易缺漏,建议多执行几次,代码不会重复安装

安装完成后,重启kernel,不重启容易爆显存影响baseline运行

接下来请依次执行下载数据集、数据处理

在这里留一个小问题:在模型训练之前,在数据集的处理上有没有更优的方法来让数据集更优质呢?是否需要进行一些转换、模块的引入及数据清洗呢?

接下来开始进行模型微调训练:

调参对于微调模型训练尤关重要,涉及到参数量、优化器类型、训练策略等等…一个好的参数配置可以让微调模型的效果出人意料。

在后面我会附上自己整理的 lora 调参参数介绍及 Stable Diffusion(SD) 的基础知识,感兴趣可以滑下文章尾部进行查看。

最后我们加载我们所微调的模型并进行输出

from diffsynth import ModelManager, SDXLImagePipeline
from peft import LoraConfig, inject_adapter_in_model
import torchdef load_lora(model, lora_rank, lora_alpha, lora_path):lora_config = LoraConfig(r=lora_rank,lora_alpha=lora_alpha,init_lora_weights="gaussian",target_modules=["to_q", "to_k", "to_v", "to_out"],)model = inject_adapter_in_model(lora_config, model)state_dict = torch.load(lora_path, map_location="cpu")model.load_state_dict(state_dict, strict=False)
return modelmodel_manager = ModelManager(torch_dtype=torch.float16, device="cuda",file_path_list=[
"models/kolors/Kolors/text_encoder",
"models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors",
"models/kolors/Kolors/vae/diffusion_pytorch_model.safetensors"])pipe = SDXLImagePipeline.from_model_manager(model_manager)
pipe.unet = load_lora(pipe.unet,lora_rank=16,lora_alpha=2.0,lora_path="models/lightning_logs/version_0/checkpoints/epoch=0-step=500.ckpt"
)

调整prompt,设置你想要的图片风格,依次修改8张图片的描述

提示词也有一些讲究,比如优质的提示词、提示词的排序(越靠前的提示词影响比重越大)、提示词书写策略、Embedding 模型介入。这些对出图效果也同样重要。同样的,我也会在后面的介绍中讲到,让我们先继续跑baseline。

至此,微调训练和模型出图已经全部完成啦

Step4 进行赛题提交

将微调结果上传魔搭

执行代码后,将模型文件和示例图下载到本地

mkdir /mnt/workspace/kolors/output & cd
cp /mnt/workspace/kolors/models/lightning_logs/version_0/checkpoints/epoch=0-step=500.ckpt /mnt/workspace/kolors/output/
cp /mnt/workspace/kolors/1.jpg /mnt/workspace/kolors/output/

点击魔搭链接,创建模型,中文名称建议格式:队伍名称-可图Kolors训练-xxxxxx

在提交过程的中的基础模型,是指你在训练过程及后续复现时使用的底模类型。一般来说SD XL的实现精度会更高,在训练过程中需要同步设置SD XL,在初步跑通 baseline 时使用基础即可,博主在提交的时候是选用的SD2.1,可参考选用。

点击创建提交就完成啦!恭喜你已经顺利跑通了baseline。

记得完成后及时关闭你正在运行的实例,别让算力偷偷溜走了

别忘记打卡&在群里接龙!

lora 调参参数介绍及 SD 的基础知识点(拓展)

文生图基础知识介绍

文生图主要以SD系列基础模型为主,以及在其基础上微调的lora模型和人物基础模型等。

接下来,我们简单了解下提示词、lora、ComfyUI和参考图控制这些知识点。

提示词

提示词很重要,一般写法:主体描述,细节描述,修饰词,艺术风格,艺术家

  • 反向prompt推荐(会更推荐使用英文 prompt,因为底层调用 sd 时是输入 英文prompt的):
  • 提高出图质量正向prompt推荐: a highly detailed European style bed room,elegant atmosphere,rtx lighting,global illuminations,a sense of understated sophistication,8k resolution,high quality,photorealistic,highly detailed,
Lora

Stable Diffusion中的Lora(LoRA)模型是一种轻量级的微调方法,它代表了“Low-Rank Adaptation”,即低秩适应。Lora不是指单一的具体模型,而是指一类通过特定微调技术应用于基础模型的扩展应用。在Stable Diffusion这一文本到图像合成模型的框架下,Lora被用来对预训练好的大模型进行针对性优化,以实现对特定主题、风格或任务的精细化控制。

那我们 lora 训练的最终目的是什么呢?训练的本质在于找出当前训练集的最优解,优素材取决于不同角度、不同形态、灯光、图片质量。

在Tag类型上,需要包括主题、动作、主要特征、视角、光影效果等其他,如果在训练过程中对某一个特征不打Tag,则将成为固定模型特征。

ComfyUI

ComfyUI 是一个工作流工具,主要用于简化和优化 AI 模型的配置和训练过程。
在ComfyUI平台的前端页面上,用户可以基于节点/流程图的界面设计并执行AIGC文生图或者文生视频的pipeline。

参考图控制

ControlNet是一种用于精确控制图像生成过程的技术组件。它是一个附加到预训练的扩散模型(如Stable Diffusion模型)上的可训练神经网络模块。扩散模型通常用于从随机噪声逐渐生成图像的过程,而ControlNet的作用在于引入额外的控制信号,使得用户能够更具体地指导图像生成的各个方面(如姿势关键点、分割图、深度图、颜色等)。

出图指引(SD WebUI):

描述内容prompt:主体、表情、服装、场景、环境、镜头、灯光、风格、画质、渲染器

靠前的Tag权重较高,适当运用括号法则、数字法则、混合

采样步数:数越高,细节多渲染慢,建议范围在20~40

采样器:karras去噪快

a噪点不居中,关键词识别度稍低,更具灵活度

DPM 建议使用DPM++SDE karras

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/402025.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 Android studio 实现停车场管理系统--原创

目录 一、项目演示 二、开发环境 三、项目页面 四、项目详情 五、项目完整源码 一、项目演示 二、开发环境 三、项目详情 1.启动页 这段代码是一个简单的Android应用程序启动活动(Activity),具体功能如下: 1. **延迟进入登…

【OpenCV】window 下 VS Code 配置OpenCV

文章目录 前言直接使用OpenCV 编译好的库自己编译OpenCVVS Code 安装MinGW下载下载Cmake编译OpenCV VS Code 运行cv程序VSCode配置运行CV程序 参考文章 前言 在网上找了些资料,大致得出VS Code开发OpenCV的环境配置流程,如下 安装VS Code安装MinGW安装…

【三维重建】Pixel-GS:三维高斯泼溅的像素感知的梯度密度控制(去除浮点,提升精度)

项目:https://pixelgs.github.io/ 标题:Pixel-GS: Density Control with Pixel-aware Gradient for 3D Gaussian Splatting 来源:香港大学;腾讯AI Lab 文章目录 摘要一、前言二、相关工作1.新视图合成2.基于点的辐射场3.Floater 的…

论文写作新神器!10款可以写论文的人工智能软件

在当今快速发展的数字时代,人工智能(AI)技术已经渗透到各个领域,包括学术研究和论文写作。为了帮助学者和学生提高写作效率和质量,市场上涌现了许多优秀的AI写作工具。本文将详细介绍10款可以写论文的人工智能软件&…

图像文本擦除无痕迹!复旦提出EAFormer:最新场景文本分割新SOTA!(ECCV`24)

文章链接:https://arxiv.org/pdf/2407.17020 git链接:https://hyangyu.github.io/EAFormer/ 亮点直击 为了在文本边缘区域实现更好的分割性能,本文提出了边缘感知Transformer(EAFormer),该方法明确预测文…

CPU飙升 怎么定位问题

传统的方法 【top】 查看所有进程占系统CPU的排序,定位是哪个进程搞的鬼。PID那一列就是进程号。 【top -Hp pid】 定位进程中使用 CPU 最高的线程tid 【printf ‘0x%x’ tid】 线程 tid 转化 16 进制,例如printf ‘0x%x’ 11882 得到16进制的 0x2e6a 【jstack…

PX4-Autopolite linux环境下源码编译中遇到的一些问题及相应解决办法

最近在做一个PX4飞控移植的项目,第一次接触到PX4源码,真的是感觉编译起来非常的麻烦,下面我将介绍几个新手比较容易踩坑的点。 (我都踩了ㄒ-ㄒ) 1.PX4源码要用git clone 从github上克隆来,千万不要直接在g…

java SE--集合

1.Collection接口 Collection接口是List,Set,Queue接口的父接口,里面提供了子类的常用方法; List储存的是可以重复的,有序的数据,子类是arrayList(数组结构)和linkedList&#xff…

Mapreduce_Distinct数据去重

MapReduce中数据去重 输入如下的数据,统计其中的地址信息,并对输出的地址信息进行去重 实现方法:Map阶段输出的信息K2为想要去重的内容,利用Reduce阶段的聚合特点,对K2进行聚合,去重。在两阶段中&#xff…

24/8/15算法笔记 强化学习贪婪算法,UCB,汤普森算法

以老虎机为例介绍各算法 import numpy as np#每个老虎机的中奖概率,0-1之间均匀分布 probs np.random.uniform(size10)#生成一个数组,其中的元素是从均匀分布(也称为矩形分布)中随机抽取的。均匀分布意味着每个数出现的概率是相…

微服务架构的未来发展趋势

文章目录 摘要引言当前发展趋势ServerlessService MeshAIOps 未来可能出现的挑战代码示例微服务架构示例 QA环节小结未来展望参考资料 摘要 微服务架构在软件开发中已经成为主流,但随着市场需求和技术环境的快速变化,微服务架构也在不断演进。本文将分析…

如何为 Nextcloud 配置自动数据库备份 - 应用程序

自动数据库备份模块简化了生成数据库计划备份的过程。这些备份可以存储在各种位置,包括本地驱动器、FTP 服务器、SFTP 服务器、Dropbox、Google Drive、OneDrive、NextCloud 和 Amazon S3 云存储。用户还可以选择启用自动删除过期备份的功能。此外,用户可…

MyBatis-Plus 进阶之条件构造器Wrapper和常用接口

目录 1.wrapper 介绍 1.1什么是 wrapper 2.QueryWrapper 2.1测试前的准备 2.2例1:组装查询条件 2.3例2:组装排序条件 2.4例3:组装删除条件 2.5例4:条件的优先级 2.6例5:组装 select 子句 2.7例6:…

[Linux][OS][信号的保存和处理]

目录 信号的处理 1. 在内核中的表示 2. 相关概念 3. 信号集操作函数 4.sigprocmask 5.sigpending 信号的捕捉 重谈地址空间 信号的处理 1. 在内核中的表示 普通信号,多次产生只会记录一次 信号范围 [1,31],每一种信号都要有自己的一种处理方式…

【ElementUI】el-table值相同时合并行

效果图&#xff1a; 大致思路&#xff1a;el-table里添加合并行或列的计算方法span-method <el-table :data"tableList" :span-method"objectSpanMethod"> // 在获取到列表数据tableData后调用此方法 handleTableData(tableData) {let rowSpanArr …

Java JDVC编程

1、Java的数据库编程&#xff1a;JDBC JDBC&#xff08;Java Database Connectivity&#xff09;是Java中用来与数据库进行交互的一种标准API&#xff08;应用程序编程接口&#xff09;。它为开发人员提供了一种统一的方式来访问各种类型的数据库管理系统&#xff08;DBMS&…

【深度学习实践】基于深度学习的图像去雾算法-ChaIR-实践

本文介绍一个去雾算法ChaIR的使用方法&#xff0c;可以完成图像去雾&#xff0c;也可以用于图像去雨、去噪音等任务。本文不涉及论文原理&#xff0c;只包含源代码的跑通和使用。 先展示一下效果&#xff1a; 原图去雾 论文&#xff1a;Exploring the potential of channel …

如何以编程方式解析 XCResult 包的内容

文章目录 介绍查找 XCResult 包分享 XCResult 包 解析 XCResult 包自动解析 XCResult 包的内容 使用 XCResultKit 解析包的内容初始化库获取调用记录 获取测试信息导出屏幕录制 可运行 Demo初始化 Swift Package编写主文件代码解释运行 Demo 结论 介绍 XCResult 包是一个包含运…

ASP.NET在线交流论坛管理系统

ASP.NET在线交流论坛管理系统 说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于asp.net架构和sql server数据库 用户功能有个人信息管理 帖了信息管理 意见反馈信息管理 点赞管理 收藏管理 后台管理员可以进行用户管理 …

数据结构-查找

一、基本术语 二、线性结构 ASL&#xff1a;平均查找长度 1、顺序查找 1.1、代码实现 typedef struct {int* elem;int TableLen; }SSTable;int Search_Seq(SSTable ST, int key) {ST.elem[0] key; //哨兵&#xff0c;使得循环不用判断数组是否会越界int i;for (i ST…