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

news2024/9/21 2:33:51

目录

  • 1 什么是二维码?
  • 2 什么是扩散模型?
  • 3 Stable Diffusion环境搭建
  • 4 开始制作创意名片
  • 结语

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文章请看:

  • CV不存在了?体验用Segment Anything Meta分割清明上河图
  • 如何免费使用ChatGPT进行学术润色?你需要这些指令…
  • 如何用AI制作电影级镜头?Midjourney v5体验教程(附prompts大全)
  • AI绘画突然爆火?快速体验二次元画师NovelAI(diffusion)
  • AI绘画进军三次元,有人用它打造赛博女友?(diffusion)
  • 我用python/C++调用ChatGPT自制了一个聊天机器人
  • 本手、妙手、俗手?我用AI写2022高考全国作文题,会被看出来?

🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光镊背后的电磁理论 | 涡旋电磁波在无线通信系统中的应用

2018年诺贝尔物理学奖于北京时间10月2日17点50分正式揭晓,发明光镊技术的美国物理学家,阿瑟阿什金(Arthur Ashkin),以及开创了啁啾脉冲放大技术的唐娜斯特里克兰(Donna Strickland)、 热拉尔穆鲁…

持之以恒,安之有度 | 持安科技2周年!

新征程 新未来 持安的同学们已经一起走进 第三个年头啦 近日,持安 北京 上海 深圳 所有公司成员齐聚一堂 共 同 庆 祝 持安科技 成立2周年 持安一体化零信任平台 ,引领应用层零信任落地新局面 2021年,何艺(持安创始人兼CE…

经典轻量级神经网络(3)ShuffleNet V1及其在Fashion-MNIST数据集上的应用

经典轻量级神经网络(3)ShuffleNet V1及其在Fashion-MNIST数据集上的应用 1 ShuffleNet V1的简述 ShuffleNet 提出了 1x1分组卷积通道混洗 的策略,在保证准确率的同时大幅降低计算成本。 ShuffleNet 专为计算能力有限的设备(如:10~150MFLOP…

开发uniapp苹果app,苹果签名证书的创建方法

在uniapp云打包界面,打包苹果app,需要私钥证书p12文件,还需要证书profile文件和证书密码。 这两个文件到底是从什么地方获取的呢?答案是这两个证书需要在苹果开发者中心生成,下面我们这篇教程,将教会大家如…

Java小白的学习之路——day12

目录 一、final 什么是final? 二、接口概述 什么是接口? 与抽象类的区别 常量接口 接口传参多态 四、内部类 什么是内部类? 成员内部类 静态内部类 局部内部类 一、final 什么是final? final从字面意思来看时最终的&a…

你真的了解JS垃圾回收机制吗?

目录 前言 堆栈内存管理 JS垃圾回收机制 标记清除(Mark and Sweep) 标记阶段 清除阶段 标记清除的特点 优点 缺点 引用计数(Reference Counting) 引用计数器的维护 引用计数的跟踪 垃圾回收的触发 回收对象 引用计…

视频转音频MP3格式怎么做?教你几种转换小妙招

当我们需要编辑视频中的声音,例如去除噪音、调整音量、加入配乐等,此时需要先将视频中的音频提取出来进行编辑,再将编辑后的音频重新与视频合并,以便达到一个最佳效果。那么怎么将视频转换成MP3格式的音频文件呢?教大家…

SpringBoot项目多模块打包部署Docker实战

前言 我们好多程序员都只关注功能代码的编写,在一些运维工作上则显得略有不足。这篇文章通过介绍最常见的Maven管理的Spring Boot项目多模块打包部署Docker来介绍一下项目部署过程中操作流程和几个需要注意的点。文章假设读者有前面提到的技术点的前置知识&#xf…

C#(五十八)之C#List

前几天&#xff0c;看同事写的代码中有list相关的字眼&#xff0c;百度了一下&#xff0c;原来是C#中list泛型集合。 了解一下。 List&#xff1a;泛型集合&#xff0c;List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型…

Maven工程分模块开发讲解及入门案例

1.分模块开发的意义 一个模块只做自己对应的功能&#xff0c;提升开发效率&#xff0c;将一个工程拆分成若干个子模块方便之间相互调用&#xff0c;接口共享&#xff0c;降低耦合度提高代码复用率。 2.分模块开发入门案例 下面将domain这个模块从当前模块当中给拆分出来。 …

开心档之CSS 测验

目录 CSS 测验 CSS 测验 CSS测验是一种衡量前端开发人员对CSS的熟练程度的测试。通过CSS测验&#xff0c;可以评估一个人对CSS语言的掌握程度和应用能力&#xff0c;帮助公司或招聘方挑选合适的人才。下面将介绍如何进行CSS测验以及一些常见的CSS考题。 一、CSS测验的类型 1…

OpenCV 入门教程:寻找和绘制轮廓

OpenCV 入门教程&#xff1a;寻找和绘制轮廓 导语一、寻找轮廓二、绘制轮廓三、示例应用3.1 目标检测和定位3.2 图像分割 总结 导语 寻找和绘制轮廓是图像处理中常用的技术之一&#xff0c;用于识别、定位和分析图像中的目标区域。在 OpenCV 中&#xff0c;寻找和绘制轮廓可以…

「2024」预备研究生mem-行程问题

一、行程问题 二、课后题 往返 上山下山

LeetCode[75]颜色分类

难度:Medium 题目&#xff1a; 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库…

【前端面试专栏】用户输入网址到页面返回都发生了什么?

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…

软件安全测试流程与方法分享(下)

安全测试是在IT软件产品的生命周期中&#xff0c;特别是产品开发基本完成到发布阶段&#xff0c;对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性&#xff0c;也是CNAS测试认证中非常重要的项目&#xff0c;本系列文章我们与大家…

linux 信号原理 信号处理设置signal, 信号发送kill,信号等待sigsuspend,信号阻塞sigprocmask,一网打尽信号使用

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 概述 信号是一种软中断的方式&#xff0c;让进程陷入中断处理调…

vector的resver和resize

#include <iostream> #include <vector> using namespace std; int main() {std::vector<std::vector<std::vector<int> > > a(2);//创建2个vector<vector<int> >类型的数组vector<int> vec;//vec.resize(10); //结果1vec.res…

【Linux之拿捏信号3】阻塞信号

文章目录 相关概念原理sigset_t信号集信号集操作函数sigprocmask系统调用sigpending 相关概念 实际执行信号的处理动作——信号递达Delivery&#xff08;例如自定义捕捉动作&#xff0c;core&#xff0c;Term终止进程的动作&#xff09;。信号从产生到递达之间的状态——信号未…

Verilog基础之十四、FIFO实现

目录 一、FIFO 1.1 定义 1.2 实现方式 1.3 实现原理 二、代码实现 三、仿真结果 3.1 复位阶段 3.2 写入阶段 3.3 读取阶段 3.4 同时读写或不读不写 四、参考资料 一、FIFO 1.1 定义 FIFO(First in First out)为先进先出队列&#xff0c;具有存储功能&#xff0c;…