Stable Diffusion (持续更新)

这篇具有很好参考价值的文章主要介绍了Stable Diffusion (持续更新)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

本文的目的为记录stable diffusion的风格迁移,采用diffusers example中的text_to_image和textual_inversion目录

2023.7.11

Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
收集了6张水墨画风格的图片,采用textual_inversion进行训练,以"The street of Paris, in the style of "作为模板,第369轮的图片如下
Stable Diffusion (持续更新),stable diffusion
第500轮的模型用于生成飞机,猫,狗
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
然而生成草莓,香蕉却无法生成,顶多是更改了背景
Stable Diffusion (持续更新),stable diffusion
这让我怀疑模型并不能很好的学习到其中的风格

2023.7.12

在昨天注意到textual inversion只能迁移风格到一些模型已有的内容中,对于一些位置的物体无法进行风格迁移后,我将目光再次转向了LoRA,在参考了这篇文章之后,我开始着手训练,LoRA需要使用较多的图片,因此我将图片的数量增加到了20张,并且使用stable-diffusion-webui进行数据预处理,具体为将图片裁剪为512*512大小之后,使用danbooru提供图片的描述词,然后使用train_text_to_image_lora.py进行训练,我的设置如下,在之前的理解中,我认为random_flipcenter_crop数据增强应该对图像生成是没有用的,这篇文章中也是这么说的,但是我又想到数据量这么小,虽然可能没有提升,但是也不会更差,于是就加上吧,同时我将train_batch_size从计算机最大可以使用的6改为4,玄学认为4的倍数训练模型更加好

export MODEL_NAME="/home/zxa/ps/pretrain_models/stable-diffusion-v1-5/"
export DATASET_NAME="/home/zxa/ps/open_data/material_tags_copy/"

accelerate launch --mixed_precision="fp16" train_text_to_image_lora_my_version.py \
  --pretrained_model_name_or_path=$MODEL_NAME \
  --train_data_dir $DATASET_NAME --caption_column="text" \
  --random_flip --center_crop\
  --dataloader_num_workers=0 \
  --resolution=512 \
  --gradient_accumulation_steps=1 \
  --train_batch_size=4 \
  --max_grad_norm=1 \
  --checkpointing_steps=500 \
  --learning_rate=1e-04 --lr_scheduler="constant" --lr_warmup_steps=0 \
  --seed=42 \
  --output_dir="sd-model-lora-v1.5-ink" \
  --report_to="wandb" \
  --enable_xformers_memory_efficient_attention \
  --validation_prompt="strawberry" \
  --num_validation_image=4 \
  --validation_epochs=100 \
  --max_train_steps=15000 \

然而,我训练了1500轮的图片,却出现了我不想要的文字信息,甚至还出现了过拟合情况,即我想要生成草莓,却生成的不是草莓,如下
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
这让我意识到是我训练的数据存在错误了,于是我开始采用手动裁剪的方式,使用windows自带的照片软件中的裁剪功能,选择正方形,选择没有文字的地方裁剪出来,效果如下
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
出现过拟合的情况,很有可能是因为danbooru给出的图片描述词与图片根本不符,因此我删掉了danbooru的描述词,全部自己手写生成,例如A yellow tiger with its mouth open, standing on a mountainA man wearing a cap and coir raincoat with his mouth closed and holding a bowl,将图片和文字全部处理好之后,重新开始训练,训练效果如下
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
这是模型运行2000轮的效果
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
这是模型运行3000轮的效果,可见我们的猜想是正确的,模型在训练到过拟合后,也没有丢失文字信息,生成的都是和文字描述匹配的草莓的效果,但是3000轮已经过拟合了,图片开始失真了,因此2000轮已经是不错的选择了

2023.7.13

之前使用SAM进行了扣图,生成了一些盒子图片
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
采用自行设计标签的方式,设计了标签——A packaging design, box, standing, box cover painted with red pomegranate, pomegranate pulp, leaves, dew, Chinese textA packaging design, box, placed horizontally, box cover with pomegranate pictured, placed on a CD stand, music notes, Chinese text and English text,然而我发现,模型在3000轮以后就几乎严重的失真,过拟合了
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
这两张是1000轮的模型用同样的prompt进行生成的,算是较好的,但是图案扭曲,很不是美观,至于2000轮,3000轮的更差了就不展示了,我还发现了一个问题,那就是我对每一张图片的最后增加了chinese text and english text的tags,目的是让模型学习到文字信息,使得模型在之后在不写上文字tag的时候,可以不生成文字,然而事与愿违,可能是模型不知道如何填充文字空白区域,图案变得更加扭曲了
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
这让我开始思考是否要去除文字信息,为了验证是否是模型基底的问题,我采用CIVITAI中的revanimated模型进行训练,我发现模型的效果比SD1.5要明显的好,和SD1.5一样,revanimated也是在1000轮之后就开始失真了
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
这是800轮的结果,可以发现只有第一张还可以,后面的均有模糊和失真的感觉,这让我想到,又是我的数据集除了问题,由于包装盒子具有完整性的特征,如果将图片进行裁剪,则会出现缺边缺角的情况,因此我必须尽可能的去处理一些正方形或者长方形的图片,使得完整的盒子图片能够被保存下来。

按照正方形裁剪的方式,由于SAM扣的图已经不存在空白区域了,很难裁剪,因此我又从网上搜集了一波图,我发现有一些图很小,只有几kb,这种图一般质量也不好,因此我筛选了一下图片的大小,至少需要有60kb,裁剪后的图如下
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
在标注方面,我自认为一些重复的细节也是不必要的,例如石榴和石榴籽,我在一开始的时候标注了两个,现在我只保留了石榴,然后将中文文字这种tag也去掉了,标签为A packaging design, box, standing, box cover painted with red pomegranate, leaves, dewA packaging design, the box is placed horizontally, painted with red tomatoes, flying birds, leaves, yellow clouds,在训练了500轮之后,我得到了如下效果
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
可以看到500轮后,出的图效果还是比较清晰的,然而1000轮就开始失真了,之前的模型忘记测500轮的结果了,因此这个结果并不能说明采用正方形切割的方式就一定能够让模型生成的图更加清晰,但是至少不会收到因为图片resize变形的影响,同时训练的图片的大小应该也与生图图片的质量有关系,虽然1000轮的模型会失真,但是我们可以设置lora的weight为0.5,我们可以使用内置的函数调成scale,image = pipe(prompt, num_inference_steps=30, guidance_scale=7.5, cross_attention_kwargs={"scale": 0.5}).images[0],也可以使用这个代码,使用这个代码的原因是我们之后会想要同时使用两个lora的权重,同时作用于图片,生成的效果如下
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
有几个也还可以,但是没有500轮给的效果直观

2023.7.14

在训练lora水墨风的时候,我突然想到,是否将Ink style这个tag加上会更加的有明确性,于是我在所有的标注文本前加上了ink style,标注变成这样ink style, A man, looking up at the sky, sits, has a beard, carries a white bag, hangs a yellow gourd, wears a brown gown and white shorts, with his left hand on his thigh,加了指定风格词后,会覆盖模型原本的水墨风,不过生成效果更加直接
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion
将盒子lora权重设置为0.5,水墨风lora设置权重为0.5,将guidence_scale设置为10,步数从25提升到50后,用prompt=an ink style painting, high quality,highly detailed, package box, box cover painted with a banana, packaging design可以生成这样的图像
Stable Diffusion (持续更新),stable diffusionStable Diffusion (持续更新),stable diffusion

这种图片生成出来的感觉很奇怪,似乎是水墨风,又似乎不是水墨风,因此我猜测是不是风格训练的图片太少了,于是我将20张图片提升到80张图片进行尝试,水墨风格的图片在这个网站获取,在训练过程中,我发现其实lora训练100-200个epochs就可以拟合了,再增加epochs只会使得模型过拟合,因此在后续的训练中,我会将训练步数换成训练epochs,改用100个epochs进行训练,每20个epochs生成一次验证图片。文章来源地址https://www.toymoban.com/news/detail-554201.html

到了这里,关于Stable Diffusion (持续更新)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stable-diffusion-webui 的模型更新

    shared.py和sd_models.py中 shared.py: 模型的列表在list_checkpoint_tiles()中,更新在refresh_checkpoints中,282行 点击选中更改,sd_model.py的519行: 其中sd_model.py的165行中的select_checkpoint 实际如果在代码中想要更改权重: 即可。 初始化在webui.py的270行 中,主要Stable-diffusion下的模型都是提前初

    2024年02月13日
    浏览(37)
  • Jenkins 自动化更新 Stable Diffusion 介绍

    本文介绍如何使用 Jenkins 自动化更新 Stable Diffusion WebUI 和 Queue Agent 在 Amazon Elastic Kubernetes Service (EKS) 上的部署过程。 步骤解释 1. 登录 ECR 使用 AWS CLI 获取 ECR 登录密码,并登录到指定 ECR 仓库。 2. 定义镜像仓库和获取路径 定义 Stable Diffusion WebUI 和 Queue Agent 镜像仓库地址,并获取

    2024年04月12日
    浏览(39)
  • 安装stable diffusion时git clone总..errorCApath: none;更新出错:fatal: unable to access Connection was reset

    https://cgexe.com/39458/ 对于安装stable diffusion来说这个视频很好,但是我在本机的c盘照着做,还是报错,所以就自己整理一下自己的错误 我下载git clone总是出现这种错误: Cloning into \\\'stable-diffusion-webui\\\'... fatal: unable to access \\\'https://github.com/AUTOMATIC1111/stable-diffusion-webui/\\\': error setting

    2024年02月02日
    浏览(38)
  • 【Stable Diffusion】Stable Diffusion各类模型描述

    Stable Diffusion 是一种新型的生成模型,它可以用于生成高质量的图像、文本和音频等多种形式的数据。目前已经出现了许多基于 Stable Diffusion 模型的变种,下面简单介绍其中几种比较流行的模型: 模型链接:https://huggingface.co/stabilityai DDIM 是 Stable Diffusion 的第一个应用,它采用

    2024年02月16日
    浏览(52)
  • Stable Diffusion在更新了WIN10系统的22H2版本后无法正常使用,求助怎么解决让我的SD能正常使用,感谢

    Stable Diffusion在更新了WIN10系统的22H2版本后无法正常使用,并提示未安装VC++运行库,导致PyTorch无法正常运行,求助怎么解决让我的SD能正常使用,感谢

    2024年02月10日
    浏览(47)
  • Stable Diffusion 安装教程(详细)_stable diffusion安装

    引言 如果你只想简单尝试一下,仅仅图一乐,可以通过网页在线体验Stable Diffusion,可以今日免费的网站进行使用(https://stablediffusionweb.com/),只是功能不如本地的多。 本地部署安装Stable Diffusion有很多种方式,例如安装启动器,安装传统的Web Ui界面等等,它们的步骤看似繁

    2024年02月19日
    浏览(51)
  • 【Stable Diffusion】Stable Diffusion免安装在线部署教程

    一、开启Google Colab网址 官网:https://colab.research.google.com/ 点击添加代码: 二、执行如下代码指令 点击执行按钮 会自动安装相关的套件、模型,然后等待运行完 注意:如果发生如下错误,该如何解决 RuntimeError:No CUDA GPUs are available 解决办法: 1、点击右上角点选硬件资源 2、

    2024年02月04日
    浏览(49)
  • Stable Diffusion stable-diffusion-webui开发笔记

    Stable Diffusion用来文字生成图片,ControlNet就是用来控制构图的,LoRA就是用来控制风格的 。 国内加速官网: mirrors / AUTOMATIC1111 / stable-diffusion-webui · GitCode 安装参考: Stable Diffusion安装与常见错误(+Lora使用)2023年最新安装教程_cycyc123的博客-CSDN博客 保姆级教程:从0到1搭建St

    2024年02月10日
    浏览(74)
  • Stable Diffusion教程之使用Stable Diffusion改进图像分割模型

    作为 ML 工程师,Edge Analytics和Infinity AI的团队非常熟悉与为计算机视觉应用程序获取高质量标记图像相关的挑战。随着生成图像模型的发布,例如来自Stability AI的开源Stable Diffusion,我们探索了使用生成模型来提高特定语义分割模型的性能。 Stable Diffusion是 Stability AI 在今年早些

    2024年02月10日
    浏览(47)
  • 【Stable Diffusion】Windows端纯净版Stable Diffusion安装教程

    因为我们目前安装的Stable Diffusion和市面上的其他AIGC工具不同,他是在GitHub上的一个开源项目需要在自己的电脑环境配置Python和Git之后进行安装来利用自己电脑的性能进行图像生成,而其他AIGC工具一般是在其公司提供的云服务器上进行计算生成。因此我们使用Stable Diffusion时候

    2024年02月02日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包