lora训练之偷师
自stable diffusion开源之后AIGC绘画方向定制化百花齐放百家争鸣。
而c站 https://civitai.com/
也聚集了全球爱好者的各种微调训练模型分享。
其中以lora为首,应用最广泛。
而这些模型是怎么训练出来的,细节到底是什么样的,没有多少人能说得清楚。
而就博主知道的,
使用最广泛的训练代码是这份 https://github.com/bmaltais/kohya_ss
它流行的原因主要是在其做了个GUI界面,便于很多不懂代码的人也能使用。
这里博主没打算讲解kohya_ss下具体训练方法和其参数。
想知道具体训练参数和细节,可以移步其wiki
https://github.com/bmaltais/kohya_ss/wiki/LoRA-training-parameters
还是不懂,也可以问各种gpt或者直接翻译成中文阅读即可。
现在主流最广泛使用的模型存储格式为 huggingface的safetensors
https://github.com/huggingface/safetensors
kohya_ss里默认会把训练参数填到safetensors的metadata里。
说到这里,lora训练之偷师 答案呼之欲出。
假设我们从c站上把safetensors模型下载下来,
然后读出来它的metadata信息,
那不就能知道这个模型具体的训练参数吗?
而在博主实操读出来好几个主流模型的参数之后,很感慨:
c站上的模型真的很demo,训练的数据集大多都不大,分辨率也不高,有的也就百来张图。
训练参数也可以大概评估出来,每个模型作者的用心程度,
当然也可以作为评价模型的一种标准,
例如:看过了多少张图,什么样的分辨率训练的,训练了多久之类的。
也就对这个微调的模型能有个大概认知。
多看几个模型之后,
新手也可以快速上手训练自己的lora,定制自己的AI女友之类的。
你说你想直接抄他们的参数训练,当然也是可以的,偷师不可耻很光荣。
为了方便读取模型的模型的训练信息,博主写了个小工具。
开源地址为:
https://github.com/cpuimage/st_metadata_parser
使用也非常简单:
python st_metadata_parser.py input_file.safetensors
输出的参数具体含义可以参考:
https://github.com/bmaltais/kohya_ss/wiki/LoRA-training-parameters
附一份C站上某个lora模型文件的训练参数供一览:
[('ss_cache_latents', 'True'),
('ss_caption_dropout_every_n_epochs', '0'),
('ss_caption_dropout_rate', '0.0'),
('ss_caption_tag_dropout_rate', '0.0'),
('ss_clip_skip', '2'),
('ss_dataset_dirs', '{"rapunzel": {"n_repeats": 5, "img_count": 40}}'),
('ss_datasets',
'[{"is_dreambooth": true, "batch_size_per_device": 2, "num_train_images": '
'200, "num_reg_images": 0, "resolution": [512, 512], "enable_bucket": true, '
'"min_bucket_reso": 256, "max_bucket_reso": 1024, "tag_frequency": '
'{"rapunzel": {"rapunzel 1girl": 40, "solo": 39, "long hair": 37, "smile": '
'26, "blonde hair": 38, "dress": 21, "very long hair": 18, "green eyes": 30, '
'"crossed arms": 3, "corset": 5, "purple dress": 12, "breasts": 13, "open '
'mouth": 7, "medium breasts": 5, "nipples": 7, "swimsuit": 2, "bikini": 1, '
'"tongue": 2, "striped": 1, "lips": 7, "micro bikini": 1, "freckles": 5, '
'"looking at viewer": 10, "long sleeves": 7, "cleavage": 3, "multiple boys": '
'1, "puffy sleeves": 7, "2boys": 1, "full body": 4, "absurdly long hair": 2, '
'"grin": 2, "hand on hip": 3, "juliet sleeves": 1, "blush": 3, "large '
'breasts": 4, "hair ornament": 5, "standing": 2, "flower": 7, "cowboy shot": '
'1, "teeth": 5, "indoors": 1, "hair flower": 5, "one-piece swimsuit": 1, '
'"covered navel": 1, "makeup": 2, "cameltoe": 1, "highleg": 1, "lamp": 1, '
'"braid": 4, "blurry": 2, "arm up": 1, "depth of field": 1, "blurry '
'background": 2, "looking up": 3, "bokeh": 1, "upper body": 4, "short '
'sleeves": 3, "closed eyes": 1, "small breasts": 1, "lying": 3, "signature": '
'1, "on back": 1, "arms up": 2, "eyelashes": 1, "from above": 1, "happy": 1, '
'"grass": 1, "cross-laced clothes": 1, "hair spread out": 1, "sitting": 4, '
'"outdoors": 2, "barefoot": 7, "water": 1, "tree": 2, "pink dress": 1, '
'"holding flower": 1, "lily pad": 1, "simple background": 5, "white '
'background": 3, "frog": 4, "black background": 2, "child": 1, "star print": '
'1, "lantern": 1, "blue eyes": 2, "navel": 5, "underwear": 2, "panties": 2, '
'"thigh gap": 1, "bound": 2, "bdsm": 2, "bondage": 2, "gag": 1, "gagged": 1, '
'"improvised gag": 1, "cloth gag": 1, "nude": 5, "tongue out": 1, "saliva": '
'1, "arms behind back": 1, "seiza": 1, "bound arms": 1, "on head": 1, '
'"animal on head": 1, "holding hair": 1, "tiara": 1, "crown": 1, "princess": '
'1, "hands on own head": 1, "mirror": 2, "frying pan": 2, "nature": 1, '
'"parted lips": 1, "blue background": 1, "shirt": 1, "choker": 2, "huge '
'breasts": 1, "colored skin": 1, "bursting breasts": 1, "thighhighs": 2, '
'"jewelry": 1, "thighs": 1, "earrings": 1, "pussy": 3, "spread legs": 2, '
'"cum": 1, "high heels": 1, "kneeling": 1, "uncensored": 3, "cum in pussy": '
'1, "phone": 1, "cellphone": 1, "smartphone": 1, "after sex": 1, "holding '
'phone": 1, "cumdrip": 1, "brown thighhighs": 1, "gloves": 1, "multicolored '
'hair": 1, "white gloves": 1, "topless": 1, "pink panties": 1, "fishnet '
'thighhighs": 1, "ass": 1, "feet": 1, "soles": 1, "on stomach": 1, "the '
'pose": 1, "nail polish": 1, "tan": 1, "personification": 1, "tanlines": 1, '
'"detached sleeves": 1, "armpits": 1, "pillow": 1}}, "bucket_info": '
'{"buckets": {"0": {"resolution": [320, 704], "count": 30}, "1": '
'{"resolution": [384, 640], "count": 95}, "2": {"resolution": [448, 576], '
'"count": 50}, "3": {"resolution": [512, 512], "count": 20}, "4": '
'{"resolution": [576, 448], "count": 5}}, "mean_img_ar_error": '
'0.042025975009129204}, "subsets": [{"img_count": 40, "num_repeats": 5, '
'"color_aug": false, "flip_aug": false, "random_crop": false, '
'"shuffle_caption": true, "keep_tokens": 1, "image_dir": "rapunzel", '
'"class_tokens": null, "is_reg": false}]}]'),
('ss_epoch', '10'),
('ss_face_crop_aug_range', 'None'),
('ss_full_fp16', 'False'),
('ss_gradient_accumulation_steps', '1'),
('ss_gradient_checkpointing', 'False'),
('ss_learning_rate', '0.0005'),
('ss_lowram', 'True'),
('ss_lr_scheduler', 'cosine_with_restarts'),
('ss_lr_warmup_steps', '50'),
('ss_max_grad_norm', '1.0'),
('ss_max_token_length', '225'),
('ss_max_train_steps', '1010'),
('ss_min_snr_gamma', '5.0'),
('ss_mixed_precision', 'fp16'),
('ss_multires_noise_discount', '0.3'),
('ss_multires_noise_iterations', 'None'),
('ss_network_alpha', '16'),
('ss_network_dim', '32'),
('ss_network_module', 'networks.lora'),
('ss_new_sd_model_hash',
'b0c91a8a93ab63b8b513046c2e2181a4ce78b83367ee7e26354ba9e018ea102f'),
('ss_noise_offset', 'None'),
('ss_num_batches_per_epoch', '101'),
('ss_num_epochs', '10'),
('ss_num_reg_images', '0'),
('ss_num_train_images', '200'),
('ss_optimizer', 'bitsandbytes.optim.adamw.AdamW8bit'),
('ss_output_name', 'rapunzel'),
('ss_prior_loss_weight', '1.0'),
('ss_sd_model_hash', '66f58dbb'),
('ss_sd_model_name', 'fp16-pruned.ckpt'),
('ss_sd_scripts_commit_hash', 'e6ad3cbc66130fdc3bf9ecd1e0272969b1d613f7'),
('ss_seed', '42'),
('ss_session_id', '1637709685'),
('ss_steps', '1010'),
('ss_tag_frequency',
'{"rapunzel": {"rapunzel 1girl": 40, "solo": 39, "long hair": 37, "smile": '
'26, "blonde hair": 38, "dress": 21, "very long hair": 18, "green eyes": 30, '
'"crossed arms": 3, "corset": 5, "purple dress": 12, "breasts": 13, "open '
'mouth": 7, "medium breasts": 5, "nipples": 7, "swimsuit": 2, "bikini": 1, '
'"tongue": 2, "striped": 1, "lips": 7, "micro bikini": 1, "freckles": 5, '
'"looking at viewer": 10, "long sleeves": 7, "cleavage": 3, "multiple boys": '
'1, "puffy sleeves": 7, "2boys": 1, "full body": 4, "absurdly long hair": 2, '
'"grin": 2, "hand on hip": 3, "juliet sleeves": 1, "blush": 3, "large '
'breasts": 4, "hair ornament": 5, "standing": 2, "flower": 7, "cowboy shot": '
'1, "teeth": 5, "indoors": 1, "hair flower": 5, "one-piece swimsuit": 1, '
'"covered navel": 1, "makeup": 2, "cameltoe": 1, "highleg": 1, "lamp": 1, '
'"braid": 4, "blurry": 2, "arm up": 1, "depth of field": 1, "blurry '
'background": 2, "looking up": 3, "bokeh": 1, "upper body": 4, "short '
'sleeves": 3, "closed eyes": 1, "small breasts": 1, "lying": 3, "signature": '
'1, "on back": 1, "arms up": 2, "eyelashes": 1, "from above": 1, "happy": 1, '
'"grass": 1, "cross-laced clothes": 1, "hair spread out": 1, "sitting": 4, '
'"outdoors": 2, "barefoot": 7, "water": 1, "tree": 2, "pink dress": 1, '
'"holding flower": 1, "lily pad": 1, "simple background": 5, "white '
'background": 3, "frog": 4, "black background": 2, "child": 1, "star print": '
'1, "lantern": 1, "blue eyes": 2, "navel": 5, "underwear": 2, "panties": 2, '
'"thigh gap": 1, "bound": 2, "bdsm": 2, "bondage": 2, "gag": 1, "gagged": 1, '
'"improvised gag": 1, "cloth gag": 1, "nude": 5, "tongue out": 1, "saliva": '
'1, "arms behind back": 1, "seiza": 1, "bound arms": 1, "on head": 1, '
'"animal on head": 1, "holding hair": 1, "tiara": 1, "crown": 1, "princess": '
'1, "hands on own head": 1, "mirror": 2, "frying pan": 2, "nature": 1, '
'"parted lips": 1, "blue background": 1, "shirt": 1, "choker": 2, "huge '
'breasts": 1, "colored skin": 1, "bursting breasts": 1, "thighhighs": 2, '
'"jewelry": 1, "thighs": 1, "earrings": 1, "pussy": 3, "spread legs": 2, '
'"cum": 1, "high heels": 1, "kneeling": 1, "uncensored": 3, "cum in pussy": '
'1, "phone": 1, "cellphone": 1, "smartphone": 1, "after sex": 1, "holding '
'phone": 1, "cumdrip": 1, "brown thighhighs": 1, "gloves": 1, "multicolored '
'hair": 1, "white gloves": 1, "topless": 1, "pink panties": 1, "fishnet '
'thighhighs": 1, "ass": 1, "feet": 1, "soles": 1, "on stomach": 1, "the '
'pose": 1, "nail polish": 1, "tan": 1, "personification": 1, "tanlines": 1, '
'"detached sleeves": 1, "armpits": 1, "pillow": 1}}'),
('ss_text_encoder_lr', '0.0001'),
('ss_training_comment', 'None'),
('ss_training_finished_at', '1694906008.5775223'),
('ss_training_started_at', '1694905352.3001792'),
('ss_unet_lr', '0.0005'),
('ss_v2', 'False'),
('sshs_legacy_hash', 'fd5d0c6f'),
('sshs_model_hash',
'0f9a9c96e707b34f1591ed9d24e788769cb72e2040f380aa7c31b6a49ca783b2')]
有数据就比较直观,不然这篇博文,就显得干巴巴的。
也算为业界做了一点点贡献。
提一个额外的话题,
由于diffusers和stable-diffusion-webui的实现十分臃肿,
并且屎山越来越大,非常不便于研发以及学习。
为了远离那堆玩意,博主化身屎壳郎,花了不少精力对stable diffusion进行了整理和重写。
开源了sd 1.5和 sdxl 1.0 两个仓库,主要以keras/TensorFlow为主,兼容pytroch的模型权重。
项目地址为:
sd1.5:
https://github.com/cpuimage/minSDTF
sdxl 1.0:
https://github.com/cpuimage/minSDXLTF
目前有空会持续更新,目标是把webui的主要功能以比较简洁优雅的方式实现,路漫漫其修远兮。
如果有小伙伴有能力也想加入,欢迎联系博主,一起摇摆。
也有业内好友期望博主写一份keras/tensorflow版本的lora训练框架,只能说有时间的话,会写的。
最后唠叨几句,kohya_ss训练框架的作者,其代码好几个地方逻辑写错了,小伙伴们要注意了。
最后的最后,
有stable diffusion相关的训练或者开发定制,不论是需求还是各种问题都可以通过以下方式联系博主,
微信: Dbgmonks
QQ: 200759103
邮箱: gaozhihan@vip.qq.com
注: 博主提供有偿服务, 不注明来意者一律拒绝。
- Afrikaans
- Albanian
- Amharic
- Arabic
- Armenian
- Azerbaijani
- Bengali
- Bulgarian
- Catalan
- Croatian
- Czech
- Danish
- Dutch
- English
- Estonian
- Finnish
- French
- German
- Greek
- Gujarati
- Haitian Creole
- Hebrew
- Hindi
- Hungarian
- Icelandic
- Indonesian
- Italian
- Japanese
- Kannada
- Kazakh
- Khmer
- Korean
- Kurdish (Kurmanji)
- Lao
- Latvian
- Lithuanian
- Malagasy
- Malay
- Malayalam
- Maltese
- Maori
- Marathi
- Myanmar (Burmese)
- Nepali
- Norwegian
- Pashto
- Persian
- Polish
- Portuguese
- Punjabi
- Romanian
- Russian
- Samoan
- Simplified Chinese
- Slovak
- Slovenian
- Spanish
- Swedish
- Tamil
- Telugu
- Thai
- Traditional Chinese
- Turkish
- Ukrainian
- Urdu
- Vietnamese
- Welsh
Never translate English
Never translate i.cnblogs.com
lora训练之偷师的更多相关文章
- 使用 LoRA 进行 Stable Diffusion 的高效参数微调
LoRA: Low-Rank Adaptation of Large Language Models 是微软研究员引入的一项新技术,主要用于处理大模型微调的问题.目前超过数十亿以上参数的具有强能力的大 ...
- 使用 LoRA 和 Hugging Face 高效训练大语言模型
在本文中,我们将展示如何使用 大语言模型低秩适配 (Low-Rank Adaptation of Large Language Models,LoRA) 技术在单 GPU 上微调 110 亿参数的 F ...
- 开发平台支持Arm Cortex-M的微控制器上人工智能训练
开发平台支持Arm Cortex-M的微控制器上人工智能训练 Development platform enables AI training on Arm Cortex-M-based microc ...
- 【论文翻译】LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 论文地址:https://arxiv.org/pdf/2106.09685.pdf 代码地址:ht ...
- stable diffusion打造自己专属的LORA模型
通过Lora小模型可以控制很多特定场景的内容生成. 但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹-_-). 甚至可以训练一个专属家庭版的模型(family mode ...
- 如何训练个人的ChatGpt4
如何在自己的计算机上安装类似 ChatGPT 的个人 AI 并在没有互联网的情况下运行它 本文旨在为任何人安装此软件.最初它有一个视频,伴随着操作方法,但是事情变化很快,我的三次尝试只是推迟了我发表这 ...
- DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍
DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...
- 解密Prompt系列6. lora指令微调扣细节-请冷静,1个小时真不够~
上一章介绍了如何基于APE+SELF自动化构建指令微调样本.这一章咱就把微调跑起来,主要介绍以Lora为首的低参数微调原理,环境配置,微调代码,以及大模型训练中显存和耗时优化的相关技术细节 标题这样写 ...
- SSD框架训练自己的数据集
SSD demo中详细介绍了如何在VOC数据集上使用SSD进行物体检测的训练和验证.本文介绍如何使用SSD实现对自己数据集的训练和验证过程,内容包括: 1 数据集的标注2 数据集的转换3 使用SSD如 ...
- 基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练
原文链接 在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升. Pradeep Dubey 在其博文中概述了英特尔® 架构机器学习愿景. 英特尔正在实现 Prad ...
随机推荐
- 2021-10-08 Core的LaunchSettings文件说明
{ "iisSettings": { //是否以IIS Express启动 "windowsAuthentication": false, //是否启用wind ...
- 2021-8-2 Mysql个人练习题
创建学生表 CREATE TABLE student( id int, uname VARCHAR(20), chinese FLOAT, english FLOAT, math FLOAT ); I ...
- Wampserver64 报错:无法启动此程序,因为计算机中丢失 MSVCR110.dll。尝试重新安装该程序以解决此问题。
缺少环境配置, 程序下载地址如下: https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=30679 点击下载,下载完成后,双击程 ...
- [POI2007]GRZ-Ridges and Valleys 题解
(2022-12-28 ) AcWing 1106 洛谷 P3456 题目大意 找出一个图中所有大于(或小于)周围相邻的非连通块点的所有连通块个数. 就是说,对于一个连通块: 如果它周围的点都低于它, ...
- 从零玩转系列之微信支付实战PC端项目构建+页面基础搭建 | 技术创作特训营第一期
一.前言 欢迎来到本期的博客!在这篇文章中,我们将带您深入了解前端开发领域中的一个热门话题: 如何使用 Vue 3 和 Vite 构建前端项目.随着现代 Web 应用程序的需求不断演进, 选择适当的工 ...
- P8810 [蓝桥杯 2022 国 C] 数组个数 题解
思路比较简单的一道题. 用的五维 dp,看到二维和三维的 dp 直接膜了 orz. 正文开始. 分析 不难看出 dp. 因为 \(b_i\) 的值只与 \(a_{i-1},a_i,a_{i+1}\) ...
- 一次Python本地cache不当使用导致的内存泄露
背景 近期一个大版本上线后,Python编写的api主服务使用内存有较明显上升,服务重启后数小时就会触发机器的90%内存占用告警,分析后发现了本地cache不当使用导致的一个内存泄露问题,这里记录一下 ...
- XV6中的锁:MIT6.s081/6.828 lectrue10:Locking 以及 Lab8 locks Part1 心得
这节课程的内容是锁(本节只讨论最基础的锁).其实锁本身就是一个很简单的概念,这里的简单包括 3 点: 概念简单,和实际生活中的锁可以类比,不像学习虚拟内存时,现实世界中几乎没有可以类比的对象,所以即使 ...
- 多层前馈神经网络及BP算法
一.多层前馈神经网络 首先说下多层前馈神经网络,BP算法,BP神经网络之间的关系.多层前馈[multilayer feed-forward]神经网络由一个输入层.一个或多个隐藏层和一个输出层组成,后向 ...
- 2022最新 Navicat Premium 16中文软件激活安装永久使用正版(支持MAC+win)
Navicat Premium 16中文正版永久使用,下载地址: 关注我的wx公众号"奋斗在IT"回复1015获取下载地址