人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)

yizhihongxing

图像风格迁移(Style Transfer)是一种计算机视觉技术,旨在将一幅图像的风格应用到另一幅图像上,从而生成一幅新图像,该新图像结合了两幅原始图像的特点,目的是达到一种风格化叠加的效果,本次我们使用Stable-Diffusion结合ControlNet来实现图像风格迁移效果。

安装ControlNet插件

首先确保本地已经安装并且配置好了Stable-Diffusion-Webui服务,关于Stable-Diffusion-Webui,请参见:人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0),这里不再赘述。

随后进入项目目录,启动Stable-Diffusion-Webui服务:

python3 launch.py

如果是没有N卡的电脑,就使用cpu模式启动:

python3 launch.py --skip-torch-cuda-test --upcast-sampling --use-cpu interrogate

接着访问 http://localhost:7860

选择插件(Extensions)选项卡

点击从url安装,输入插件地址:github.com/Mikubill/sd-webui-controlnet.git

安装成功后,重启WebUI界面。

人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)

由于ControlNet默认是一层网络,风格化操作我们需要两层,所以在设置选单(Settings)中,将多层网络设置为2。

人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)

设置好之后,下载模型文件:huggingface.co/webui/ControlNet-modules-safetensors/tree/main

将模型放入 stable-diffusion-webui/extensions/sd-webui-controlnet/models目录

这里还需要单独下载一个风格迁移模型,地址是:huggingface.co/TencentARC/T2I-Adapter/blob/main/models/t2iadapter_style_sd14v1.pth

同样放入stable-diffusion-webui/extensions/sd-webui-controlnet/models目录

至此,Stable-Diffusion-Webui服务的ControlNet插件就配置好了。

风格迁移

现在,我们打开ControlNet的第一个图层,将原始图像的轮廓渲染出来,因为需要保证原始图像的基本形状。

人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)

这里预处理器选择head,模型使用ControlNet的head模型即可。

可以看到基本轮廓已经得到了保留,风格化只负责颜色和线条。

随后配置第二个ControlNet图层,预处理器选择t2ia_style-clipvison,模型选择刚刚下载的t2iadapter_style_sd14v1.pth,默认图像权重为1,先不要动。

接着上传一张目标风格的图片,这里我们选择文森特梵高的表现主义作品《星空》:

人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)

随后点击Generate按钮做图生图(img2img)操作即可。

过拟合问题(Overfitting)

经过一段时间的本地推理,生成结果如下:

人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)

效果并不尽如人意,这也是大多数深度学习入门者会遇到的问题,也就是过拟合问题。

过拟合(Overfitting)是指在训练模型时,模型过度地学习了训练数据的特征和噪声,从而导致模型在新数据上表现不佳的问题。

通俗地讲,过拟合就像是一名学生背诵考试答案,但是他只是死记硬背了考试题目的答案,没有真正理解题目的本质和解题思路。当他遇到新的考试题目时,由于没有理解题目的本质和解题思路,他就无法正确回答。

在机器学习中,过拟合的原因是模型复杂度过高,导致模型对训练数据中的噪声和特征都过度追求,并且忽略了数据背后的本质规律和特征。因此,当模型面对新的数据时,由于没有真正理解数据的本质规律和特征,它就无法正确地对新数据进行预测。

说白了,就是对于原始图的特征过分追求,从而淡化了目标图的风格,还记得ControlNet默认权重是1吗?这里我们只需要将权重往下调整,比如调成0.8,再次尝试生成:

人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)

效果不错,既保留了原始图的大部分细节,又增加了梵高的表现主义风格。

当然了,权重也不能一味地往下调整,否则也会出现欠拟合(Underfitting)问题,整个风格化迁移的过程也可以理解为是一种“调参”的过程。

结语

通过Stable-Diffusion结合ControlNet插件,我们可以得到一幅新的图像,该图像结合了两幅原始图像的特点,既具有内容图像的内容,又具有风格图像的风格。图像风格迁移也可以应用于其他的领域,比如电影、游戏、虚拟现实和动画创作等等。

原文链接:https://www.cnblogs.com/v3ucn/p/17339075.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10) - Python技术站

(0)
上一篇 2023年4月22日
下一篇 2023年4月22日

相关文章

  • DeepLearning.ai 提炼笔记(5-1)– 循环神经网络

    参考博客 Class 5: 序列模型Sequence Models Week 1: 循环神经网络RNN (Recurrent) 文章目录 Class 5: 序列模型Sequence Models Week 1: 循环神经网络RNN (Recurrent) 目录 序列模型-循环神经网络 1.序列模型的应用 2.数学符号 3.循环神经网络模型 传统标准的神经网络…

    循环神经网络 2023年4月7日
    00
  • TensorFlow学习笔记1:graph、session和op

    graph即tf.Graph(),session即tf.Session(),很多人经常将两者混淆,其实二者完全不是同一个东西。 graph定义了计算方式,是一些加减乘除等运算的组合,类似于一个函数。它本身不会进行任何计算,也不保存任何中间计算结果。 session用来运行一个graph,或者运行graph的一部分。它类似于一个执行者,给graph灌入输入数据…

    tensorflow 2023年4月7日
    00
  • keras中Convolution1D的使用

    转载weixin_34132768 最后发布于2017-03-07 20:22:00 阅读数 348  收藏 展开 这篇文章主要说明两个东西,一个是Convolution1D的介绍,另一个是model.summary()的使用。 首先我先说下model.summary(),此方法可以打印出模型的信息,读者可以查看每层输出内容。 接下来就说下Convoluti…

    2023年4月6日
    00
  • Chapter 1 初探Caffe

    首先下载windows下源码: Microsoft 官方:GitHub – Microsoft/caffe: Caffe on both Linux and Windows 官方源码使用Visual Studio 2013工程,使用vs2013及以上版本均可以打开,但是需要VS2013编译环境,所以得安装VS2013。 打开caffe-masterwindo…

    2023年4月6日
    00
  • 汇编语言和机器语言的区别

    汇编语言和机器语言的区别 什么是机器语言 机器语言又称为0和1的语言。计算机只能识别0和1,因此机器语言是一组用二进制代码编写的指令序列,用于控制计算机硬件执行任务。 例如,下面给出的是一个简单的机器语言程序: 01100100 00000001 00000010 该程序实际上是3个指令的串联,每个指令都以16位二进制代码表示。这些指令将被加载到计算机中,计…

    artificial-intelligence 2023年3月27日
    00
  • 机器学习之正则化技术

    前言 机器学习中的核心问题:模型的设计不仅在训练数据上表现好,并且能在新输入上泛化好; 正则化策略:以增大训练误差为代价,来减少测试误差(如果在训练误差上很小,可能出现过拟合的情况); 最好的拟合模型(最小化泛化误差的意义上)是一个适当正则化的大型模型。 正则化(regularization)的作用实际上就是防止模型过拟合,提高模型的泛化能力。其思想是在损失…

    机器学习 2023年4月10日
    00
  • 时空序列预测模型之PredRNN(用ST-LSTM的预测学习循环神经网络)

    前言 接下来保持住节奏,每周起码一篇paper reading,要时刻了解研究的前沿,是一个不管是工程岗位还是研究岗位AIer必备的工作,共勉! 一、Address 这是nips2017年的一篇paper,来自于清华的团队  PredRNN: Recurrent Neural Networks for Predictive Learning using Sp…

    2023年4月8日
    00
  • TensorFlow 算术运算符

    TensorFlow 算术运算符 TensorFlow 提供了几种操作,您可以使用它们将基本算术运算符添加到图形中。 tf.add tf.subtract tf.multiply tf.scalar_mul tf.div tf.divide tf.truediv tf.floordiv tf.realdiv tf.truncatediv tf.floor_d…

    tensorflow 2023年4月6日
    00
合作推广
合作推广
分享本页
返回顶部