如何用Stable Diffusion模型生成个人专属创意名片?

2023-07-10 08:58:03

1 什么是二维码?

二维码是一种用于存储和传输信息的方便而广泛使用的图像编码技术。它是由黑色方块和白色空白区域组成的二维图形,可以通过扫描设备(如智能手机)进行解码。二维码基于特定的编码标准和解码算法——其中包括错误检测和纠错编码,以确保在图像损坏或部分遮挡的情况下仍能正确解码。二维码的优点是可以存储大量信息,并且能够快速扫描和解码,因此在商业、营销、物流等领域得到广泛应用

在日常生活中,二维码已成为我们个人名片的一种展示方式,如何通过人工智能生成内容(AI Generated Content, AIGC)技术让我们的名片二维码更有创意?这就要涉及到扩散模型Stable Diffusion,下面是最终的生成效果

在这里插入图片描述

平台审核原因,二维码做了打码处理

2 什么是扩散模型?

所谓扩散算法diffusion是指先将一幅画面逐步加入噪点,一直到整个画面都变成白噪声。记录这个过程,然后逆转过来给AI学习。

AI看到的是什么?一个全是噪点的画面如何一点点变清晰直到变成一幅画,AI通过学习这个逐步去噪点的过程来学会作画。

diffusion和之前大火的GAN模型相比,有什么优势呢?用OpenAI的一篇论文内容来讲,用diffusion生成的图像质量明显优于GAN模型;而且与GAN不同,diffusion不用在鞍点问题上纠结——涉及稳定性问题,只需要去最小化一个标准的凸交叉熵损失即可,这样就大大简化了模型训练过程中,数据处理的难度。

总结来说,目前的训练技术让diffusion直接跨越了GAN领域调模型的阶段,而是直接可以用来做下游任务,是一个新的数学范式在图像领域应用的实例

diffusion在工程应用中的基本概念列举如下:

  • Stable Diffusion: Stable Diffusion的功能是从文本描述中生成高质量、高分辨率的图像。它由Stability Al首次公开发布,其代码和模型权重均免费开源;
  • Stable Diffusion webui: 是一个基于网页的用户界面,可以更方便地使用Stable Diffusion模型。它支持多种功能和设置,是Stable Difusion使用中最方便的工具。Automatic1111就是用户社区常用的网络Stable Diffusion webui
  • txt2lmg: txt2lmg指输入文字,并看到生成的图像;
  • Img2lmg: Img2lmg指输入图像和文字,生成一张新的图像。新的图像保留了原始图像的颜色和构图,但是根据文字的描述,改变了图像的风格和特征
  • ControlNet: ControlNetStable Diffusion webui的一个扩展,可以根据输入的图像和文字,对图像进行各种控制,例如改变图像的姿态、表情、服装、背景或风格,生成不同角度和光照的图像等。ControlNettile是多种生成方法的基础支撑之一,同时ControlNet也是Stable Diffusion目前效果最好的扩展

接下来介绍如何部署Stable Diffusion模型生成个人专属创意名片

3 Stable Diffusion环境搭建

主要分为以下步骤:

  • 创建Python3.10的虚拟环境

    conda create -n ai_draw python=3.10
    

    虚拟环境相关操作请参考:Anaconda安装与Python虚拟环境配置保姆级图文教程(附速查字典)

  • 在虚拟环境中安装Pytorch
    这步比较涉及显卡相关的配置,比较复杂,请参考:最新CUDA/cuDNN与Pytorch保姆级图文安装教程(速查字典版)

  • 下载模型stable-diffusion-webui

    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
    
  • 安装依赖库
    首先进入虚拟环境

    conda activate ai_draw
    

    接着进入stable-diffusion-webui根目录运行

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
    

    采用清华源可以更快完成安装
    在这里插入图片描述

  • 下载模型
    这里采用ghostmix模型,下载完成后移动到这个目录stable-diffusion-webui-master\models\Stable-diffusion

    在这里插入图片描述

  • 根目录运行启动文件

    python launch.py
    

    期间会下载一些新的依赖,有可能超时报错,多启动几次即可

4 开始制作创意名片

通过第三节的配置,成功后即可在终端看到

在这里插入图片描述
开放了一个本地端口,在浏览器中输入即可

接下来选择ghostmix模型,并通过国内镜像ControlNet安装扩展

在这里插入图片描述
接着点击img2img上传个人二维码,这里怕和谐就不放图片了

在这里插入图片描述
参数配置如下:

  • Resize mode: Just resize
  • Sampling method: DPM++2M Karras
  • Sampling step: 50
  • Width: 768
  • Height: 768
  • CFG Scale: 7
  • Denoising strength: 0.75

接着配置ControlNet

在这里插入图片描述

参数配置如下:

  • Enable: Yes
  • Control Type: Tile
  • Preprocessor: tile_resample
  • Model: control_xxx_tile,这个模型在ControlNet-v1-1下载
  • Control Weight: 0.87
  • Starting Control Step: 0.23
  • Ending Control Step: 0.9

最后输入正反向提示词

  • 正向:a cubism painting of a town with a lot of houses in the snow with a sky background, Andreas Rocha, matte painting concept art, a detailed matte painting
  • 反向:ugly, disfigured, low quality, blurry, nsfw

点击生成即可

在这里插入图片描述

结语

我们要对技术保持敬畏,法条约束的暂时缺位并非默许用技术来作恶。

更多AIGC文章请看:


🔥 更多精彩专栏


👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
更多推荐

GPIO基础知识的概括

GPIO是通用输入/输出端口的简称,本文以STM32为例进行说明,其他的单片机功能上都是大同小异,学会STM32的GPIO,我们可以触类旁通。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。STM32的八种GPIO口模式1)GPIO_Mode_AIN模拟输入;2)GPIO_M

数据结构---AVL树

AVL树AVL树的概念AVL树节点的定义AVL树的插入源代码AVL树的概念二叉搜索树虽然可以缩短查找的效率,但是,如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率就会变低。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决

揭秘:Wasserstein GAN与梯度惩罚(WGAN-GP)

一、说明什么是梯度惩罚?为什么它比渐变裁剪更好?如何实施梯度惩罚?在提起GAN对抗网络中,就不能避免Wasserstein距离的概念,本篇为系列读物,目的是揭示围绕Wasserstein-GAN建模的一些重要概念进行探讨。图1(左)使用配重裁剪时的梯度范数要么爆炸,要么消失,不使用GP。(右)与GP不同,权重裁剪将权重

C++——vector(3)

作者:几冬雪来时间:2023年9月20日内容:C++部分——vector内容讲解目录前言:erase:erase和insert总结:resize:深拷贝:赋值:结尾:前言:在上一篇博客中我们更加介绍了vector的定位还特别的介绍了它的几个常用接口,也对接口的使用方法,注意事项,可能出错的地方以及接口的拓展都多多少少有

HTTP 面试知识点提炼

前言由于很多小伙伴看了《普通人如何进大厂》这篇文章对我的笔记比较感兴趣,所以我花时间整理提炼了一下跟大家分享,不保证内容完全正确,仅供参考哈其他笔记传送门Js基础总结Vue重点知识总结Webpack核心总结Http网络知识React核心设计模式算法从输入URL到页面加载完成,发生了什么?1、HTTP请求准备阶段构建请求

Linux查看哪些进程占用的系统 buffer/cache 较高 (hcache,lsof)命令

1、什么是buffer/cache?buffer/cache其实是作为服务器系统的文件数据缓存使用的,尤其是针对进程对文件存在read/write操作的时候,所以当你的服务进程在对文件进行读写的时候,Linux内核为了提高服务的读写速度,则将会把文件放在此处的buffer/cache中进行缓存使用,由于Linux服务的

ICCV 2023 | MPI-Flow:从单视角构建的多平面图像中学习光流

ICCV2023|MPI-Flow:从单视角构建的多平面图像中学习光流引言:主要贡献:Motivation:算法细节:OpticalFlowDataGenerationIndependentObjectMotionsDepth-AwareInpainting实验结果:来源:ICCV2023作者:YingpingLian

linux搭建单机ES,集成ik分词器,文本抽取,Kibana可视化平台

Elasticsearch单机(Linux)准备工作第一项:创建运行Elasticsearch和Kibana专用的普通用户,因为elasticsearch和kibana不允许使用root用户启动,所以需要创建新用户启动。linux用root权限创建一个用户赋权即可,注意权限要给足第二项(启动没有报相关错误此项可以不做调

Visual Studio 更新:远程文件管理器

VisualStudio中的远程文件管理器可以用来访问远程机器上的文件和文件夹,通过VisualStudio自带的连接管理器,可以实现不离开开发环境直接访问远程系统,这确实十分方便。自从此功能发布以来,VS开发团队努力工作,今天又为我们带来了新的功能,让我们来看看。>>请移步至topomel.com以查看图片<<背景知

ARM64汇编基础

ARM64汇编基础主要内容到目前为止,大部分的移动设备都是64位的arm架构,一直想抽个时间系统学习下,这个周末就专门来学习下。毕竟两天的时间,也只是简单的入门了解下,为后续工作和学习打下基础。本次学习的主要内容包括寄存器、指令系统以及堆栈函数相关的知识,了解这些知识后,后面就可以扩展进行学习了。话不多说,接下来介绍这

【Ubantu 18.04】配置sh脚本开机启动

一、services服务脚本编写1、进入服务管理目录,创建service文件sudonano/etc/systemd/system/ads.service例如文件名为:ads.service,文件内容如下:[Unit]Description=AdsServiceAfter=network.target[Service]

热文推荐