百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Stable diffusion AI画图辅助脚本 Script 的使用(二)

csdh11 2025-04-01 16:56 7 浏览

本篇为脚本使用介绍的第二部分,主要介绍 Prompt matrix 提示词矩阵以及 Ultimate SD Upscale 终极SD放大这两个脚本,同时也简单介绍一下如何编写自己的脚本。

1、Prompt matrix 提示词矩阵

该脚本是用来对比不同提示词组合下的出图效果,要使用该脚本,需要修改提示词的填写方式。

首先填写基础提示词,一个正向提示词 1girl ,一个反向提示词 nsfw,模型为 cityedgemix,其他参数全部保持默认。

基础参数都设置好之后,就可以填写想要对比的不同提示词,这一部分提示词需要放在提示词输入框的最后面,并且每个提示词需要用竖线 “ | “ 进行分隔,比如我想要对比 watercolor(水彩画)、photography(摄影图)、pencil sketch(铅笔素描)、oil painting(油画) 这几种画风在出图的时候什么有什么不同,就可以这样写: | watercolor | photography | pencil sketch | oil painting

因为脚本在读取提示词的时候是从第一个竖线开始往后读取的,所以需要在第一个对比提示词的前面也加上竖线,这样脚本就会把这些提示分别组合来控制 Stable diffusion 进行出图,并把出图结果组合成一个图表,然后再输出到预览窗口。

设定好提示词,就可以在下方的 Script 脚本列表里面选择 Prompt matrix 提示词矩阵。

选择该脚本后会有几个简单的设置。

Put variable parts at start of prompt 意思是是否将分割后的提示词放到输入框的最前面,因为前面输入的提示词组是放在最后面的。我们知道放越后面的提示词权重就越低,所以如果是一些比较重要的提示词,就需要将这个选项勾上,将其放到最前面,以增加权重。

Use different seed for each picture 这个选项意思是是否对产生的每一张图片都使用随机 seed 种子。一般来说为了更好的对比效果,肯定是变化越少越好,所以这一项一般不选。

Select prompt 意思是提示词组的来源,是在正向提示词(positive)里面还是在反向提示词(negative)里面。

Select joining char 意思是重新组合后的提示词以什么符号来分隔,有两个选项:comma(逗号)space(空格),一般都是使用逗号(comma)。

参数设置好之后就可以点击 Generate 来出图了,结果如下图。

看图就非常直观了,左上角那张图是 4 个提示词都不使用,右下角那张图是 4 个提示词都使用,其他则是各个提示词的不同组合。

通过这样直观的对比就可以知道当前提示词在什么样的画风组合下出图效果会比较好,当然这只是一个例子而已,也还可以对比其他提示词,比如灯光类提示词、环境类提示词、镜头类提示词、服装类提示词等等,这些都可以尝试,然后选出一组出图效果最好的提示词。

2、Ultimate SD Upscale 终极SD放大

这是一个用在图生图上的脚本,用于对图片进行放大处理,其工作原理是将原图平均分割成很多份小图片,再逐个对分割后的小图片按特定的算法进行放大,然后把放大后的小图片重新拼起来组合一张大图,这样就避免了出大图时因尺寸过大而导致显存不足的问题。

这个脚本的安装不同于其他脚本,它是通过扩展插件的形式进行安装的,安装的方法如下图。

安装完成后重启 UI 界面,就可以在图生图里找到这个脚本。

既然是放大图像,那肯定是需要一张原图的,原图就通过文生图来产生。出图的模型还是使用 cityedgemix ,个人觉得这个模型产生的图片看起来比较舒服,选好模型后填写提示词以及其他参数,然后生成一张用于放大的原图。

得到图片后将其发送到图生图界面,重绘幅度 0.2-0.4 之间,其他参数保持默认不变,Script 脚本选择 Ultimate SD Upscale ,下方就会出现很多个设置。

Target size type 里面有三个选项,分别是 from img2img2 settings(使用图生图的设置)、custom size(自定义尺寸)、scale from image size(使用图片的尺寸)。这几个意思很好理解,这里选择第三个 scale from image size(使用图片的尺寸),右侧出现的 Scale 放大倍数选择 2 倍。这个倍数越大算图就越久,而我的电脑配置较低,所以就设置 2 倍,最大可以放大 16 倍。

接下来是 Upscaler 放大算法,算法有好几种,每种都会有一些细微的差别,不在意细节的话随便哪种都可以用,哪怕选择 None 不使用也是可以的,我这里选 ESRGAN_4X

接下来的 Type 有两种类型,分别是 linear(线型),Chess(棋盘),意思是指定脚本以什么样的形式来拆分原图,如果做过 PPT 的话就很好理解了,跟 PPT 里面的过度效果类似。这个类型必须选择一个,不能选择 None ,否则放大算法不会执行。

Tile width 图块大小,如果使用的大模型是 1 系列的就填 512 ,如果模型是 2 系列的就填 768,算图会比较稳定,然后是 Mask blur 遮罩模糊,官方建议是 12-16 之间。

再往下是 Seams fix type 接缝修复类型,官方建议是如果最终生成的图片有明显接缝的话就使用,如果没有就不需要使用。这里要注意,如果使用了接缝修复,最下方的 Seams fix 复选框要勾上,不然最终生成的图片不会保存。

参数都设置好之后就可以按下 Generate 出图了。

这个脚本主要用于显存不足的情况下进行图片放大,细节表现上比 Extras 附加功能里的放大更好,特别是配合 ControlNet Tile 模型,具体的效果大家可以自行尝试。

3、自定义脚本

如果你熟悉 Python,那么就可以编写脚本来调用 Stable diffusion 提供的 API 以实现想要的功能。

Scripts 文件夹下新建一个文本文档,名称为 myscript.txt

双击打开新建的文本文档,将以下代码粘贴到文档里并保存。

import os.path

import modules.scripts as scripts
import gradio as gr

from modules import shared, sd_samplers_common
from modules.processing import Processed, process_images

class Script(scripts.Script):
    def title(self):
        return "保存每一步的图片到文件夹"

    def ui(self, is_img2img):
        path = gr.Textbox(label="文件保存的路径", placeholder="在这里输入路径,默认为 Webui 的根目录")
        return [path]

    def run(self, p, path):
        if not os.path.exists(path):
            os.makedirs(path)
        index = [0]

        def store_latent(x):
            image = shared.state.current_image = sd_samplers_common.sample_to_image(x)
            image.save(os.path.join(path, f"sample-{index[0]:05}.png"))
            index[0] += 1
            fun(x)

        fun = sd_samplers_common.store_latent
        sd_samplers_common.store_latent = store_latent

        try:
            proc = process_images(p)
        finally:
            sd_samplers_common.store_latent = fun

        return Processed(p, proc.images, p.seed, "")

然后将 myscript.txt 文档的后缀名改为 .py,即 myscript.py,这样就是一个 Python 代码文件了,如果你用的是专业的代码编辑器就不需要做此操作。这段代码的作用是读取 Stable diffusion 出图过程中每一步产生的图片,然后保存到本地文件夹里。

到这里脚本就写好了,如果 Webui 界面正处于运行状态,需要重启一下 UI 界面,然后在文生图以及图生图下面的 Script 脚本选项里就能找到这个脚本。

选择该脚本,在下方出现的输入框里面填写一个用来保存图片的本地文件夹路径。

填写好提示词及其他相关参数,点击 Generate 出图,出图结束后在对应的文件夹里就可以看到 Stable diffusion 出图过程中每一步产生的图片是怎么样的,直观了解 Stable diffusion 如何通过迭代去噪来生成图片。

关于脚本的介绍到这里就结束了,如果有遗漏的地方或者不当之处,欢迎补充纠正。

最后祝大家都能作出自己心仪的AI女神。

相关推荐

用Python轻松修改Word文件的作者和时间,打造自己的专属效率工具

你是否曾经遇到过需要批量修改Word文件的作者、创建时间或修改时间的情况?手动操作不仅费时费力,还容易出错。可以用Python编写一个小工具,轻松解决这个问题!无论你是编程新手还是有一定经验的...

插件开发js代码划分(js插件编写)

在开发Chrome插件时,将JavaScript代码拆分成多个模块而非集中放置,主要基于性能优化、可维护性提升和浏览器插件特性适配等多方面的考量。以下是具体原因及区别分析:一、拆分的核心原因...

5分钟掌握Python中的标准输入、标准输出、标准错误

读取用户输入从标准输入获取输入:user_input=input("Impartyourwisdom:")print(f"Youshared:{user_input}")...

高大上的解答:在 'packages.pyi' 中找不到引用 'urllib3'

DeepSeek的一句代码:...

Flask 入门教程(flask快速入门)

目录什么是Flask?环境配置与安装第一个Flask应用:HelloWorld路由与视图函数模板与Jinja2表单处理与用户输入...

每日一库之 Go 语言开发者的神器—Gotx

点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习Go语言简介Gotx是一个Go语言(Golang)的解释器和运行环境,只有单个可执行文件,绿色、跨平台,无需安装任何Go语言环境就可...

MySQL性能调优工具包制作(mysql性能调整)

一、最终工具包内容mysql_tuning_toolkit/├──scripts/#核心脚本│├──sysbench-pro.sh#...

掌握TensorFlow核心用法:从安装到实战的完整指南

一、为什么TensorFlow值得学习?作为全球使用最广泛的开源机器学习框架,TensorFlow已累计获得超过17万GitHub星标,支撑着Google搜索、Waymo自动驾驶、NASA卫星图像分析...

如何把PY 打包成EXE安装文件(pypy 打包exe)

将Python脚本打包成EXE文件通常使用第三方工具实现,以下是详细步骤和注意事项:...

Pygame Zero 详细使用教程(python zerorpc)

PygameZero是一个基于Pygame的简化游戏开发框架,特别适合初学者和快速原型开发。它隐藏了许多底层的复杂性,使得开发者可以更专注于游戏逻辑的实现。本文将通过分析提供的代码,详细介绍如...

Stable diffusion AI画图辅助脚本 Script 的使用(二)

本篇为脚本使用介绍的第二部分,主要介绍Promptmatrix提示词矩阵以及UltimateSDUpscale终极SD放大这两个脚本,同时也简单介绍一下如何编写自己的脚本。1、Promp...

一文明白Python 的import如何工作

Pythonimport系统的基础知识Python的import系统是该语言设计的关键部分,允许模块化编程和代码的轻松重用。了解这个系统对任何Python程序员都很重要,因为它决定了代码的结构...

Highlight.js - 前端的代码语法高亮库

千辛万苦写了篇技术分享,贴了一堆代码,兴高采烈地发到了自己的博客网站上。结果却发现代码全是白底黑字,字体还难看得很,你瞬间就没了兴致。能不能让网页也能像IDE那样,做带语法高亮的炫酷显示呢?来看一...

xbox xsx/s ps2模拟器 战神12,北欧女神2 配置教程

xsxxss下载PS2独立模拟器,Retroarch全能模拟器地址。...

RetroArch 着色器、金手指怎么用? 重返复古游戏萤幕滤镜效果

自从上次分享RetroArch模拟器的一些技巧后,许多模拟器新用户对老旧游戏机感到好奇,为什么游戏画面看起来会有很多马赛克。这主要是因为当年的游戏开发商是针对当时的屏幕进行设计的,所以在现在的高分辨率...