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

图像风格迁移(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日

相关文章

  • faster-RCNN框架之rpn 较小目标检测,如果只使用rpn,并减少多个候选框

      通常faster-rcnn目标检测有两个步骤,一个是侯选框生成,一个是侯选框微调+目标区分,但是对于单目标识别, 我经常喜欢只使用rpn网络,效果还不错,不过仅仅的rpn使用参考的参数通常会造成一个目标很多个候选框,这时候 降低第一步骤的iou值就可以啦  first_stage_nms_iou_threshold = 0.7 (默认) first_st…

    目标检测 2023年4月6日
    00
  • 机器学习caffe环境搭建——redhat7.1和caffe的python接口编译

    相信看这篇文章的都知道caffe是干嘛的了,无非就是深度学习、神经网络、计算机视觉、人工智能这些,这个我就不多介绍了,下面说说我的安装过程即遇到的问题,当然还有解决方法。 说下我的环境:1》虚拟机:VM Workstation 12 Player 2》OS:redhat7.1 虚拟机装好之后因为RedHat的yum服务是收费的,为了倒腾免费yum源看网上的教…

    2023年4月8日
    00
  • windows 安装 keras

    pip install keras 报错了,看报错信息是卡在scipy上了,查了一下 https://stackoverflow.com/questions/42240720/python-scipy-giving-error-with-pip-install-scipy 到这个网址 http://www.lfd.uci.edu/~gohlke/python…

    Keras 2023年4月8日
    00
  • PyTorch LSTM的一个简单例子:实现单词词性判断

          本文将使用LSTM来判别一句话中每一个单词的词性。在一句话中,如果我们孤立地看某一个单词,比如单词book,而不看book前面的单词,就不能准确的判断book在这句话中是动词还是名词,但如果我们能记住book前面出现的单词,那么就能很有把握地判断book的词性。LSTM神经网络就能记住前面的单词。关于LSTM的详细介绍,大家可参考文末的参考资料[…

    PyTorch 2023年4月7日
    00
  • 目标检测/语义分割超强面经篇(含答案)

    目标检测面试总结:       目标检测面经1       目标检测面经2 语义分割面试总结:      语义分割面经1

    目标检测 2023年4月6日
    00
  • TensorFlow2.0之数据标准化

    import tensorflow as tf import tensorflow.keras as keras import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler #导入…

    tensorflow 2023年4月6日
    00
  • frugally-deep: Header-only library for using Keras models in C++

    // Convenience wrapper around predict for models with // single tensor outputs of shape (1, 1, 1), // typically used for regression or binary classification. // Returns this one ac…

    Keras 2023年4月7日
    00
  • RepLKNet:不是大卷积不好,而是卷积不够大,31×31卷积了解一下 | CVPR 2022

    论文提出引入少数超大卷积核层来有效地扩大有效感受域,拉近了CNN网络与ViT网络之间的差距,特别是下游任务中的性能。整篇论文阐述十分详细,而且也优化了实际运行的表现,值得读一读、试一试 来源:晓飞的算法工程笔记 公众号 论文: Scaling Up Your Kernels to 31×31: Revisiting Large Kernel Design i…

    卷积神经网络 2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部