AIGC从入门到精通

打印 上一主题 下一主题

主题 544|帖子 544|积分 1632

目录
1. 概述
2. 一键起飞 
2.1 webui
2.2 基础用法​​​​​​​​​​
2.3 必装插件
2.4 Stable Diffusion WebUI Forge
2.5 ComfyUI
2.6 Fooocus
2.7 diffusers
3 LoRA
3.1 原理
3.2 训练流程和准备
3.3 上手训练
4. 深入原理
4.1 利用教程
4.2 原理
4.3 训练阶段
4.4 采样阶段​​​​​​​
4.5 采样器 
4.6 大模型微调
5. 部署
显存不敷应对方案
6. 商业价值​​​​​​​
        美观性风格化可控性是时卑鄙行的 文生图 面临的三座大山。所谓美观性,指的是符合美学规则,不能有脸部畸变、 手指扭曲等瑕疵;所谓风格化,指的是能天生动漫、二次元等多种多样的风格;所谓可控性,指的是可以自由的控制天生图片中人物的性别、年龄、质态、种族、服装以及场景、光线等的本领。SDXL​​​​​​​在图像天生的精致度、真实性、提示词诚实度和正确性上都有显着的进步,而且再也不须要冗长的咒语才气天生差能人意的图片;LoRA仅须要数十张目的人物的图就可以高质量的天生特定人物;ControlNet大幅提升了对于姿态、线条等的控制本领. 一批批现象级应用涌现了出来,具体参见最全盘点!2023中国诞生了哪些AIGC应用产品
   
     天生差别风格图像      
     sd-webui​​​​​​​界面,新手建议利用      
     ComfyUI​​​​​​​    1. 概述

Stable Diffusion,简称SD,通过引入隐向量空间(而不是在像素空间扩散)来解决 Diffusion 速度瓶颈,除了可专门用于文生图任务,还可以用于图生图、特定脚色刻画,甚至是超分或者修复任务。文生图模型参数量比较大,基于pixel的方法限于算力往往只能天生64x64大小的图像,好比OpenAI的DALL-E2和谷歌的Imagen,然后再通过超分辨模型将图像分辨率提升至256x256和1024x1024; 而基于latent的SD是在latent空间操纵的,它可以直接天生256x256和512x512甚至更高分辨率的图像。基于latent的扩散模型的上风在于计算服从更高效,因为图像的latent空间要比图像pixel空间要小,这也是SD的焦点上风。Stable Diffusion不光是一个完全开源的模型(代码,数据,模型全部开源),而且它的参数量只有1B左右,大部分人可以在普通的显卡上举行推理甚至精调模型。绝不夸张的说,Stable Diffusion的出现和开源对AIGC的火热和发展是有巨大推动作用的,因为它让更多的人能快地上手AI作画。
Note: SD对硬件要求普遍较高,即使推理最好也要有8G以上的显存,具体性价比参见​​​​​​​常见显卡AI跑图性能、性价比表
2. 一键起飞 

2.1 webui

可参考浅谈【Stable-Diffusion WEBUI】(AI绘图)的基础和利用
Windows下保举利用一键启动包 ,模型下载stable-diffusion-v1-5​​​​​​​, 保举模型majicMIX realistic 麦橘写实 更多模型选择参见Stablediffusion模型与模型训练背后的事
Ai绘画模型Chilloutmix详尽解说,关于模型的超详微小知识​​​​​​​
  1. wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh \
  2. && sh Miniconda3-py310_23.3.1-0-Linux-x86_64.sh -b -p /opt/conda
  3. pip install diffusers transformers scipy ftfy accelerate
  4. ​git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
  5. cd stable-diffusion-webui
  6. 默认GPU运行
  7. #python launch.py --listen --api --xformers --enable-insecure-extension-access
  8. ./webui.sh --listen --api --xformers --enable-insecure-extension-access
  9. #如果没有GPU,也可以CPU运行
  10. ./webui.sh --listen --api --enable-insecure-extension-access --skip-torch-cuda-test --no-half --no-half-vae
复制代码
默认参数出来的效果差能人意,须要加入较多的"咒语"才气调出,可以切换到Chilloutmix-Ni-pruned-fp16-fix模型,设置如下参数,或者后面加入差别的Lora提升效果(模型下载链接参看全网Stable Diffusion WebUI Model模型资源汇总)
2.2 基础用法​​​​​​​​​​

通用起手式 三段式表达
   第一段: 画质tag,画风tag
  第二段:画面主体,主体强调,主体细节概括。(主体可以是人、事、物、景)画面焦点内容
  第三段:画面场景细节,或人物细节,embedding tag。画面细节内容
  第二段一样平常提供人数,人物紧张特性,紧张动作(一样平常置于人物之前),物体紧张特性,主景或景致框架等
  质量词→前置画风→前置镜头效果→前置光照效果→(带形貌的人或物AND人或物的次要形貌AND镜头效果和光照)*系数→全局光照效果→全局镜头效果→画风滤镜
    画质词:(masterpiece:1.2), best quality, highres,extremely detailed CG,perfect lighting,8k wallpaper,
真实系:photograph, photorealistic,
插画风:Illustration, painting, paintbrush,
二次元:anime, comic, game CG,
3D:3D,C4D render,unreal engine,octane render,
  负面词:NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)),((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.5), (too many fingers:1.5), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers, (((extra arms and legs))),
  实例: 
   Prompt:masterpiece,beat quality,1girl
  Negative Prompt:nsfw,blush,lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name,bad feet,big head,fused body,multiple hands,multiple legs,multiple hands,multiple breast,multiple lower legs,multiple thighs,fused body,twist body
  Steps: 40, Sampler: Euler a, CFG scale: 10
   

粗略的介绍一下对于大量prompt情况下的权重控制 - 哔哩哔哩
   1.权重的用法涉及到构图和添加更多元素,假如有想要调解画面元素构成比的人,肯定要先在prompt配置好权重方便后续调解。
2.不要出现拼写错误,好比:(extreme detailed night sky,:1.5)
3.假如括号包含了多内容,AI只关心末端部分prompt权重,好比(crystal_plant,flower:1.3)现实上等效crystal_plant,(flower:1.3),而并不能把他们全都包含起来一起处置处罚,正确的块处置处罚方式是((promptA,promptB,promptC):1.1), 用括号把他们包起来当做布局块处置处罚。
  4.颜色决定了构图,所以涉及颜色的权重最好固定死 或者不要有大幅度的改动,同样的,迭代次数也会影响色彩分布,偶尔候低迭代和高迭代会有构图的区别。
5.取值可以轻微的不公道,但是最好公道,好比身上的可爱蝴蝶大翅膀。
6.高的权重prompt并不会替代低权重prompt,只决定了你让AI更加去留意哪点。
  7.prompt靠前的也会进步权重,这和输入顺序以及神经网络构成相关,并没有具体的计算等值 
  SD出来图的经常出现脸部畸变、手指异位、模糊等瑕疵,对于要求不高的地方还能委曲利用,对于要求高的场景须要反复调试,这很磨练经验和耐心,目前总结出的一些方法如下

  • Adetailer治愈脸崩​​​​​​​
  • adetailer adetailer​​​​​​​
  • stablediffusion手指修复方法 各种手势姿态调解​​​​​​​
  • Stable diffusion天生细节度拉满的超高分辨率画面
2.3 必装插件


  • 双语对照 bilingual-localization、localization-zh_CN
  • C站助手 Civitai-Helper
  • prompts-all-in-one 自动翻译、收藏提示词

    4.​​​​​​​图片管理工具​​​​​​​、infinite-image-browsing
    5. animatediff 文生视频

    6.controlnet,ControlNet原明白析作用就是能够控制扩散模型,天生更接近用户需求的图,可以做到对线稿的上色以及照片转二次元人物等效果
   
     ControlNet差别模型作用      
     ControlNet模型定名规则 版本号_基础模型_预处置处罚器            ControlNet原理就是将模型原始的神经网络锁定,设为locked copy,然后将原始网络的模型复制一份,称之为trainable copy,在其上举行操纵施加控制条件。然后将施加控制条件之后的效果和原来模型的效果相加获得最终的输出。
   
     controlnet的原理    ControlNet训练

   突然收敛现象 作者发现ControlNet在训练的时间会出现突然收敛,这种收敛一样平常发生在5000-10000步,而且收敛之后假如继承迭代模型的变化并不大。比方下面的图,提供了苹果的canny图和text prompt:apple,但模型最开始学习到的是苹果电脑相关的,到6100步图片中仍然没有学习到天生提供的canny图类似的图片,但仅仅过了33步后到6133步模型突然就学会了!而且该现象和batchsize关系不大,也就是说假如增大batchsize 模型差不多也会在6133步收敛,好处是大bacthsize收敛出的模型效果更好。
  利用 diffusers 训练你本身的 ControlNet 、ControlNet training example
  1. import os
  2. import io
  3. import cv2
  4. import json
  5. import base64
  6. import requests
  7. from tqdm import tqdm
  8. from PIL import Image
  9. from datetime import datetime
  10. dst_dir = "outputs/fill50k"
  11. url="http://127.0.0.1:7860/sdapi/v1/txt2img"
  12. def read_image(img_path):
  13.     img = cv2.imread(img_path)
  14.     retval, bytes = cv2.imencode('.png', img)
  15.     encoded_image = base64.b64encode(bytes).decode('utf-8')
  16.     return encoded_image
  17. lines = []
  18. with open('./training/fill50k/prompt.json', 'rt') as f:
  19.     for line in f:
  20.         lines.append(json.loads(line))
  21. for line in tqdm(lines):
  22.     source_path = "training/fill50k/"+line['source']
  23.     target_path = "training/fill50k/"+line['target']
  24.     filename = line['target'][7:]
  25.     prompt = line['prompt']
  26.     encoded_image = read_image(source_path)
  27.     params = {
  28.         "prompt": prompt,
  29.         "seed": 2023,
  30.         "negative_prompt": "blurry",
  31.         "batch_size": 1,
  32.         "steps": 20,
  33.         "cfg_scale": 7,
  34.         "alwayson_scripts": {
  35.                 "controlnet": {
  36.                     "args": [
  37.                         {
  38.                             "enabled": True,
  39.                             "model": "your model",
  40.                             "control_net_no_detectmap": True,
  41.                             "input_image": encoded_image
  42.                         }
  43.                     ]
  44.                 }
  45.         }
  46.     }
  47.     time_stamp = datetime.now().strftime("%Y%m%d_%H%M%S")
  48.     resp = requests.post(url, json=params)
  49.     r = resp.json()
  50.     images = []
  51.     if 'images' in r.keys():
  52.         images = [Image.open(io.BytesIO(base64.b64decode(i))) for i in r['images']]
  53.     elif 'image' in r.keys():
  54.         images = [Image.open(io.BytesIO(base64.b64decode(r['image'])))]
  55.     image = images[0]
  56.     source_img = Image.open(source_path)
  57.     target_img = Image.open(target_path)
  58.     save_dir = dst_dir
  59.     os.makedirs(save_dir, exist_ok=True)
  60.     path = save_dir+"/"+filename
  61.     #image.save(path)
  62.     width, height = image.size
  63.     show_img = Image.new('RGB', (width*3, height))
  64.     show_img.paste(source_img, (0,0))
  65.     show_img.paste(target_img, (width,0))
  66.     show_img.paste(image, (width*2,0))
  67.     show_img.save(path)
复制代码
对比图(控制图、真值图、效果图)
 

 
​​​​​​​

天生openpose预处置处罚图,在sd-webui-controlnet/annotator 新建test.py
  1. import cv2
  2. import time
  3. from openpose import OpenposeDetector
  4. model_openpose = OpenposeDetector()
  5. img = cv2.imread("test.jpg")
  6. st = time.time()
  7. ret = model_openpose(
  8.             img,
  9.             include_body=True,
  10.             include_hand=False,
  11.             include_face=False,
  12.             use_dw_pose=False,
  13.             w_scale=0.75,
  14.             up_down_scale=0.4,
  15.             json_pose_callback=None,
  16.             return_face_boxes=True
  17.         )
  18. et = time.time()
  19. print(f"cost {et-st:.3f}s")
  20. cv2.imwrite(f"pose.jpg", ret[0])
复制代码
        7.姿势编辑 openpose editor
        8.真实人像写真 EasyPhoto SDWebui艺术照插件 ​​​​​​​妙鸭相机平替EasyPhoto教程
        9. Additional Network对比差别LoRA模型效果
2.4 Stable Diffusion WebUI Forge

兼容webui生态,性能做了专门优化,显存占用更少,速度更快
  1. git clone https://github.com/lllyasviel/stable-diffusion-webui-forge
复制代码
2.5 ComfyUI

ComfyUI全球爆红,AI绘画进入“工作流时代”?做最好懂的Comfy UI入门教程:Stable Diffusion专业节点式界面新手教学
ComfyUI系列教程
  1. git clone https://github.com/comfyanonymous/ComfyUI
  2. cd ComfyUI/custom_nodes
  3. git clone https://github.com/ltdrdata/ComfyUI-Manager
  4. git clone https://github.com/11cafe/comfyui-workspace-manager
  5. git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts
  6. git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack
  7. git clone https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet
  8. git clone https://github.com/rgthree/rgthree-comfy
  9. git clone https://github.com/talesofai/comfyui-browser
  10. git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved
  11. git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite
  12. git clone https://github.com/Fannovel16/comfyui_controlnet_aux
  13. git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
  14. git clone https://521github.com/cubiq/ComfyUI_essentials.git
  15. git clone https://github.com/jags111/efficiency-nodes-comfyui
  16. git clone https://github.com/WASasquatch/was-node-suite-comfyui
  17. git clone https://github.com/pythongosssss/ComfyUI-WD14-Tagger
  18. git clone https://github.com/FizzleDorf/ComfyUI_FizzNodes
  19. git clone https://github.com/Fannovel16/ComfyUI-Frame-Interpolation
  20. git clone https://github.com/crystian/ComfyUI-Crystools.git
  21. cd ComfyUI-Crystools
  22. pip install -r requirements.txt
  23. #汉化插件
  24. git clone https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION
  25. cd ../../
  26. # 启动主程序
  27. python main.py --listen
复制代码


  • Translation 汉化插件,安装后在设置页面选中中文即可。
  • Custom-Scripts 算是百宝箱吧,安装之后带有绿色小蛇节点都是它的功劳,包罗加载流程图、模型预览、文本补全等诸多功能。
  • UltimateSDUpscale 图片高清放大,字面意思。
  • tprompt_styler 风格样式,可以选择各种风格用来天生图片。
  • OneButtonPrompt 根据给点的选项自动天生提示词。
  • AlekPet 中文翻译节点
  • ComfyUI-WD14-Tagger,提示词反推插件
  • rgthree: 进度条插件
工作流模板
ComfyUI_IPAdapter_plus
2.6 Fooocus

  1. git clone https://github.com/lllyasviel/Fooocus.git
  2. cd Fooocus
  3. conda env create -f environment.yaml
  4. conda activate fooocus
  5. pip install -r requirements_versions.txt
  6. python launch.py --listen
复制代码
​​​浏览器打开 IP地址:端口7860(假如是当地,具体为127.0.01:7860)即可​​​​​​​
2.7 diffusers

手写stable-diffusion
  1. import torch
  2. from diffusers import StableDiffusionPipeline
  3. #初始化SD模型,加载预训练权重
  4. pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
  5. pipe.safety_checker = None
  6. pipe.requires_safety_checker = False
  7. #使用GPU加速
  8. pipe.to("cuda")
  9. #如GPU的内存少于10GB,可以加载float16精度的SD模型
  10. #pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", revision="fp16", torch_dtype=torch.float16)
  11. #接下来,我们就可以运行pipeline了
  12. prompt = "masterpiece, beat quality, 1girl"
  13. negative_prompt = "nsfw,blush,lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name,bad feet,big head,fused body,multiple hands,multiple legs,multiple hands,multiple breast,multiple lower legs,multiple thighs,fused body,twist body"
  14. image = pipe(prompt).images[0]
  15. image.save("test.png", "png")
复制代码
LoRA Support in Diffusers
  1. from diffusers import StableDiffusionPipeline
  2. import torch
  3. model_path = "sayakpaul/sd-model-finetuned-lora-t4"
  4. pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", torch_dtype=torch.float16)
  5. pipe.unet.load_attn_procs(model_path)
  6. pipe.to("cuda")
  7. prompt = "A pokemon with blue eyes."
  8. image = pipe(prompt, num_inference_steps=30, guidance_scale=7.5, cross_attention_kwargs={"scale": 0.5}).images[0]
  9. image.save("pokemon.png")
复制代码
  
     差别步数和cfg变化图    2.8 速度优化

   
     调用堆栈及耗时热点图    3 LoRA

LoRA 在 Stable Diffusion 中的三种应用:原理解说与代码示例
   

  • SD LoRA 模型一样平常都很小,一样平常只有几十 MB。
  • SD LoRA 模型的参数可以合并到 SD 基础模型里,得到一个新的 SD 模型。
  • 可以用一个 0~1 之间的比例来控制 SD LoRA 新画风的程度。
  • 可以把差别画风的 SD LoRA 模型以差别比例混淆。
  LoRA 之所以那么灵活,是因为它维护了模型在微调过程中的变化量。通过用两个参数量少得多的矩阵AB来维护变化量,我们不光进步了微调的服从,还保持了利用变化量来形貌微调过程的灵活性. LoRA既可以把它与预训练模型的参数加起来得到一个新模型以进步推理速度,也可以在线地用一个混淆比例来灵活地组合新旧模型。LoRA 的末了一个长处是各个基于同一个原模型独立训练出来的 LoRA 模型可以混淆利用。LoRA 甚至可以作用于被其他方式修改过的原模型,好比 SD LoRA 支持带 ControlNet 的 SD。这一点其实来自于社区用户的实践。一个大概的表明是,LoRA 用低秩矩阵来表示变化量,这种低秩的变化量恰恰与其他方法的变化量「错开」,使得 LoRA 能向着一个不干扰其他方法的方向修改模型
  3.1 原理

LoRA(大模型的 低秩 适配器)是一种利用少量图像来训练模型的方法,它冻结了预训练的模型权重,并将可训练的秩分解矩阵注入到 Transformer 架构的每一层,极大地镌汰了卑鄙任务的可训练参数的数量。不是大模型全局微调不起,只是LoRA更有性价比,大模型参数量巨大,训练本钱较高,当遇到一些卑鄙细分任务时,对大模型举行全参训练性价比不高,同时这些卑鄙细分任务的域比较好束缚我们可以利用SD模型+LoRA微调训练的方式,只训练参数量很小的LoRA,就能在卑鄙细分任务中取得不错的效果. LoRA 的精妙之处在于,它相当于在原有大模型的基础上增加了一个可拆卸的插件,模型主体保持不变。
   
     不是大模型全局微调不起,而是LoRA更有性价比   

   LoRA 将权重变化的部分 ΔW 分解为低秩表示, 确切地说,它不须要表现计算 ΔW; 相反, LoRA 在训练期间学习 ΔW 的分解表示, 这就是 LoRA 节省计算资源的奥秘
  如上所示,ΔW 的分解意味着我们须要用两个较小的 LoRA 矩阵 A 和 B 来表示较大的矩阵 ΔW。假如 A 的行数与 ΔW 相同,B 的列数与 ΔW 相同,我们可以将以上的分解记为 ΔW = AB。(AB 是矩阵 A 和 B 之间的矩阵乘法效果)
  在利用 LoRA 时,我们假设模型 W 是一个具有全秩的大矩阵,以收集预训练数据集中的全部知识。当我们微调 LLM 时,不须要更新全部权重,只须要更新比 ΔW 更少的权重来捕获焦点信息,低秩更新就是这么通过 AB 矩阵实现的
          LoRA的训练逻辑是首先冻结SD模型的权重,然后在SD模型的U-Net布局中注入LoRA模块,将其并与crossattention模块结合,并只对这部分参数举行微调训练。其是由两个低秩矩阵的乘积组成。由于卑鄙细分任务的域非常小,所以可以取得很小,很多时间我们可以取d=1。因此在训练完成之后,我们可以获得一个参数量远小于SD模型的LoRA模型。通常来说,对于矩阵,我们利用随机高斯分布初始化,并对于矩阵利用全初始化,使得在初始状态下这两个矩阵相乘的效果为。这样能够保证在初始阶段时,只有SD模型(主模型)生效。​​​​​​​
   Step1: 冻结原模型(图中蓝色部分)
  Step2: 训练微调两个小矩阵参数 A 和 B(图中橙色部分),可以明白为学习一个残差,只不过是通过矩阵分解的形式表达
  Step3: 把模型参数矩阵相乘(BA)后,加到原来的模型参数上,形成新的模型 
          颠末开源生态的持续验证,我们发现利用LoRA举行微调与SD模型全参微调的效果相差不大​​​​​​​。LoRA成为了AIGC时代的“残差模块”,SD模型的“得力助手”​​​​​​​​​​​​​​,LoRA大幅降低了SD模型训练时的显存占用,因为并不优化主模型(SD模型),所以主模型对应的优化器参数不须要存储。计算量没有显着变化,因为LoRA是在主模型的全参梯度基础上增加了“残差”梯度,同时节省了主模型优化器更新权重的过程​​​​​​​深入浅出LoRA,完备焦点基础解析, 具体代码实现参见stable-diffusion-webui源码分析(8)-Lora 
LoRA具有如下上风:
   

  • 与SD模型全参训练相比,LoRA训练速度更快,(几到几非常钟),利用少量图像(10多张),效果比较好。
  • 非常低的算力要求。我们可以在2080Ti级别的算力装备上举行LoRA训练。
  • 由于只是与SD模型的结合训练,LoRA本身的参数量非常小,最小可至3M左右。
  • 能在小数据集上举行训练(10-30张),而且与差别的SD模型都能较好的兼容与迁移适配。
  • 训练时主模型参数保持不变,LoRA能更好的在主模型的本领上优化学习。
  但是须要留意
  

  • 可以加载多个差别的LoRA模型配合差别的权重叠加利用。
  • 目前SD-WEB UI还不能训练LoRA模型。
  • 适合训练人物, 训练人物特性时,须要差别角度、姿态的数据20-40张就可以了,假如要训练风格或者画风,则须要150-200张风格图片,假如是训练一个抽象概念,则数据多多益善
  3.2 训练流程和准备

零基础入门“炼丹”,制作属于你的SD模型!模型微调原理分析教学
60分钟速通LORA训练!绝对是你看过最好懂的AI绘画模型训练教程!StableDiffusion超具体训练原理解说+实操教学,LORA参数详解与训练集处置处罚技巧_哔哩哔哩_bilibili
全网罕见的真人LoRA模型的训练要诀 及参数详解​​​​​​​
   
     LoRA训练思维导图      
     LoRA训练流程图    LoRA训练个人经验总结与复盘LORA模型训练超入门级教程​​​​​​​
   1. 确定目的 在训练LoRA模型之前,我们须要首先明白本身须要训练什么类型的LoRA,有的博主将模型分成了几个大类:人物脚色、画风/风格、概念、服饰、物体/特定元素等
  2. 收集素材 「大模型的选择」和「图片质量」都是收集素材的关键!在具象训练中并不是素材越多越好,一样平常建议20张左右即可;素材要求:差别角度,差别背景,差别姿势,差别服饰,清晰无遮挡的图片
  3. 处置处罚素材 紧张包罗统一素材尺寸、天生标签和优化标签
  有两种天生标签的方式:BLIP即自然语言标签,好比“1个女孩在草地上开心的跳舞”;Deepbooru即词组标签(常用),好比“1个女孩,草地,跳舞,大笑”。
  优化标签一样平常有两种方式:1)保留全部,不做删减,用此方法比较方便,但是须要用精准的关键词,才气还原想要的效果;2)删除部分特性标签,删减掉训练风格或者须要天生内容的相关。好比要天生「手绘插画」的LoRA模型,就须要保留图片素材中手绘插画风格相关的内容作为自带特性,那么就将与手绘插画相关的词语标签删除,增加触发词“shouhui或者chahua”。将“shouhui或者chahua”触发词与其风格相关的词关联,当你填写触发词后就会自带此风格
  批量修改关键词的工具BooruDatasetTagManager,很多大佬保举过,界面比较原始,好用的点是可以批量增删改查关键词,而且可以通过调解关键词位置来调解权重。当然你也可以利用VsCode,或者直接用txt调解都可以
  4. 调解参数/开始训练
  3.3 上手训练

脚本训练:
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表