当前位置: 首页 > news >正文

体育网站建设需求亚洲成品1688进入

体育网站建设需求,亚洲成品1688进入,福州营销型网站建设价格,做瞹瞹嗳视频网站目录 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 …目录 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​​​​​​​界面新手建议使用 Fooocus   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详尽解说关于模型的超详细小知识​​​​​​​ wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh \ sh Miniconda3-py310_23.3.1-0-Linux-x86_64.sh -b -p /opt/conda pip install diffusers transformers scipy ftfy accelerate ​git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui cd stable-diffusion-webui 默认GPU运行 #python launch.py --listen --api --xformers --enable-insecure-extension-access ./webui.sh --listen --api --xformers --enable-insecure-extension-access #如果没有GPU也可以CPU运行 ./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))), 实例:  Promptmasterpiecebeat quality1girl Negative Promptnsfw,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.controlnetControlNet原理解析作用就是能够控制扩散模型生成更接近用户需求的图,可以做到对线稿的上色以及照片转二次元人物等效果 ControlNet不同模型作用   ControlNet模型命名规则 版本号_基础模型_预处理器         ControlNet原理就是将模型原始的神经网络锁定设为locked copy然后将原始网络的模型复制一份称之为trainable copy在其上进行操作施加控制条件。然后将施加控制条件之后的结果和原来模型的结果相加获得最终的输出。 controlnet的原理         7.姿势编辑 openpose editor 8.真实人像写真 EasyPhoto SDWebui艺术照插件 ​​​​​​​妙鸭相机平替EasyPhoto教程 9. Additional Network对比不同LoRA模型效果 2.4 Stable Diffusion WebUI Forge 兼容webui生态性能做了专门优化显存占用更少速度更快 git clone https://github.com/lllyasviel/stable-diffusion-webui-forge 2.5 ComfyUI ComfyUI全球爆红AI绘画进入“工作流时代”做最好懂的Comfy UI入门教程Stable Diffusion专业节点式界面新手教学 ComfyUI-ZHO-Chinese: 简体中文版 ComfyUI git clone https://github.com/comfyanonymous/ComfyUI   cd ComfyUI/custom_nodes git clone https://github.com/ZHO-ZHO-ZHO/ComfyUI-Manager-Zh-Chinese git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts git clone https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet git clone https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION git clone https://github.com/talesofai/comfyui-browser   git clone https://github.com/crystian/ComfyUI-Crystools.git cd ComfyUI-Crystools pip install -r requirements.txt     cd ../../ python main.py --listen Translation 汉化插件安装后在设置页面选中中文即可。 Custom-Scripts 算是百宝箱吧安装之后带有绿色小蛇节点都是它的功劳包括加载流程图、模型预览、文本补全等诸多功能。 UltimateSDUpscale 图片高清放大字面意思。 tprompt_styler 风格样式可以选择各种风格用来生成图片。 OneButtonPrompt 根据给点的选项自动生成提示词。 AlekPet 中文翻译节点 ComfyUI-WD14-Tagger,提示词反推插件 rgthree: 进度条插件 工作流模板 ComfyUI_IPAdapter_plus 2.6 Fooocus git clone https://github.com/lllyasviel/Fooocus.git cd Fooocus conda env create -f environment.yaml conda activate fooocus pip install -r requirements_versions.txt python launch.py --listen ​​​浏览器打开 IP地址:端口7860(如果是本地具体为127.0.01:7860)即可​​​​​​​ 2.7 diffusers 手写stable-diffusion - 知乎 import torch from diffusers import StableDiffusionPipeline #初始化SD模型加载预训练权重 pipe StableDiffusionPipeline.from_pretrained(runwayml/stable-diffusion-v1-5) pipe.safety_checker None pipe.requires_safety_checker False #使用GPU加速 pipe.to(cuda) #如GPU的内存少于10GB可以加载float16精度的SD模型 #pipe StableDiffusionPipeline.from_pretrained(runwayml/stable-diffusion-v1-5, revisionfp16, torch_dtypetorch.float16) #接下来我们就可以运行pipeline了 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 image pipe(prompt).images[0] image.save(test.png, png) LoRA Support in Diffusers from diffusers import StableDiffusionPipeline import torch   model_path sayakpaul/sd-model-finetuned-lora-t4 pipe StableDiffusionPipeline.from_pretrained(CompVis/stable-diffusion-v1-4, torch_dtypetorch.float16) pipe.unet.load_attn_procs(model_path) pipe.to(cuda)   prompt A pokemon with blue eyes. image pipe(prompt, num_inference_steps30, guidance_scale7.5, cross_attention_kwargs{scale: 0.5}).images[0] image.save(pokemon.png) 不同步数和cfg变化图 3 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模块结合并只对这部分参数进行微调训练。其是由两个低秩矩阵的乘积组成。由于下游细分任务的域非常小所以可以取得很小很多时候我们可以取d1。因此在训练完成之后我们可以获得一个参数量远小于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张风格图片如果是训练一个抽象概念则数据多多益善 通用任何网络结构都可以利用 LoRA 的思路来进行微调 可移植微调结束后只需要让原模型参数新矩阵乘积即可得到新模型。并且可以通过/-的操作直接进行 LoRA 的迁移 推理性能不变模型总参数量不变推理性能不变相比 ControlNet 等新增参数的结构相比 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 上手训练 脚本训练https://github.com/Akegarasu/lora-scripts GUI训练https://github.com/bmaltais/kohya_ss 实际上都是调用的kohya_ss的sd-scripts项目比较倾向用脚本那个项目lora-scripts来训练写配置文件反而比较简单WEB界面在训练这块用处不大 lora-scripts​​​​​​​ 这个项目是在sd-scripts 项目的外面包了一层目的是让 sd-scripts 更加易用 sd-scripts 提供了更加灵活的功能如训练 lora、训练 dreambooth、训练 test-embedding、指定训练 UNet 或 Text Encoder、图像生成、模型转换等多种能力 lora-scripts 调用了 sd-scripts 中的训练 lora 训练的脚本但是把很多的设置、参数等进行了说明和整理且顺便带了 tensorbord 的功能让用户能够一键完成环境配置 看一下LoRAModule的__init__函数内部是如何创建一个 lora 的。实际上就是针对原始模型中每一个层都创建两个全连接层就是 lora LoRA训练参数解析​​​​​​​ 参数名    含义 resolution    训练时喂入网络的图片大小默认值为512 validation save steps    验证图片与保存中间权重的steps数默认值为100代表每100步验证一次图片并保存权重 max train steps    最大训练步数默认值为800 max steps per photos    每张图片的最大训练次数默认为200 train batch size    训练的批次大小默认值为1 gradient accumulationsteps    是否进行梯度累计默认值为4结合train batch size来看每个Step相当于喂入四张图片 dataloader num workers    数据加载的works数量windows下不生效因为设置了会报错Linux正常设置 learning rate    训练Lora的学习率默认为1e-4 rank Lora    权重的特征长度默认为128 network alpha    Lora训练的正则化参数一般为rank的二分之一默认为64  关于【SD-WEBUI】的LoRA模型训练怎样才算训练好了  git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts   修改train.sh里面的内容 $pretrained_model 基础模型路径最好填入WEB UI下的绝对路径避免拷贝几个GB的数据 $train_data_dir 训练数据集路径预处理完成的图片和提示词存放目录 $resolution 分辨率需要多少预处理成多少填写一致 $max_train_epoches 最大训练 epoch 1个epoch是一个完整的数据集通过神经网络一次并且返回一次的过程 $save_every_n_epochs 每几个 epoch 保存一次 $output_name 模型保存名称 ​​​​​​​​​​​​​​ 4. 深入原理 全网最简单的扩散模型DDPM教程、DDPM 拆楼 建楼​​​​​​​、深入浅出理解DDPM推导过程、【diffusion】扩散模型详解原理代码 ​​​​​​​前向过程扩散 前向过程forward process又称为扩散过程diffusion process简单理解就是对原始图片 x0通过逐步加高斯噪声变成xt从而达到破坏图片的目的如下图 DDPM的前向过程 反向过程去噪 反向过程就是通过估测噪声多次迭代逐渐将被破坏的xt恢复成x0如下图 如何训练获得噪声估计模型 训练过程如下图描述 DDPM训练图示   DDPM训练和采样算法 4.1 使用教程 关于【Stable-Diffusion WEBUI】方方面面研究 深入浅出讲解Stable Diffusion原理新手也能看明白  Diffusion Model原理详解及源码解析 代码Diffusion-Models-pytorch ​​​​​​​深入浅出Stable Diffusion完整核心基础讲解 细数【SD-WEBUI】的模型谁是最适合的模型从哪里找到它们 喂饭级stable_diffusion_webUI调参权威指南 ​​​​​​​Stable Diffusion WebUI 小指南 - X/Y/Z Plot ​​​​​​​​​​​​​​超细5000字详解AI绘画图生图干货、技巧教程、学习分享 Stable Diffusion 模型格式及其相关知识全面指南 从耗时看Stable Diffusion WebUI中的采样方式​​​​​​​ 教会你使用AI绘画利器Stable Diffusion  4.2 原理 AI艺术的背后详解文本生成图像模型 AE: 自编码器由编码器以及解码器组成其首先对图像进行压缩之后在对压缩后的表征进行重建。在实际应用中自编码器往往会被用于降维去噪异常检测或者神经风格迁移中.  VAE 不再去学习一个连续的表征而是直接学习一个分布然后通过这个分布采样得到中间表征去重建原图, 其假设中间表征是一个正态分布因此编码器部分需要将原图  映射为正态分布  通过重参数技巧得到采样后的中间表征。紧接着解码器通过中间表征 z 进行解码操作得到原图的重建. VQ-VAE: VAE 具有一个最大的问题就是使用了固定的先验正态分布其次是使用了连续的中间表征这样会导致图片生成的多样性并不是很好以及可控性差。为了解决这个问题VQ-VAE Vector Quantized Variational Autoencoder 选择使用离散的中间表征同时通常会使用一个自回归模型来学习先验例如 PixelCNN 或者 Transformer。在 VQ-VAE 中其中间表征就足够稳定和多样化从而可以很好的影响 Decoder 部分的输出 帮助生成丰富多样的图片。因此后来很多的文本生成图像模型都基于 VQ-VAE DALL-E 由 OpenAI 开发是当前非常流行的文本生成图像模型之一. DALL-E 模型中的生成模块使用的是 VQ-VAE不同的是其先验的学习使用的是文本到中间离散表征的映射最大的特色是对语义的理解非常出色以及可以生成各种非常规但是又符合语义信息的图像 GAN 由两个主要的模块构成生成器和判别器。生成器负责生成一张图片而判别器则负责判断这张图片质量也就是判断是真实样本还是生成的虚假样本通过逐步的迭代左右互博最终生成器可以生成越来越逼真的图像而判别器则可以更加精准的判断图片的真假。最大优势是其不依赖于先验假设而是通过迭代的方式逐渐学到数据的分布。GAN在训练时要同时训练生成器与判别器所以其训练难度是比较大的 Diffusion Model 上文提到的 VQ-VAE 以及 VQ-GAN都是先通过编码器将图像映射到中间潜变量然后解码器在通过中间潜变量进行还原。实际上扩散模型做的事情本质上是一样的不同的是扩散模型完全使用了全新的思路来实现这个目标。在扩散模型中主要有两个过程组成前向扩散过程反向去噪过程前向扩散过程主要是将一张图片变成随机噪音而逆向去噪过程则是将一张随机噪音的图片还原为一张完整的图片 DALL-E2 是 OpenAI 最新 AI 生成图像模型其最大的特色是模型具有惊人的理解力和创造力 其参数大约 3.5B , 相对于上一代版本DALL-E2 可以生成4倍分倍率的图片且非常贴合语义信息.DALL-E2 由三个模块组成: CLIP模型对齐图片文本表征;先验模型接收文本信息将其转换成 CLIP 图像表征;扩散模型接受图像表征来生成完整图像 Imagen 的图像生成流程和 DALL-E2 非常像首先将文本进行编码表征之后使用扩散模型将表征映射成为完整图像同时会通过两个扩散模型来进一步提高分辨率。与 DALL-E2 不同的是Imagen 使用了 T5-XXL 模型直接编码文本信息然后使用条件扩散模型直接用文本编码生成图像。因此在 Imagen 中无需学习先验模型 Stable Diffusion 是由 Stability.ai 于近期开放的文本生成图像模型由于其交互简单生成速度快极大的降低了使用门槛而且同时还保持了令人惊讶的生成效果. 它是基于之前 Latent Diffusion 模型进行改进的上文中提到的扩散模型的特点是反向去噪过程速度较慢其扩散过程是在像素空间进行当图片分辨率变大时速度会变得非常慢。而 Latent Diffusion 模型则考虑在较低维度的潜在空间中进行扩散过程这样就极大的减轻了训练以及推理成本 生成式模型的主流架构​​​​​​​ 十分钟读懂Stable Diffusion运行原理 文生图模型之Stable Diffusion​​​​​​​ SD模型的主体结构如下图所示主要包括三个模型 autoencoderencoder将图像压缩到latent空间而decoder将latent解码为图像 CLIP text encoder提取输入text的text embeddings通过cross attention方式送入扩散模型的UNet中作为condition采用CLIP text encoder来对输入text提取text embeddings具体的是采用目前OpenAI所开源的最大CLIP模型clip-vit-large-patch14这个CLIP的text encoder是一个transformer模型只有encoder模块层数为12特征维度为768模型参数大小是123M。对于输入text送入CLIP text encoder后得到最后的hidden states即最后一个transformer block得到的特征其特征维度大小为77x76877是token的数量这个细粒度的text embeddings将以cross attention的方式送入UNet中 UNet扩散模型的主体用来实现文本引导下的latent生成。SD的扩散模型是一个860M的UNet其中encoder部分包括3个CrossAttnDownBlock2D模块和1个DownBlock2D模块而decoder部分包括1个UpBlock2D模块和3个CrossAttnUpBlock2D模块中间还有一个UNetMidBlock2DCrossAttn模块。encoder和decoder两个部分是完全对应的中间存在skip connection。注意3个CrossAttnDownBlock2D模块最后均有一个2x的downsample操作而DownBlock2D模块是不包含下采样的 SD的训练是多阶段的先在256x256尺寸上预训练然后在512x512尺寸上精调不同的阶段产生了不同的版本 SD v1.1在laion2B-en数据集上以256x256大小训练237,000步上面我们已经说了laion2B-en数据集中256以上的样本量共1324M然后在laion5B的高分辨率数据集以512x512尺寸训练194,000步这里的高分辨率数据集是图像尺寸在1024x1024以上共170M样本。 SD v1.2以SD v1.1为初始权重在improved_aesthetics_5plus数据集上以512x512尺寸训练515,000步数这个improved_aesthetics_5plus数据集上laion2B-en数据集中美学评分在5分以上的子集共约600M样本注意这里过滤了含有水印的图片pwatermark0.5)以及图片尺寸在512x512以下的样本。 SD v1.3以SD v1.2为初始权重在improved_aesthetics_5plus数据集上继续以512x512尺寸训练195,000步数不过这里采用了CFG以10%的概率随机drop掉text。 SD v1.4以SD v1.2为初始权重在improved_aesthetics_5plus数据集上采用CFG以512x512尺寸训练225,000步数。 SD v1.5以SD v1.2为初始权重在improved_aesthetics_5plus数据集上采用CFG以512x512尺寸训练595,000步数。 其实可以看到SD v1.3、SD v1.4和SD v1.5其实是以SD v1.2为起点在improved_aesthetics_5plus数据集上采用CFG训练过程中的不同checkpoints目前最常用的版本是SD v1.4和SD v1.5。 SD的训练是采用了32台8卡的A100机器32 x 8 x A100_40GB GPUs所需要的训练硬件还是比较多的但是相比语言大模型还好。单卡的训练batch size为4并采用gradient accumulation其中gradient accumulation steps2那么训练的总batch size就是32x8x2x42048。训练优化器采用AdamW训练采用warmup在初始10,000步后学习速率升到0.0001后面保持不变。至于训练时间文档上只说了用了150,000小时这个应该是A100卡时如果按照256卡A100来算的话那么大约需要训练25天左右。  4.3 训练阶段 使用 AutoEncoderKL 自编码器将图像 Image 从 pixel space 映射到 latent space学习图像的隐式表达注意 AutoEncoderKL 编码器已提前训练好参数是固定的。此时 Image 的大小将从 [B, C, H, W] 转换为 [B, Z, H/8, W/8]其中 Z 表示 latent space 下图像的 Channel 数。这一过程在 Stable Diffusion 代码中被称为 encode_first_stage 使用 FrozenCLIPEmbedder 文本编码器对 Prompt 提示词进行编码生成大小为 [B, K, E]的 embedding 表示即 context其中 K 表示文本最大编码长度 max length, E 表示 embedding 的大小。这一过程在 Stable Diffusion 代码中被称为 get_learned_conditioning 对图像的隐式表达进行不断加噪进行前向扩散过程Diffusion Process之后对加噪后的图像调用 UNetModel 对噪声进行预估UNetModel 同时接收图像的隐式表达 latent image 以及文本 embedding context在训练时以 context 作为 condition使用 Attention 机制来更好的学习文本与图像的匹配关系 扩散模型输出噪声 ϵθ计算和真实噪声之间的误差作为 Loss通过反向传播算法更新 UNetModel 模型的参数注意这个过程中 AutoEncoderKL 和 FrozenCLIPEmbedder 中的参数不会被更新。 4.4 采样阶段​​​​​​​ 使用 FrozenCLIPEmbedder 文本编码器对 Prompt 提示词进行编码生成大小为 [B, K, E]的 embedding 表示即 context; 随机产出大小为 [B, Z, H/8, W/8] 的噪声 Noise利用训练好的 UNetModel 模型按照 DDPM/DDIM/PLMS 等算法迭代 T 次将噪声不断去除恢复出图像的 latent 表示 使用 AutoEncoderKL 对图像的 latent 表示大小为 [B, Z, H/8, W/8]进行 decode解码最终恢复出 pixel space 的图像图像大小为 [B, C, H, W]; 这一过程在 Stable Diffusion 中被称为 decode_first_stage。 35张图直观理解Stable Diffusion  ​​​​​​​The Illustrated Stable Diffusion  Diffusion扩散模型学习1——Pytorch搭建DDPM实现图片生成 ddpm-pytorch Diffusion扩散模型学习2——Stable Diffusion结构解析 ​​​​​​​​​​​​​​Stable Diffusion 原理介绍与源码分析一​​​​​​​​​​​​​​ Stable Diffusion结构解析-以文本生成图像文生图txt2img为例 4.5 采样器  stable-diffusion-webui源码分析9-euler a 采样器 DDPM、DDIM、PLMS算法分析 Stable Diffusion-采样器篇 Euler采样器欧拉采样方法。 Heun采样器欧拉的一个更准确但是较慢的版本。 LMS采样器线性多步法与欧拉采样器速度相仿但是更准确 名称中带有a标识的采样器表示这一类采样器是祖先采样器。这一类采样器在每个采样步骤中都会向图像添加噪声采样结果具有一定的随机性。 带有Karras字样的采样器最大的特色是使用了Karras论文中建议的噪音计划表。主要的表现在于噪点步长在接近尾声时会更小有助于图像的质量提升 DPM会自适应调整步长不能保证在约定的采样步骤内完成任务整体速度可能会比较慢。对Tag的利用率较高在使用时建议适当放大采样的步骤数以获得较好的效果。 DPM是对DPM的改进DPM2采用二阶方法其结果更准确但是相应的也会更慢一些 1.如果只是想得到一些较为简单的结果选用欧拉Eular)或者Heun并可适当减少Heun的步骤数以减少时间 2.对于侧重于速度、融合、新颖且质量不错的结果建议选择 DPM 2M Karras Step Range20-30 UniPc, Step Range: 20-30 3. 期望得到高质量的图像且不关心图像是否收敛 DPM SDE Karras Step Range8-12 DDIM Step Range10-15 4. 如果期望得到稳定、可重现的图像避免采用任何祖先采样器​​​​​​​  不同采样器速度对比   euler和euler a采样器实现上的区别 4.6 大模型微调 要训练自己数据最直观的方法就是把自己的图片加入模型迭代时一起训练。但会带来两个问题一个是过拟合另一个是语言漂移(language drift)。而Dreambooth的优势就在于能避免上述的两个问题 可以用一个罕见的词来代表图片的含义保证新加入的图片对应的词在模型中没有太多的意义 为了保留类别的含义例如上图中的“狗”模型会在狗的类别基础上微调并保留对应词的语义例如给这只狗取名为Devora, 那么生成的Devora就会特指这只狗。 区别于textual inversion方法Dreambooth使用的是一个罕见的词而textual inversion使用的是新词。Dreambooth会对整个模型做微调而textual inversion只会对text embedding部分调整 常见的大模型微调技术就是以下这四个LoRA vs Dreambooth vs Textural Inversion vs Hypernetworks 训练方式    输出大小MB    所需最小显存GB    训练用时分钟 Dreambooth    2000    8.0    45 Hypernetwork    114    8.0    70 Textual Inversion    0.0013    8.0    60 LoRA    145    7.0    15 google在2022年8月提出的一种新的图像算法其方法可以完整的获得你想要的模型的视觉特征它的提出既不是为了训练人物也不是为了训练画风而是为了能在少量训练图像的基础上完美的还原细节特征。 ​​​​​​​​​​​​​​Dreambooth要求我们在训练过程中“特征词类别”和“类别”成对出现解决过拟合的问题虽然叫大模型微调技术但是他调得一点都不微他基本把UNET算法的每一层内部参数都调了一遍 Dreambooth优点是可以将视觉特征完美融入; Dreambooth缺点是需要调整UNet所有内部参数训练时间长模型体积大。 数据 3-10张图片, 最好是不同角度且背景有变化的图片 独特的标识符(unique identifier) 类的名字(class name) 1. 给训练图片添加n步噪声使其变成较为嘈杂的图片测试图左侧的噪声图。【即正向Diffusion过程详见Stable Diffusion原理简介】 2. 另外再给训练图片添加较少一点的噪声(n-1)使其成为一张校准图片测试图右侧的图片。 3. 然后我们来训练SD模型以左侧较嘈杂的图片作为输入再加上特殊关键词指令的输入能输出右侧较为清晰的图片。 4. 一开始由于模型可能根本就不识别新增的特殊关键词SKS他可能输出了一个不是很好的结果。此时我们将该结果与目标图片右侧较少噪声的图片进行比较得出一个loss结果用以描述生成图像与目标图像的差异程度。 5. 接着Dreambooth会做一步被称为Gradient Update的事情。有关Gradient Update的事情实在是过于复杂了你可以简单理解为如果Loss高的话它将惩罚模型如果Loss低的话它将奖励模型。 6. 当训练重复了一段时间后整个模型会逐渐认识到当它收到SKS的词语输入时生成的结果应该看起来比较像训练者所提供的柯基犬的图片由此我们便完成了对模型的调校  综上所述  Dreambooth相当于是把unet里的每一层函数都要进行微调所以我们说它计算量大训练时间长模型体积大。但是LoRA就不同了LoRA旨在减少模型的训练参数提升模型训练效率LoRA建议冻结预训练模型的权重并将训练参数注入到Transformar函数架构的每个层中他的优点就是不破坏原有模型即插即用。 正因为LoRA他的插入层较少他相较于Dreambooth可以把训练参数降低1000倍对CPU的要求也会下降三倍所以训练出来的LoRA模型就会非常小一般大家在C站下载过就知道往往他们只有几十m而一个大模型往往有几个g所以他在我们日常工作中变得非常常用。可以简单理解Lora是在原有模型上添加一个“滤镜”让这个底模往我们期望的效果走 Dreambooth调整了整个UNET的函数和参数所以他体积最大适用范围最全但是训练难度和训练耗时和成本最大。 LoRA只将训练参数注入到了部分Transformar函数中所以他不改变原模型即插即用模型大小也可控是我们后续学习的重点。 而Hypernetwork是新建了一个单独的神经网络模型插入到原UNet模型的中间层。在训练过程中冻结所有参数只训练插入部分从而使输出图像与输入指令之间产生关联关系同时只改变原模型的一小块内容, 这种方法更适合用于训练某种画风. 5. 部署 stable-diffustion-webui 超网络模型训练经验 第一步制作训练集 搜集素材 首先需要准备合适的素材作为训练数据。你需要 搜集尽可能高质量的图片质量非常关键 剔除有文字、上色不佳、质量不佳、风格不统一等任何问题的图片。 剔除任何存在不想要的元素的图片或者可以修一下图 图片的分辨率不要低于训练分辨率也就是 512x512长宽都不能低于这个值 最终的素材集不需要很大只要有几十到一百来张图就足够训练了。这是整个训练过程中最繁琐和费劲的工作但不要偷懒哦否则根本就炼不出好模型。 预处理 这一步要将素材图片裁成 512x512 分辨率的方形图片用作训练数据。不要使用其他任何分辨率那样会增加失真这个我没有验证 Gradio轻松实现AI算法可视化部署 waifu-diffusion 多卡推理界面优化 stable-diffusion-webui源码分析 显存不足应对方案 显卡跑图慢等待时间长一直是众多AI绘画玩家的“痛点”。 这次老黄亲自下场用自家强大的TensorRT推理库给Stable Diffusion WebUI打了一剂强心针 TensorRT扩展地址WebUI-TensorRT ​​​​​​​显卡速度翻3倍AI绘画进入“秒速时代”Stable Diffusion究极加速插件NVIDIA TensorRT扩展安装与使用全方位教程 TensorRT在使用上的主要特点是用降低精度的办法来提升推理速度。TensorRT不局限于显卡的次代40系、30系、20系、10系、V100、A5000等都可以用但由于TensorRT是NVIDIA开发团队的作品A卡用户请直接划走。目前TensorRT可以在精度丢失不大的前提下大幅提高推理速度带来的最直接好处就是可以海量出图但从TensorRT的工作机制上来说它的缺点在于要使用TensorRT加速就需要先对原模型进行“重新编译”生成TensorRT模型简称TRT模型而且它针对的每一个打算使用的模型即一个SD模型对应一个TRT模型。尽管TRT模型生成成功后是一劳永逸的跨硬件设备不行但是在生成过程中经常会报错无法顺利转化为TRT模型比如缺少特定的节点算子。结论就当前形势来说对于出图速度很慢的用户如10系、20系显卡用户、需要海量出图的用户、爱折腾新工具的用户建议可以尝试TensorRT的加速功能对于热衷模型训练、Lora生成、以及仍在用提示词探索模型出图效果等用户建议再等等使用TensorRT工具。  本来100张50秒是正常速度为什么现在大家就觉得快了呢 这就是NV搞的一个极为恶心的操作整个事情在github的SD webui讨论区置顶就有。 具体就是在你升级NV驱动531.61之后的版本会发现生成速度大幅降低了原因是NV增加了AI绘图进程中显存不足时对虚拟显存内存的调用。玩过3D渲染的应该都知道同样一张渲染不爆显存1分钟爆显存之后半小时都很正常。这就是因为显卡和内存之间的带宽还是低了数据交互全卡在这个瓶颈了。 更恶心的是这个操作增加了显存的占用让原来不会爆显存的生成也爆显存了。 NV这么做必然是出于某种商业目的比如对于多卡的服务器来说但跟咱们玩家用SD webui应该没有太大关系。 tensorRT在处理大型并发生成上有优势但对于主要瓶颈是显存的个人电脑相比xformer等已经存在的corss-attention解决方案并没有任何优势。 AI绘画⌈奇巧淫记⌋——低显存也能制作高清美图 - 知乎 6. 商业价值 AIGC图像生成的原理综述与落地畅想 浅谈一些AIGC赚钱赛道 1. AIGC一定是历史的必然节点。因为它提升了信息生产的效率让内容的创作变得简单和无门槛 2. 商业机会并不在技术本身而在于依托于技术基础之上的人、社会、生态和模式。技术起到的是一个将红利自动化、规模化的杠杆作用  3. AI作画对艺术界产生了巨大冲击也催生出了AI辅助创作这一新兴领域的发展 如何优雅的下载huggingface-transformers模型 ———————————————— 版权声明本文为博主原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明。                          原文链接https://blog.csdn.net/minstyrain/article/details/130289285
http://www.zqtcl.cn/news/970605/

相关文章:

  • 做一个中型网站需要多少钱网站建设的费用是不是含税的
  • 网站上的广告是怎么做的连云港 网站 建设
  • 济南做网站的好公司有哪些怎么做自己的app软件
  • 淄博网站建设团队企业门户网站有哪些
  • 东莞网站建设 织梦建设茶叶网站的目的
  • 做网站的背景图片要多大做房产网站
  • 洛阳做网站公司在哪无锡网络营销推广软件
  • 医疗机械网站怎么做无锡短视频seo
  • 做网站建设哪家公司好如何营销推广
  • 陕西百威建设监理有限司网站做吉祥物设计看什么网站
  • 网络营销站点推广的方法高端网站开发价格
  • 内部优惠券网站怎么做最新国际新闻事件今天
  • 辽宁大学网站怎么做app开发用什么编程语言
  • 3d建模在线制作网站阿里云域名注册官网
  • 创建网站大约多少钱网站建设排序题
  • 大庆做网站找谁机构编制网站建设
  • 网站标题特效网站弹出的对话框怎么做
  • 找深圳网站建设wordpress 页面背景
  • 企业网站怎么维护上海注册建网站
  • 四川省建设工程造价信息网站便宜做网站价格
  • 医院网站优化策划网站开发的项目需求
  • 网站优化公司服务直播软件怎么开发
  • 网站建设 有道翻译织梦修改网站后备份
  • 苏州网联盛网站建设做最好的在线看片网站
  • 一个空间怎么放2个网站陕西城乡住房建设部网站
  • 如何购买虚拟主机做网站企业查名
  • 动易网站默认密码网站怎么做 吸引人
  • 站长工具国产2023二级建造师证书查询官方网站
  • 微信小程序联盟网站北京网站建设华大
  • 人事怎么做招聘网站比对分析crm管理系统 一般包含