码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [sd_scripts]之fine_tune


    https://github.com/kohya-ss/sd-scripts/blob/main/docs/fine_tune_README_ja.mdicon-default.png?t=N7T8https://github.com/kohya-ss/sd-scripts/blob/main/docs/fine_tune_README_ja.md

    fine-tune微调是指使用图像和文本对来训练模型,不包括lora、textual inversion和hypernetwork。

    对stable diffusion的unet进行微调,对应NovelAI的改进:

    1.使用clip文本编码器倒数第二层的输出,而不是最后一层。

    clip将文本转换为特征,sd中使用clip最后一层输出,但可以更改为使用倒数第二层的输出,NovelAI称这将更准确的反应提示,在sd2.0中,默认使用倒数第二层,不要指定clip_skip。

    2.非正方形分辨率训练(Aspect Ratio Bucking)。

    sd采用了512×512的分辨率进行训练,同时也会在256×1024、384×640等分辨率下进行训练。这样可以减少被裁剪的部分,更准确地学习提示和图像之间的关系。训练分辨率将根据给定分辨率进行64像素的垂直和水平调整,确保不超出范围。通常情况下,统一输入大小是常见的做法,只要在同一batch内保持一致即可。NovelAI所说的bucketing(分桶)是指根据长宽比对训练数据分类,并通过每个bucket内的图像创建batch来统一batch的图像大小。

    3.token长度从75扩展到225。

    sd中,token最多75(77个,包括起始和结束符),将其扩展到225,clip接受的最大长度是75个token,因此在225的情况下,需要将其分成三段,调用clip,然后连接结果。在webui中是根据逗号进行分割的。

    4.使用blip、DeepDanbooru、WD14Tagger自动生成标题。

    5.bs,因为学习整个模型,所以和lora等相比,fine-tune消耗更多的内存。

    6.一般学习率,1e-6到5e-6很常见,从llm那边的经验,可能微调包括lora等,lr还是低一些好。

    7.train_text_encoder,内存会增加,在正常微调中,text encoder不是学习目标,但是当训练数据较少时,text encoder像dreambooth那样训练也有效。默认情况不执行text encoder的训练,通常对模型训练时,只训练unet。

    8.使用diffusers_xformers.

    9.训练

    1. accelerate launch --num_cpu_threads_per_process 1 fine_tune.py
    2. --pretrained_model_name_or_path=model.safetensors
    3. --output_dir=
    4. --output_name=
    5. --dataset_config=
    6. --save_model_as=safetensors
    7. --learning_rate=5e-6
    8. --max_train_steps=10000
    9. --use_8bit_adam
    10. --xformers
    11. --gradient_checkpointing
    12. --mixed_precision=fp16

    --num_cpu_threads_per_process:

    --pretrained_model_name_or_path:指定训练的模型,.ckpt或者.safetensors,hf格式均可。

    --output_dir:指定保存的模型文件夹。

    --output_name:指定不带扩展名的文件夹。

    --save_model_as:保存的格式

    --dataset_config:指定.toml文件。

    --max_train_steps:学习的步数10000

    --learning_rate:5e-6

  • 相关阅读:
    Ubuntu20.04 如何开启root账户登陆
    论文分享 | 利用单模态自监督学习实现多模态AVSR
    初探富文本之富文本概述
    Maven&MyBatis
    Magisk V26.3卡刷包APK最新版下载-支持payload.bin自动维补ROOT
    43%非常看好TypeScript…解读“2022前端开发者现状报告”
    Linux之父一语成谶:Valve拯救桌面版Linux,但新版本仍在分裂其生态
    领航未来,2022 世界人工智能大会「元宇宙的数字原生进化」论坛等你来!
    【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDx&LDxR)?
    [RTOS 学习记录] 工程管理工具make及makefile
  • 原文地址:https://blog.csdn.net/u012193416/article/details/134318786
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号