一键式AI绘画,让你也能体验当画师的魅力(附原理分析)

2023-05-16

文章目录

  • 讲在前面
  • 一、Novel AI
    • 1. 网站介绍
    • 2. AI作画
  • 二、AI绘画的内在原理
    • 1. Diffusion Model的基本过程
    • 2. 扩散模型的兴起

讲在前面

大概在今年10月初期,AI作画的热潮突然被掀起,这股潮流瞬间激起了人们对于AI的思考和恐惧,一方面来说,随着AI绘画的不断完善,似乎我们每个人都能创作出满足一定要求的画作;而从另一方面来说,虽然现在的AI绘画可能还没有那么成熟,但是已经足够让人类感受到足够大的挑战,究竟还有什么职业能够抵抗得了AI的冲击,让我们从应用到原理,具体来了解一下,AI绘画是如何掀起这波热浪的。


一、Novel AI

1. 网站介绍

在这里插入图片描述

  • Novel AI:一个使用AI技术进行一系列人类所谓“想象力”创造的网站,从绘画到作文,从画出一幅满足要求的画,再到讲好一个引人入胜的故事,这里引用一句原网站的话

Driven by AI , painlessly construct unique stories , thrilling tales, seductive romances , or just fool around . Anything goes ! , 什么意思呢? 在人工智能的驱动下,不痛不痒地构建独特的故事,惊心动魄的故事,诱人的浪漫,或者只是胡闹。一切皆有可能!

在这里插入图片描述

其实人类对于AI恐惧的关键不在于AI能够进行绘画和写作,令人心惊的是, Tweak the AI’s output the way you like it,AI可以做到你想要的,无论how you like,当然,说了这么多,最重要的还是亲自上手,这里要感谢某站up主的呕心沥血,只需下载运行脚本,直接使用完整版AI绘画程序,原视频地址奉上,希望大家能够多多支持,秋枼akiiii。


2. AI作画

  • 第一步:下载并安装,这里提供一个网盘地址:百度网盘,提取码tls5

在这里插入图片描述

  • 第二步:解压zip文件

在这里插入图片描述

  • 第三步:在文件中找到点击生成启动脚本的文件,打开即可自动安装对应依赖
  • 第四步:在文件中找到启动脚本,打开即可自动运行

在这里插入图片描述

  • 第五步:在脚本运行完成后,会出现对应的本地端口,复制在浏览器打开即可

到这里,就能在浏览器中看到一个拥有良好界面的网站,自行选择文本生成或图生图等方式即可,这里用文本生成做一个简单演示,在正面和负面标签输入一些自己想要的单词或短语即可:

在这里插入图片描述
在这里分享一下自己使用该功能完成的作品:

在这里插入图片描述


二、AI绘画的内在原理

1. Diffusion Model的基本过程

  • 什么是Diffusion Model:深度学习中的一种生成模型,与GAN、VAE、Flow-based等类似;

在这里插入图片描述
不同生成模型之间的对比:Diffusion model和其他模型最大的区别是它的latent code(z)和原图是同尺寸大小的。一句话概括diffusion model,即存在一系列高斯噪声,将输入图片变为纯高斯噪声。而我们的模型则负责将噪声处理后的图片复原回图片

  • Diffusion Model的过程:

\qquad 1. 前向过程:
在这里插入图片描述
在这里插入图片描述

往图片上加噪声的过程,给定真实图片后, diffusion前向过程通过多次累计对其添加高斯噪声;这里需要给定一系列的高斯分布方差的超参数,前向过程由于每个时刻t只与t-1时刻有关,所以也可以看做马尔科夫过程:这个过程中,随着t的增大, 越来越接近纯噪声

\qquad 2. 逆向过程:
在这里插入图片描述
在这里插入图片描述

即Diffusion的去噪推断过程,如果我们能够逐步得到逆转后的分布,就可以从完全的标准高斯分布还原出原图分布,我们使用深度学习模型(参数为θ,目前主流是U-Net+attention的结构)去预测这样的一个逆向的分布,通过贝叶斯公式等得到高斯噪声的参数,最终通过模型特性实现逆向;


\qquad 3. 最终通过对真实数据分布下,最大化模型预测分布的对数似然过程(上述基于DDPM)

  • 具体的训练及演化过程这里不细致分析,详情可见由浅入深了解Diffusion Model

2. 扩散模型的兴起

  • 相比于GAN的优势:
  1. GAN模型训练过程有个难点,就是众多损失函数的鞍点(saddle-point)的最优权重如何确定,在实际训练过程中需通过多次反馈,直至模型收敛,但是可怕的是在实际操作中发现,损失函数往往不能可靠地收敛到鞍点,导致模型稳定性较差;与GAN不同,DALL·E使用Diffusion Model,不用在鞍点问题上纠结,只需要去最小化一个标准的凸交叉熵损失(convex cross-entropy loss),这样就大大简化了模型训练过程中,数据处理的难度
  2. GAN模型在训练过程中,除了需要“生成器”,将采样的高斯噪声映射到数据分布;还需要额外训练判别器,Diffusion Model只需要训练“生成器”,训练目标函数简单,而且不需要训练别的网络(判别器、后验分布等)
  • 领域跨越:目前的训练技术让Diffusion Model直接跨越了GAN领域调模型的阶段,而是直接可以用来做下游任务

Diffusion Model的成功在于训练的模型只需要“模仿”一个简单的前向过程对应的逆向过程,而不需要像其它模型那样“黑盒”地搜索模型,并且,这个逆向过程的每一小步都非常简单,只需要用一个简单的高斯分布来拟合

  • 扩散模型的拓展:原始扩散模型拥有三个缺点,采样速度慢,最大化似然差、数据泛化能力弱,它的采样速度慢,通常需要数千个评估步骤才能抽取一个样本;它的最大似然估计无法和基于似然的模型相比;它泛化到各种数据类型的能力较差。如今很多研究已经从实际应用的角度解决上述限制做出了许多努力,或从理论角度对模型能力进行了分析。

在这里插入图片描述

  • 参考文献:

[1] Sohl-Dickstein J, Weiss E, Maheswaranathan N, et al. Deep unsupervised learning using nonequilibrium thermodynamics[C]//International Conference on Machine Learning. PMLR, 2015: 2256-2265.
[2] Ho J, Jain A, Abbeel P. Denoising diffusion probabilistic models[J]. Advances in Neural Information Processing Systems, 2020, 33: 6840-6851.
[3] Song Y, Sohl-Dickstein J, Kingma D P, et al. Score-based generative modeling through stochastic differential equations[J]. arXiv preprint arXiv:2011.13456, 2020.
[4] Yang L, Zhang Z, Song Y, et al. Diffusion models: A comprehensive survey of methods and applications[J]. arXiv preprint arXiv:2209.00796, 2022.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一键式AI绘画,让你也能体验当画师的魅力(附原理分析) 的相关文章

  • [简洁版]youtube-dl下载命令

    简介 YouTube dl是python上的pip模块 xff08 开源 xff09 xff0c 可以用来下载YouTube Bilibili等多个平台的视频 音频文件 xff0c 可谓是居家旅行必备小工具 本文主要介绍一些常用的youtu
  • [简版]VMware强大的管理工具-PowerCLI

    一 PowerCLI介绍 什么是 PowerCLI PowerCLI 是一个命令行工具 xff0c 可以用于自动化vSphere管理 xff0c 包括网络 存储 虚拟机以及其他很多功能 PowerCLI包含超过700个命令 要安装Power
  • [简版]使用PowerCLI自定义vSphere ISO安装镜像

    一 什么情况下要自定义ISO镜像 一般来说 xff0c 对于DELL Lenovo HPE这类主流的服务器厂商 xff0c VMware官方vSphere ISO镜像或者官网的第三方客制镜像 xff08 由服务器厂商提供的封装镜像 xff0
  • [简版] 关于vSphere漏洞-OpenSLP

    一 前言 近期vSphere OpenSLP漏洞在野利用的新闻频频被爆出来 xff0c 大伙儿非常关注 由于vSphere虚拟化客户之广泛 xff0c 很多朋友都表达了自己的焦虑 xff0c 同时也会担心自己管理的vSphere虚拟化平台是
  • [简版] Linux搭建SAMBA文件共享服务

    SMB服务搭建 更多参数含义参考链接 常用配置 安装samba span class token comment Ubuntu span span class token function sudo span span class toke
  • STM32 HAL库详解

    STM32 HAL库整体总结 STM32 之二 HAL库详解 及 手动移植 本篇博客是对以上参考资源的一个二次总结与整理 1 HAL库文件结构 对于开发人员而言 xff0c 首先要清楚 HAL 库的文件结构 根据文件类型可认为以下两大类 x
  • STM32 HAL库学习(四):DMA之串口空闲中断

    STM32CubeMX 配置实现参考这里 1 串口空闲中断 1 1 UART DMA方式接收数据 STM32串口使用DMA方式接收数据可以减小CPU的开销 对于接收定长数据 xff0c 可以将DMA接收缓冲区的长度设定为待接收数据的长度 x
  • Android Studio 启动模拟器出现“Timed out after 300seconds waiting for emulator to come online“解决方案

    Android Studio 启动模拟器出现 34 Timed out after 300seconds waiting for emulator to come online 34 解决方案 参考文章 xff1a xff08 1 xff0
  • 结构体中的位定义

    1 结构体位定义 在工作中 xff0c 经常遇到按位 xff08 bit xff09 定义结构体 的情况 由于一个字节有8个位 xff0c 这时 xff0c 程序员往往对bit的位置产生困惑 现在给出2个例子 xff0c 来说明位的定义次序
  • 蓝牙基础(三):蓝牙协议栈总体认知

    蓝牙基础 xff08 三 xff09 xff1a 蓝牙协议栈总体认知 0 前言 初入门经典蓝牙学习 xff0c 网上资料参差不齐 xff0c 本博客旨在整理自己的一些总结内容 xff0c 建立整体功能认识 xff0c 以便后续深入学习 1
  • FreeRTOS学习(四)任务调度与切换

    文章目录 1 任务调度2 任务切换2 1 SVC 和 PendSV2 2 上下文2 3 切换场景2 4 PendSV Handler 3 总结 1 任务调度 在建立完任务后紧接着调用任务调度函数 xff0c 便会使系统运行起来 span c
  • FreeRTOS学习(五)队列与信号量

    文章目录 1 队列1 1 队列特性1 2 队列创建1 2 1 接口函数1 2 2 内存占用1 2 3 创建过程分析 1 3 入队与出队1 3 1 队列项入队1 3 1 队列项出队 2 信号量2 1 二值信号量2 2 计数型信号量2 3 互斥
  • FreeRTOS学习(六)时间管理

    文章目录 1 延时函数1 1 vTaskDelay 1 2 vTaskDelayUntil 1 3 系统时钟节拍 2 软件定时器2 1 定时器概述2 2 定时器 API 3 总结 1 延时函数 当任务需要调用延时函数延时时 xff0c 任务
  • C语言 sscanf库函数

    目录 1 函数描述2 函数应用2 1 基础应用2 2 高级应用 1 函数描述 xff08 1 xff09 函数功能 xff1a 通常被用来解析并转换字符串 xff0c 从str指定的字符串读取数据 xff0c 并根据参数format字符串来
  • C语言 文件读写

    目录 1 文件打开与关闭1 1 打开文件 fopen 1 2 关闭文件 fclose 2 读取文件2 1 fgetc 2 2 fgets 2 3 fscanf 3 写入文件3 1 fputc 3 2 fputs 3 3 fprintf 1
  • C语言 条件编译

    目录 1 if elif else endif 2 ifdef else endif 3 ifndef else endif 4 三者区别 根据不同情况编译不同代码 产生不同目标文件的机制 xff0c 称为条件编译 条件编译是预处理程序的功
  • yolo 学习系列(三):训练参数与网络参数

    yolo 学习系列 xff08 三 xff09 xff1a 训练参数与网络参数 手把手教你做目标检测 xff08 YOLO SSD xff09 视频链接 1 训练参数 博主在使用 yolov2 tiny voc 训练 人 这一类目标物体时
  • Caffe 学习系列(七):MobileNet-YOLO 安装与训练

    Caffe 学习系列 xff08 七 xff09 xff1a MobileNet YOLO 安装与训练 基于darknet实现mobilenet 基于darknet框架实现DepthwiseConvolutional层 深度学习 xff08

随机推荐