基于Stable Diffusion的美术风格迁移方案

释放双眼,带上耳机,听听看~!
本文介绍了基于Stable Diffusion技术的美术风格迁移方案,结合了Dreambooth等训练方法,展示了如何利用该技术生成特定风格的美术素材,适用于游戏美术等领域。

1. 项目背景

目前游戏项目中出现美术产能不足的瓶颈,如果使用 midjourney 之类的第三方生成式人工智能产品生成美术素材的话,一方面需要将我们的美术资产投喂给第三方企业进行风格训练,有安全性上的风险,另一方面,第三方平台生成的素材结合了其他数据集,生成的资产在版权问题上有很多不可控因素。本篇文档介绍一种可以保证版权归属于我们的风格迁移方案。它是基于 Stable Diffusion 技术进行实现的。

2. Stable Diffusion介绍

Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词指导下产生图生图的翻译。 它是一种潜在扩散模型,由慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络。它是一种开源的算法,且有现成的代码仓库可以调用。

3. 利用 Stable Diffusion 进行风格迁移

目前,训练Stable Diffusion模型的方法主要有四种,它们分别是:Dreambooth、Textual Inversion、LoRA和Hypernetworks。
DreamBooth是谷歌推出的一个主题驱动的AI生成模型,它可以微调文本到图像扩散模型或新图像的结果。Dreambooth具备个性化结果的能力。
只要有少量图片作为输入(通常3-5张),Dreambooth就可以在调整后的Imagen和其他一些扩散模型的帮助下,生成具有不同背景的基于主题的个性化图像。一旦有图片输入,调整后的Imagen和其他扩散模型就找到唯一标识符,并将其与主题联系起来。在推理时,唯一标识符被用于合成不同上下文中的主题。

3.1 训练集

我们可以用特定风格的美术图片作为训练集,训练生成特定艺术风格的模型,例如我们使用《明星志愿1》的人物立绘素材做训练集,训练了一个名为 star1 的模型,专门用来生成上世纪90年代dos游戏风格的图片。我们仅使用了27张图片作为训练集,如下所示:

基于Stable Diffusion的美术风格迁移方案

3.2 用图片生成器 + prompt 生成图片 (txt2img)

用 stable diffusion 训练好的图片生成器 + 我们生成的 star1 模型 + prompt,就可以通过文本生成特定风格的人物立绘。例如下面三张图片,我们采用的 positive prompt 和 negative prompt 分别是:

((star1)), a handsome 20 year old man, solo, look at viewer, portait, simple background, transparent background

(watermark),sketch, duplicate, ugly, ((text)), ((logo)), monochrome, worst face, (bad and mutated hands:1.3), (worst quality:2.0), (low quality:2.0), (blurry:2.0), horror, geometry, (bad hands), (missing fingers), multiple limbs, bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), crown braid, ((2girl)), (deformed fingers:1.2), (long fingers:1.2),(bad-artist-anime),extra fingers,fewer fingers,hands up,bad hands, bad feet,shoes, stone, ((bad toe))

生成的图片结果是:

基于Stable Diffusion的美术风格迁移方案 基于Stable Diffusion的美术风格迁移方案 基于Stable Diffusion的美术风格迁移方案
图1 图2 图3

3.3 利用参考图做风格迁移生成素材(img2img)

此外,我们也可以通过输入一张参考图像,做风格迁移,如下所示,左图是参考图,右图是用我们的 star1 模型进行风格迁移后的图片:

输入图 风格迁徙结果
基于Stable Diffusion的美术风格迁移方案 基于Stable Diffusion的美术风格迁移方案
基于Stable Diffusion的美术风格迁移方案 基于Stable Diffusion的美术风格迁移方案
基于Stable Diffusion的美术风格迁移方案 基于Stable Diffusion的美术风格迁移方案

可以看出,我们训练的 star1 模型完美抓住了上世纪90年代dos游戏的画风,注意头发的高光、整齐的发际线,以及人物衣服褶皱处的处理。

虽然我们的训练集中使用的全部是人物素材,但这种风格迁移不仅对人物有效,我们发现对于动物照片,同样能够实现画风风格的迁移,如下图所示,是一只大熊猫吃竹子的照片,及我们用 star1 进行风格迁移后的结果:

输入图 风格迁徙结果
基于Stable Diffusion的美术风格迁移方案 基于Stable Diffusion的美术风格迁移方案

我们使用的底层大模型是stable-diffusion-v1-5,它已经提供丰富的txt2img语义支持。而Dreambooth微调文本到图像扩散模型或新图,只负责微调画风。你可以理解为,底模告诉机器这是一只熊猫,熊猫的特征是毛茸茸的哺乳动物,它的颜色如何,耳朵什么样,眼睛什么样,四肢什么样;然后 dreamBooth 告诉机器,毛茸茸的地方应该怎么画,然后机器可以将画风扩散到底模能够解释的语义的所有地方。

4. 训练使用的参数:

4.1 安装环境

首先配置需要的 DreamBooth 环境:

!wget -q https://github.com/ShivamShrirao/diffusers/raw/main/examples/dreambooth/train_dreambooth.py !wget -q https://github.com/ShivamShrirao/diffusers/raw/main/scripts/convert_diffusers_to_original_stable_diffusion.py %pip install -qq git+https://github.com/ShivamShrirao/diffusers %pip install -q -U --pre triton %pip install -q accelerate transformers ftfy bitsandbytes==0.35.0 gradio natsort safetensors xformers

4.2 引入初始模型

引入初始模型并设置保存路径:

`save_to_gdrive = False #@param {type:”boolean”}
if save_to_gdrive:
from google.colab import drive
drive.mount(‘/content/drive’)

#@markdown Name/Path of the initial model.
MODEL_NAME = “runwayml/stable-diffusion-v1-5″ #@param {type:”string”}

#@markdown Enter the directory name to save model at.

OUTPUT_DIR = “stable_diffusion_weights/star01″ #@param {type:”string”}
if save_to_gdrive:
OUTPUT_DIR = “/content/drive/MyDrive/” + OUTPUT_DIR
else:
OUTPUT_DIR = “/content/” + OUTPUT_DIR

print(f”[*] Weights will be saved at {OUTPUT_DIR}”)

!mkdir -p $OUTPUT_DIR`

4.3 训练使用的参数

!python3 train_dreambooth.py --pretrained_model_name_or_path=$MODEL_NAME --pretrained_vae_name_or_path="stabilityai/sd-vae-ft-mse" --output_dir=$OUTPUT_DIR --revision="fp16" --with_prior_preservation --prior_loss_weight=1.0 --seed=1337 --resolution=512 --train_batch_size=1 --train_text_encoder --mixed_precision="fp16" --use_8bit_adam --gradient_accumulation_steps=1 --learning_rate=1e-6 --lr_scheduler="constant" --lr_warmup_steps=0 --num_class_images=50 --sample_batch_size=4 --max_train_steps=800 --save_interval=10000 --save_sample_prompt="star1" --concepts_list="concepts_list.json"

用最后一次训练存储的权值进行一次生成,可以预览到训练的模型的风格化能力:

基于Stable Diffusion的美术风格迁移方案

感兴趣的同学可以以 Stable Diffusion DreamBooth 为关键字到网上检索更多资料进行学习。我上手开发使用的示例项目是colab.research.google.com/github/Shiv…
相信大家能够训练出自己风格的模型。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

AutoML Tables: 自动化模型优化与超参数选择

2023-12-19 9:46:14

AI教程

ViT与YOLOS:从图像分类到目标检测的迁移

2023-12-19 10:02:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索