Stable Diffusion 使用详解(11)--- 场景ICON制作
目录
背景
controlNet
整体描述
Canny
Lineart
Depth
实际使用
AI绘制需求
绘制过程
PS打底
场景模型选择
设置提示词及绘制参数
controlnet 设置
canny 边缘
depth 深度
lineart 线稿
效果
背景
这段时间不知道为啥小伙伴似乎喜欢制作很符合自己场景的ICON。其实,你如果认真看了本专栏前面几节的内容,应该说这个问题很简单。但是总有小伙伴按照别人的safetensor 或者checkpoint 文件无法做出别人的效果,做出来总是一个很奇怪的图案。如果你也是这种情况,就说明你还没有入门炼丹师行业。Stable Diffusion 作画的机理及使用前面已经讲了很多。AI作画的好处就是天马行空,不管是文生图 还是 图生图,都是一样的。这种灵活性赋予AI作画创造性的同时,也使得AI作画无法被指定的实物约束。这个时候一定要使用 controlnet。controlnet相当于是在赋予AI创造性的同时,告诉AI 作画,你的发挥空间必须遵循我的limitation 约束。本质上,stable diffusion 有很多东西都是在约束AI的 ‘创造力’,使得创造出的东西符合 平时人们的观感。最简单的 正负提示词,随机种子,到你套用的模型,无论是比较小的Lora,还是比较完整的checkpoint 都是如此,训练的本质你可以理解为其实就是约束AI的创造行为,不要让AI天马行空的乱绘制。controlnet 在这里面属于一种比较强的约束,在稍微高级一点的 stable diffsuion,作为炼丹师入门的AI 绘画技能必须要掌握。我就任意选一个AI icon 的例子,看看怎么处理。
controlNet
整体描述
前面讲过他了,为什么别人做出来的icon 不是胡乱的四不像,而你根据同样的配置做出来是乱七八糟?就是因为 controlnet 在大多数时候,炼丹师对 controlnet的操作不会被保存,这需要你自己选择合适的controlNet model。有时候甚至需要多个controlNet 的叠加。controlNet 发展到现在,有近20种了吧,好像还不止。但是万变不离其宗,从功能上划分,有约束形态的openopse,有约束外形的canny,lineart,有控制深浅的 depth,有控制风格及颜色变迁的P2P,还有控制语义分割的seg等等。绘制出来形状不对,多半是没有喂给 stable diffusion 合适的边缘。我就在讲一下这部分吧。
模型,相较于Canny,Lineart提取的线稿更加精细,细节更加丰富。Lineart提供了多种预处理器,如lineart_anime(动漫线稿控制)、lineart_anime_denoise(动漫线稿控制去噪)、lineart_coarse(粗略线提取)、lineart_realistic(写实线提取)和lineart_standard(标准线稿提取)等,以满足不同用户的需求。这些预处理器能够更准确地提取出图像中的线稿信息,进而生成以线稿为框架的新图像。
Canny
Canny是一种边缘检测算法,能够很好地识别出图像内各对象的边缘轮廓。在ControlNet中,Canny模型通过调节低阈值和高阈值来控制边缘检测的精细程度。低阈值越低,线条越复杂;高阈值越高,线条越简单。这种控制方式使得用户可以根据需要,精确控制图像的边缘信息,进而生成与原图构图相似的画面,但可以通过关键词调整颜色、细节等。
Lineart
Lineart是ControlNet 1.1版本中新增的模型,相较于Canny,Lineart提取的线稿更加精细,细节更加丰富。Lineart提供了多种预处理器,如lineart_anime(动漫线稿控制)、lineart_anime_denoise(动漫线稿控制去噪)、lineart_coarse(粗略线提取)、lineart_realistic(写实线提取)和lineart_standard(标准线稿提取)等,以满足不同用户的需求。这些预处理器能够更准确地提取出图像中的线稿信息,进而生成以线稿为框架的新图像。
Depth
Depth是一种深度估计模型,它通过分析输入图像的深度信息,生成具有透视效果的图像。在ControlNet中,Depth模型不仅能够帮助用户固定角色姿势的轮廓,还能起到固定场景透视效果的作用。浅色区域意味着它离用户更近,而深色区域则离用户更远。Depth模型在处理角色图像时,可能会丢失部分内部细节(如面部表情等),但它能够很好地保留物体的轮廓和场景的透视效果。此外,Depth模型还提供了不同的变体,如Depth Leres(++)和Depth Zoe,它们各自具有不同的特点和应用场景。
实际使用
AI绘制需求
假设我们项目需要打一个app icon,是一个搜索图标,正方形,竖排显示搜索两个字。
绘制过程
PS打底
我希望是立体效果,我还是用PS打底,先做一个立体字出来。长这样:

当然如果你搞不定或者没有学过PS,直接用mspaint等绘制一张2D的搜索也还是可以的。但是效果可能没有这样做好。
场景模型选择
我想绘制出来有点金属质感,找一个带有金属质感的lora 。

这个模型比较符合我的预期。看下底膜,没有的话,提前下载或者加入。这里使用的是
![]()
设置提示词及绘制参数
hjymechatype,mecha,no humans,science fiction,vehicle focus,shadow,wheel,spacecraft,gradient background,gradient,machinery,robot,grey background,white background,ground vehicle,thrusters,blue led lighting,shining,metal,pip wire on surface,line shape led lighting,chrome,gold trim,
Deep Negative V1.x,EasyNegative,
Lora 权重 我设置的是 0.8

如果只是设置上述的,确实绘制出来什么都不是,因为你没有进一步强制约束Stable diffusion,到底绘制什么东西,图形的直观限制总比那些虚无缥缈的提示词来的直接,我这说法其实不太对,提示词也同样重要。这里我只是为了突出 controlnet 的重要性,你理解就行。
controlnet 设置
canny 边缘

depth 深度

lineart 线稿
你可能会问上了canny为什么还要上 lineart,因为在极度追求细节的环境下,canny 可能控制不住,或者说需要两者叠加比较出效果。因为字体icon 的绘制不像其他类型,不能走形,否则不知道你绘制的是什么。

效果


仔细看下,还是有细微的差别。当然你可以选择其他Lora 模型绘制不一样的icon 效果。
当然你可以适当修改提示词,
water,bubble,air bubble,black background,monochrome,greyscale,
greyscale 突出了其银灰色系


换一个水波的Lora 看看效果:



btw,另一个小技巧,如果只是风格类的转换,你已经用AI完成了一幅作品,当cn 都控制起来有点费劲,除了加高权重,还可以看下随机种子数,将seed 搞过来,有时候会事倍功半。

相关文章:
Stable Diffusion 使用详解(11)--- 场景ICON制作
目录 背景 controlNet 整体描述 Canny Lineart Depth 实际使用 AI绘制需求 绘制过程 PS打底 场景模型选择 设置提示词及绘制参数 controlnet 设置 canny 边缘 depth 深度 lineart 线稿 效果 背景 这段时间不知道为啥小伙伴似乎喜欢制作很符合自己场景的ICON。…...
【Linux系统编程】第二十弹---进程优先级 命令行参数 环境变量
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、进程优先级 2.1、什么是优先级 2.2、优先级的描述 2.3、优先级与权限的关系 2.4、为什么要有优先级 2.5、Linux优先级的…...
无人机之4G模块的主要功能和优势
一、增强图传 在无人机飞行过程中,传统的图传方式可能会受到信号遮挡或干扰的影响,导致图像传输不稳定甚至中断。而4G模块通过结合4G网络技术,能够在原有图传技术的基础上提供增强的图传功能。当传统图传信号不佳时,无人机可以自动…...
深度学习-03 Pytorch
损失函数是用来衡量模型预测结果与真实值之间的差异,并用来优化模型的指标。在机器学习和神经网络中,常用的损失函数包括均方误差(Mean Squared Error,MSE)、交叉熵(Cross-Entropy)等。 反向传播…...
GRU(门控循环单元)的原理与代码实现
1.GRU的原理 1.1重置门和更新门 1.2候选隐藏状态 1.3隐状态 2. GRU的代码实现 #导包 import torch from torch import nn import dltools#加载数据 batch_size, num_steps 32, 35 train_iter, vocab dltools.load_data_time_machine(batch_size, num_steps)#封装函数&…...
【医疗大数据】医疗保健领域的大数据管理:采用挑战和影响
选自期刊**《International Journal of Information Management》**(IF:21.0) 医疗保健领域的大数据管理:采用挑战和影响 1、研究背景 本研究的目标是调查阻止医疗机构实施成功大数据系统的组织障碍,识别和评估这些障碍,并为管理…...
gevent + flask 接口会卡住
在使用 gevent 和 Flask 处理 CPU 密集型任务时,确实可能会遇到性能瓶颈。这是因为 gevent 主要优化的是 I/O 密集型任务,而不是 CPU 密集型任务。以下是一些可能的原因和解决方案: 原因 Gevent 的协程模型: gevent 使用 greenle…...
SpringCloud Alibaba五大组件之——Sentinel
SpringCloud Alibaba五大组件之——Sentinel(文末附有完整项目GitHub链接) 前言一、什么是Sentinel二、Sentinel控制台1.下载jar包2.自己打包3.启动控制台4.浏览器访问 三、项目中引入Sentinel1.在api-service模块的pom文件引入依赖:2.applic…...
brpc之io事件分发器
结构 #mermaid-svg-v4SjrdGXadMO4udP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-v4SjrdGXadMO4udP .error-icon{fill:#552222;}#mermaid-svg-v4SjrdGXadMO4udP .error-text{fill:#552222;stroke:#552222;}#merm…...
MySQL | 知识 | 从底层看清 InnoDB 数据结构
文章目录 一、InnoDB 简介InnoDB 行格式COMPACT 行格式CHAR(M) 列的存储格式VARCHAR(M) 最多能存储的数据记录中的数据太多产生的溢出行溢出的临界点 二、表空间文件的结构三、InnoDB 数据页结构页页的概览Infimum 和 Supremum使用Page Directory页的真实面貌 四、B 树是如何进…...
es的封装
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、类和接口介绍0.封装思想1.es的操作分类 二、创建索引1.成员变量2.构造函数2.添加字段3.发送请求4.创建索引总体代码 三.插入数据四.删除数据五.查询数据 前…...
写一个自动化记录鼠标/键盘的动作,然后可以重复执行的python程序
import sys import threading import time from PyQt5.QtWidgets import * from auto_fun import * import pyautogui import pynput from PyQt5.QtCore import pyqtSignal from MouseModule import * from pynput import keyboardlocal_list [] # 保存操作坐标、动作、文本 …...
Spring Boot-热部署问题
Spring Boot 热部署问题分析与解决方案 热部署(Hot Deployment)是指在应用程序运行过程中,无需停止应用就可以动态加载新代码、配置或资源,从而提升开发效率。在 Spring Boot 开发中,热部署是一项非常实用的功能&…...
深度学习——管理模型的参数
改编自李沐老师《动手深度学习》5.2. 参数管理 — 动手学深度学习 2.0.0 documentation (d2l.ai) 在深度学习中,一旦我们选择了模型架构并设置了超参数,我们就会进入训练阶段。训练的目标是找到能够最小化损失函数的模型参数。这些参数在训练后用于预测&…...
芯片验证板卡设计原理图:372-基于XC7VX690T的万兆光纤、双FMC扩展的综合计算平台 RISCV 芯片验证平台
基于XC7VX690T的万兆光纤、双FMC扩展的综合计算平台 RISCV 芯片验证平台 一、板卡概述 基于V7的高性能PCIe信号处理板,北京太速科技板卡选用Xilinx 公司Virtex7系列FPGA XC7VX690T-2FFG1761C为处理芯片,板卡提供两个标准FMC插槽,适用于…...
【软设】 系统开发基础
【软设】 系统开发基础 一.软件工程概述 (了解一下大概的流程就行) 1. 可行性分析与项目开发计划 目的:评估项目的经济性、技术性和运营性,判断项目是否值得投资和开发。确定开发时间、预算、所需资源等。 可行性分析ÿ…...
Linux移植之系统烧写
直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 本文仅作为个人笔记使用,方便进一步记录自己的实践总结。 前面我们已经移植好了 uboot 和 linux kernle,制作好了根文件系统。但是我们移植都是通过网络来测试的,在实际的产品开发中…...
【数据结构与算法】LeetCode:双指针法
文章目录 LeetCode:双指针法正序同向而行(快慢指针)移除元素移动零(Hot 100)删除有序数组中的重复项颜色分类(Hot 100)压缩字符串移除链表元素删除排序链表中的重复元素删除排序链表中的重复元素…...
Istio下载及安装
Istio 是一个开源的服务网格,用于连接、管理和保护微服务。以下是下载并安装 Istio 的步骤。 官网文档:https://istio.io/latest/zh/docs/setup/getting-started/ 下载 Istio 前往Istio 发布页面下载适用于您的操作系统的安装文件,或者自动…...
Redis基础数据结构之 Sorted Set 有序集合 源码解读
目录标题 Sorted Set 是什么?Sorted Set 数据结构跳表(skiplist)跳表节点的结构定义跳表的定义跳表节点查询层数设置 Sorted Set 基本操作 Sorted Set 是什么? 有序集合(Sorted Set)是 Redis 中一种重要的数据类型,…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
