AI 绘画 - 建筑绘图辅助设计之模型训练

news2024/12/25 9:08:14

前情提要

2023-06-18 周日 杭州 小雨

小记: 昨天搞的好累,10点左右就想着先躺一会儿,然后就睡过去了,很奇怪,如果进行 AI 绘画,晚上就会做很奇怪的梦,说不上来的那种感觉,就是莫名的不舒服。
人类到底是宇宙的一种偶然奇迹还是概率统计下的一种必然现象,不必要搞那么清楚,只要保持原始的生物欲望就可以了,往往好奇心是害死猫的最常规途径。

任务清单:
a. LORA 训练脚本;
b. 训练集选择;
c. 裁剪&打标;
d. 生成模型;

简介

LoRA的全称是LoRA: Low-Rank Adaptation of Large Language Models,可以理解为stable diffusion(SD)模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训练出一种画风/IP/人物,实现定制化需求,所需的训练资源比训练SD模要小很多,非常适合社区使用者和个人开发者。LoRA最初应用于NLP领域,用于微调GPT-3等模型(也就是ChatGPT的前生)。由于GPT参数量超过千亿,训练成本太高,因此LoRA采用了一个办法,仅训练低秩矩阵(low rank matrics),使用时将LoRA模型的参数注入(inject)SD模型,从而改变SD模型的生成风格,或者为SD模型添加新的人物/IP。用数据公式表达如下,其中
是初始SD模型的参数(Weights),
为低秩矩阵也就是LoRA模型的参数,
代表被LORA模型影响后的最终SD模型参数。整个过程是一个简单的线性关系,可以认为是原SD模型叠加LORA模型后,得到一个全新效果的模型。

在著名的模型分享网站https://civitai.com/上,有大量的SD模型和LoRA模型,其中SD模型仅有2000个,剩下4万个基本都是LoRA等小模型。例如下图,水墨画和原神八重神子就是LoRA模型来实现特定的画风和人物IP。

应用实践

1. LORA 模型训练脚本

方式一: Dreambooth

Dreambooth 是一种使用少量图像来训练模型的方法,是一种基于深度学习的图像风格转换技术。它可以将一张图片的风格应用到另一张图片上,以生成新的图像,Dreambooth 的一个优点是它可以生成高质量的艺术作品,而无需用户具备专业艺术技能。

特点:

  • 模型文件很大,2-4GB
  • 适于训练人脸,宠物和物件
  • 使用时需要 加载模型
  • 可以进行模型融合,跟其他模型文件融合成新的模型
  • 本地训练时需要高显存,>=12GB
  • 推荐训练人物*画风

方式二: Lora

Lora是一种使用少量图像来训练模型的方法。与 Dreambooth 不同,LoRA 训练速度更快:当 Dreambooth 需要大约二十分钟才能运行并产生几个 GB 的模型时,LoRA 只需八分钟就能完成训练,并产生约 5MB 的模型,推荐使用kohya_ss GUI 进行lora训练。

特点:

  • 模型大小适中,8~140MB
  • 使用时只需要加载对应的lora模型,可以多个不同的(lora模型+权重)叠加使用
  • 可以进行lora模型其他模型的融合
  • 本地训练时需要显存适中,>=7GB
  • 推荐训练人物

** 下载地址 **
链接:https://pan.baidu.com/s/1xrsbVvpkkPs7dzJ3nY2yuQ
提取码:goat

# 下载项目到本地
git clone https://github.com/bmaltais/kohya_ss.git

# 运行设置脚本
setup.bat   

2. 优秀训练集选择

** 参数 **
选择标准: 风格一致,统一;
训练集数量: 30张左右的图片(100以内,不然容易过拟合);

** 目标 **
自我假设: 我是一个 UI 设计师,我有一个比较中意的图标设计,但是居然收费,我只需要学习他的风格,然后定制类似的图标进行设计;
目标网站(挑选喜欢的图标): https://www.iconfont.cn

3. 裁剪&打标

** 参数 **
显卡: 8G及以上
图片尺寸: 512512/512768/768*768;
标签参数: 排除颜色或者特定限制性的词汇;

** 裁剪 **

图片源路径: F:\AILab\AI 绘画\图标训练集\icon\in-001
图片目标路径: F:\AILab\AI 绘画\图标训练集\icon\out-001

** 打标 **

输入目录: F:\AILab\AI 绘画\图标训练集\icon\out-001
输出目录: F:\AILab\AI 绘画\图标训练集\icon\out-001

4. 模型训练

** 训练集 **

训练图片路径   F:\AILab\AI 绘画\lora-scripts\train\001-icon\5_icon

# 备注: 001-icon 训练图片的路径,可随意;5_icon,其中的数字表示每张图片训练的次数;

** 选定底模 **

训练底模: F:\AILab\AI 绘画\lora-scripts\sd-models
SD模型位置: F:\AILab\AI 绘画\sd-webui-aki-v4\models\Stable-diffusion\chilloutmix_NiPrunedFp32Fix.safetensors

** 训练参数 **

** 运行训练 **

5. 模型测试(鸡准测试)

** 参数配置 **

文生图描述: a man in a suit and bow tie <lora:vpc123-caixukun:1>
训练就绪的模型: vpc123-caixukun.safetensors
底模: chilloutmix_NiPrunedFp32Fix.safetensors
# 测试时,底模和 lora 最好配套,不然可能文不对题

生成图:

总结

AI 绘画界一大神器,蔡徐坤的鸡准测试,当代二次元的少年们就是这么直白的嘲讽不留任何情面的,测试的模型还是可以看到生成人物的风格特色的,不过也走了不少的弯路,底模和基于底模训练出来的 lora 模型需要配合使用,还有些底模是不包含图片特征的关键字的,所以人物和建筑模型训练时选择的模型是不同的,需要结合实际需要进行合理的选择与训练。

QA

问题一: 无脚本执行权限

无法加载文件 F:\AILab\AI 绘画\lora-scripts\train.ps1。未对文件 F:\AILab\AI 绘画\lora-scripts\train.ps1 进 行数字签名。无法在当前系统上运行该脚本。有关运行脚本和设置执行策略的详细信息,请参阅 https:/go.microsoft.com/fwlink/?Li nkID=135170 中的 about_Execution_Policies

# 开启脚本执行能力 
set-ExecutionPolicy RemoteSigned

问题二: 开启 python 环境变量设置失败
activate : 无法将“activate”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1

问题三: 缺少训练脚本依赖

处理办法:

cd F:\AILab\AI 绘画\lora-scripts\sd-scripts\
pip install -r .\requirements.txt

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信怎么能自动回复?

有些小伙伴可能有多个微信号来进行业务活动&#xff0c;一天收到的信息太多&#xff0c;眼花缭乱&#xff0c;回复不过来&#xff0c;就想在微信可不可以有个自动回复消息&#xff0c;就可以通过自动回复引导用户看到想让他们看到的。这样就可以降低工作量的同时&#xff0c;提…

Hive Metastore 表结构

Hive MetaStore 的ER 图如下。 部分表结构和说明。 CTLGS(CATALOGS) catalogs 可以隔离元数据。默认只有1行。一个 CATALOG 可以有多个数据库。 mysql> DESC CTLGS; -------------------------------------------------------- | Field | Type | Null |…

判断关系属于哪一种范式(期末考试必看)

1NF&#xff08;第一范式&#xff09; 属性值是不可分的原子值 2NF&#xff08;第二范式&#xff09; R1NF&#xff0c;每个非主属性都完全函数依赖于R的候选键 3NF&#xff08;第三范式&#xff09; R1NF&#xff0c;每个非主属性都不传递依赖于 R的候选键 BCNF&#xff08;BC…

ubuntu修改主机名和用户名

参考文章&#xff1a; https://blog.csdn.net/fkmmmm/article/details/127333212 一、修改主机名 sudo vi /etc/hostname2、 sudo vi /etc/hosts3、 sudo reboot二、修改用户名 1、修改所有原用户名&#xff08;如果文件内没有原用户名则不用改 sudo vi /etc/sudoers 2、 s…

【C++11】 包装器 | bind

文章目录 1. 包装器概念理解用法成员函数的包装静态成员函数非静态成员函数 2. bind概念理解功能1 调整参数顺序 (用处不大)功能2 调整参数个数 1. 包装器 概念理解 function包装器 也被叫做 适配器 C11中function本质是类模板&#xff0c;也是一个包装器 意义在于 对可调用…

LeetCode-69. x 的平方根

LeetCode-69. x 的平方根 1、题目描述2、解题思路3、代码实现4、解题记录 ) 1、题目描述 题目描述&#xff1a; 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 示例1&a…

【裸机开发】I2C 通信接口(二)—— I2C 寄存器解析

目录 一、硬件原理图分析 二、IO 复用寄存器解析 三、I2C 寄存器解析 3.1 时钟配置 3.2 I2C1_IADR&#xff08;设置从机地址&#xff09; 3.3 I2C1_IFDR&#xff08;设置分频值&#xff09; 3.4 I2C1_I2CR&#xff08;I2C使能、中断控制&#xff09; 3.5 I2C1_I2SR…

不知道校园跑腿项目如何运营?那就先看看这份运营指导方案!

当大学生在校创业&#xff0c;其实并不与课业学习矛盾。相反&#xff0c;大学生可以抓住校园市场&#xff0c;利用校园这一具有自然地理优势的封闭市场&#xff0c;深入培育师生客户的需求&#xff0c;进入校园市场的蓝海&#xff0c;在不耽误学习的情况下有一个良好的收入来源…

AIGC-midjourney系列1-制作自己的证件照,卡通照

1 账号 淘宝购买共享账户 2 新建服务器 3 添加midjourney机器人 4 添加insightface机器人 在服务器聊天框输入并发送 https://discord.com/oauth2/authorize?client_id1090660574196674713&permissions274877945856&scopebot点击链接 5 insightface使用 使用…

cf 比赛 03

2021.04.28 训练地址 B. Bananas in a Microwave 题意&#xff1a;一开始的时候手里的数是0 这个题一开始想复杂了. 其实很简单. 我们想一个性质&#xff0c;我们用背包dp做这个题&#xff0c;从大到小枚举体积 j. 然后状态转移是从前往后推&#xff08;不是之前的那个找前驱…

记录 windows11 qemu安装 麒麟操作系统的经历

因为本人供职的公司&#xff0c;要求国产化环境很多的软件&#xff0c;同时为了方便docker部署&#xff0c; 所以开启了 qemu虚拟aarch64环境的经历&#xff0c;用的软件如下&#xff1a; 有需要的私信&#xff0c;存在了&#xff0c;阿里云盘&#xff0c;百度云盘没有会员就是…

大厂面试测试岗,你一个很小的错误就能让你被淘汰

背景介绍 前后参加过几家互联网公司的测试开发岗位面试&#xff0c;其中两次百度的面试&#xff0c;一次止步三面&#xff0c;另一次止步于四面。这里就主要总结一下百度的面试经历和心得体会。总体感觉百度的面试官比较注重基础&#xff0c;问题不难但是覆盖范围比较全面。相…

栈,栈帧Stack Frames和函数调用过程Control Flow

栈其实就是计算机系统内存中的一小块。栈是一块特殊的内存区域&#xff0c;栈在内存中的增长方向是向低地址扩展&#xff0c;%rsp寄存器存储栈的最低地址&#xff0c;即栈顶元素的地址。这种栈结构在程序中的应用有助于实现函数调用、局部变量的管理以及递归等功能。 Push和Pop…

Blazor 自定义可重用基础组件之 CheckBox

Blazor 原生提供的基础组件实在是一言难尽&#xff0c;这给许多Blazor UI公司很多机会。可是试用了不少如AntDisgen、BootstrapBlazor等&#xff0c;总会有一些难尽如意的地方。还是自己做丰衣足食吧。 首先是带Label的CheckBox&#xff0c;代码如下&#xff1a; <p><…

HTML5开发工程师岗位的职责说明文(合集)

HTML5开发工程师岗位的职责说明文1 职责&#xff1a; 1、根据产品设计文档和视觉文件&#xff0c;利用HTML5&#xff0c;Javascript相关技术实现web端的界面效果、交互和功能; 2、基于HTML5.0的标准进行页面制作&#xff0c;编写可复用的用户界面组件; 3、负责分析和解决前端…

30多个小程序一键发布——miniprogram-ci

概述 miniprogram-ci 是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。 开发者可不打开小程序开发者工具&#xff0c;独立使用 miniprogram-ci 进行小程序代码的上传、预览等操作。 miniprogram-ci 从 1.0.28 开始支持第三方平台开发的上传和预览&#xff0…

[DBT-05509] Failed to connect to the specified database (orcl).

同事在arm上测试19c部署时&#xff0c;发截图给我说dbca建库有告警&#xff0c;无法进行&#xff0c; Cause- OS Authentication might be disabled for this database (orcl). Action Specify a valid sysdba user name and password to connect to the database. 查找到的…

Windows安装ciphey编码工具,编码工具战神,cry简单题绝对克星!

TA是什么 一款智能化的编码分析解码工具&#xff0c;对于CTF中复杂性编码类题目可以快速攻破。 编码自动分析解码的神器。 如何安装 Windows环境 Python 3.8 64位&#xff08;最新的版本不兼容&#xff0c;32位的也不行&#xff09; 方便起见&#xff0c;我直接给一个3.8.…

【花雕】全国青少年机器人技术一级考试备考实操搭建手册2

目录 1、秋千 2、跷跷板 3、搅拌器 4、奇怪的钟 5、起重机 6、烤肉架 7、手摇风扇 8、履带车 9、直升机 10、后轮驱动车 游乐场里的跷跷板 跷跷板&#xff08;又作翘翘板&#xff09;&#xff0c;又称为摇摇板&#xff0c;是指以某些东西作为支点&#xff0c;支撑著很长但十分…

MongoDB 获取数组中匹配到的第一个元素对象

例如当前test库中的grade集合中有两条文档数据,如下图所示: 相关的两个实体映射类如下: import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb…