梦工厂
支持多GPU的大规模AI生成艺术的多线程GUI管理器。
这是为那些希望在尽量少的操作时间内创建大量AI艺术作品的用户设计的。如果你在寻找一个可以让你花几个小时调整单个图像直到完美的仓库,这里有更好的选择 (更新于2022-12-06:梦工厂现在在后台使用Automatic1111的仓库,所以你可以享受两全其美!)。如果你有数百个提示想法,并希望轻松快捷地(至少尽可能地快)看到它们以数百种不同的变体和/或风格呈现出来,那么这就是为你准备的。
举个例子,我让三块GPU几乎全天候无人监控地运行梦工厂已经好几个月了——它们每天生成数千张图像!我可以通过梦工厂的网络UI远程检查我的图像并按需对正在运行的作业进行修改。以下是一些样品(除了将分辨率降低到1024x1024之外,全都直接从梦工厂生成):
一些UI截图:
功能
- 基于 Stable Diffusion,支持SD 1.4、SD 1.5、SD 2.0、SD 2.1、SDXL和SD3版本。
- 直接支持ControlNet, ADetailer和Ultimate SD Upscale扩展。
- 梦工厂作为流行的Automatic1111 SD repo的强大自动化和管理工具。与Automatic1111仓库的集成意味着梦工厂可以访问其中一个功能最全面的Stable Diffusion软件包。
- 多线程引擎能够同时快速管理多个GPU。据我所知,梦工厂目前是为数不多的真正支持多GPU的Stable Diffusion选项之一。
- 强大的自定义提示文件格式,允许你轻松定义复合提示模板。想从像“一张**[形容词] [动物]作为[职业]的照片,由[艺术家]创作,[关键词]**”这样的模板中快速创建成千上万个提示?没问题。也许你希望你的GPU能创建出每一个可能的组合,或者你希望组合是随机选择的?随你选择。也许你希望某些项目以不同的设置来处理?完全可行。提示文件可以根据你的需要变得非常复杂,也可以很简单——你甚至可以只是粘贴一个独立提示的列表然后开始使用!
- 梦工厂可以自动将自定义模型的触发词添加到你的提示中。例如,如果你在使用这种现代迪士尼风格模型,你需要在每个提示中添加“现代迪士尼风格”。如果你使用了很多自定义模型,很可能无法总是记住做这件事。让梦工厂替你处理吧!
- 所有提示和创作设置会自动作为EXIF元数据嵌入输出图像中。再也不用担心不知道如何创建了某张图片!
- 简单的网络界面。包括内置的提示文件编辑器,具有上下文敏感的语法高亮,可显示你的提示和创作设置的画廊,以及完成/进行工作状态的概览信息。不喜欢网络界面?通过配置文件将其关闭—如果你喜欢的话,梦工厂也可以完全通过命令行运行。
- 远程管理。从任何地方访问并完全管理你的梦工厂安装(还可以轻松批量下载你的创建图像为压缩文件)。可以配置为通过局域网、广域网(互联网)或仅在运行梦工厂的计算机上进行访问。包括非常基本的基于HTTP的广域网访问验证。
- 在梦工厂的提示编辑器中集成了与civitai.com的集成。所有下载的模型、LoRA、嵌入、hypernetwork将显示从Civitai获取的相关信息(SD版本兼容性、触发词等)。如果你离线运行,可以通过梦工厂的配置文件禁用此功能。
- 集成可选的ESRGAN放大与GFPGAN面部修正。
- 一种特殊的提示文件类型用于批处理现有图像:自动放大、IPTC元数据标记、图像重命名等!
- 简单的设置。如果你可以下载文件并复制粘贴几行代码(见下文),你就能让它工作。使用Anaconda,所以梦工厂可以与其他Stable Diffusion仓库并排运行而不相互干扰。
要求
你至少需要一个Nvidia GPU,最好具有一定数量的显存。3GB的显存应该足以生成512x512的图像,但更多的GPU内存将允许你创建更大的图像(和/或创建得更快)。
你还需要一个工作正常的Automatic1111 Stable Diffusion webui。
设置
这些指示已经在多个配备8-12GB显存的现代Nvidia GPU的Windows 10台式机系统以及一台配备古老Nvidia Tesla M40 GPU(24GB显存)的Ubuntu Server 20.04.3系统上进行了测试。
[1] 安装Anaconda,打开根终端并创建一个新环境(并激活它):
conda create --name dream-factory python=3.10
conda activate dream-factory
[2] 安装几个必需的Python软件包:
conda install -c anaconda git urllib3
[3] 克隆该仓库,并切换到其目录:
git clone https://github.com/rbbrdckybk/dream-factory
cd dream-factory
[4] 运行随附的设置脚本以自动完成其余安装:
python setup.py
[5] 编辑你的config.txt文件以指定Automatic1111 SD安装的完整路径:
- 找到文件顶部附近的**SD_LOCATION =**条目。
- 在Windows上,它看起来应该像SD_LOCATION = C:\Applications\stable-diffusion-webui,具体取决于你放置Automatic1111 webui的位置。
- 在Linux上,你需要类似于SD_LOCATION = /home/[username]/stable-diffusion-webui的路径,其中[username]是它安装在的linux用户名,假设你保持了默认安装位置。
完成了!在尝试测试梦工厂之前,确保你的Automatic1111安装正常工作。此外,确保Auto1111 "设置"标签中的所有内容都配置为你喜欢的样子,因为梦工厂会自动继承你在那里设置的任何选项。
一旦你确认你可以用你的Auto1111安装生成单个图像,你可以通过运行以下命令进行测试以确保梦工厂正常工作(同样,在主dream-factory文件夹中运行):
python dream-factory.py --prompt_file prompts/example-standard.prompts
这应该会启动网络接口,并预加载一个简单的示例提示文件,你的GPU(s)应该会自动开始处理。在首次运行时,几乎会自动下载几个大文件(总计约2GB),因此可能需要几分钟时间才开始处理。
最终,你应该能看到**\output**文件夹中出现图像(或者你可以点击web UI中的 "画廊"链接并在那里查看它们)。如果你收到了图像,一切都正常工作,你可以继续进行下一部分。
在Windows上设置一键启动器(可选)
如果你希望创建一个简单的选项来启动梦工厂,而不是每次都要启动Anaconda和/或打开命令行窗口,可以按以下步骤操作:
[1] 打开资源管理器并浏览到这个位置,其中[username]是你的Windows用户名:
C:\Users\[username]\anaconda3\Scripts
复制你在那里的 activate.bat
文件,并将其命名为 activate-dream-factory.bat
。
[2] 编辑你刚创建的 activate-dream-factory.bat
文件,并在文件末尾添加这些行:
@CALL echo 启动梦工厂...
@CALL conda.bat activate dream-factory
@CALL cd "[梦工厂文件夹的完整路径]"
@CALL python dream-factory.py
@CALL pause
用你安装梦工厂的路径替换[梦工厂文件夹的完整路径](例如:C:\Users[你的Windows用户名]\dream-factory)。
保存文件并关闭。
[3] 将此文件的快捷方式放在桌面(或任何地方)。点击它应该启动梦工厂。
使用方法
说明假设你已经完成了设置 并验证了你的安装正常工作。
启动和基本使用
使用以下命令启动梦工厂:
python dream-factory.py
Web UI应该会自动打开,如果没有,前往http://localhost:8080(假设你没有在config.txt中更改端口)通过浏览器访问。你的GPU(s)将自动开始初始化(每个GPU将花费的时间与单独启动auto1111模式大致相同)。 浏览到顶部导航栏中的“控制面板”,通过下拉菜单选择两个示例提示文件之一。您的GPU应该在初始化完成后立即开始处理您选择的文件。您可以返回到“状态监视器”,应该会看到您的GPU正在从选定的提示文件中分配工作。如果您浏览到顶部导航栏中的“画廊”,将会看到完成的图像。
创建和编辑提示文件
提示文件是Dream Factory的核心,它们定义了您希望GPU执行的工作。它们可以简单也可以复杂,完全由您决定。
示例提示文件
在我们创建新的提示文件之前,先来看一下Dream Factory附带的两个示例提示文件。开始时,单击顶部导航栏中的“提示编辑器”,然后在“选择提示文件:”下拉菜单中选择“example-standard”。
您应该看到提示文件加载到编辑器中。提示文件在顶部有一个可选的[config]部分,里面有定义您的Stable Diffusion设置的指令,并且至少有一个[prompts]部分,其中包含提示(或与其他[prompts]部分结合的提示片段)。
示例文件包含的注释应该可以清楚地表明每个[config]指令的作用,以及[prompts]部分如何组合。有关任何不清楚的指令,请参阅以下的命令参考。
创建新的提示文件
您可以使用集成编辑器创建提示文件(单击顶部导航栏中的“提示编辑器”,然后单击“新建标准”或“新建随机”开始新文件)。提示文件将自动创建,包含常见指令和配置文件config.txt中的默认设置。
创建完成后,可以通过单击编辑器顶部的名称来重命名提示文件,输入新名称,然后单击“重命名”。
如果您愿意,也可以使用您选择的文本编辑器在外部创建提示文件(文件名扩展名为.prompt,并将它们放在您的提示文件夹中)。如果您使用Notepad++,在dream-factory/prompts/notepad_plugin文件夹中有一个插件,可以为.prompt文件添加上下文敏感的高亮显示。
提示文件命令参考
这些指令只在标准和随机提示文件的[config]部分有效:
这些指令在标准和随机提示文件的[config]部分以及任何标准提示文件的[prompts]部分(!MODE = standard)中均有效:
- !WIDTH
- !HEIGHT
- !HIGHRES_FIX
- !STEPS
- !SAMPLER
- !SCHEDULER
- !SCALE
- !SAMPLES
- !BATCH_SIZE
- !INPUT_IMAGE
- !STRENGTH
- !CKPT_FILE
- !VAE
- !NEG_PROMPT
- !AUTO_INSERT_MODEL_TRIGGER
- !SEED
- !USE_UPSCALE
- !UPSCALE_MODEL
- !UPSCALE_AMOUNT
- !UPSCALE_CODEFORMER_AMOUNT
- !UPSCALE_GFPGAN_AMOUNT
- !UPSCALE_KEEP_ORG
- !FILENAME
- !CONTROLNET_INPUT_IMAGE
- !CONTROLNET_MODEL
- !CONTROLNET_PRE
- !CONTROLNET_GUESSMODE
- !CONTROLNET_CONTROLMODE
- !CONTROLNET_PIXELPERFECT
- !CONTROLNET_LOWVRAM
- !CONTROLNET_WEIGHT
- !AUTO_SIZE
- !CLIP_SKIP
- !SEAMLESS_TILING
- !IPTC_TITLE
- !IPTC_DESCRIPTION
- !IPTC_KEYWORDS
- !IPTC_COPYRIGHT
- !STYLES
- !HIGHRES_SCALE_FACTOR
- !HIGHRES_UPSCALER
- !HIGHRES_CKPT_FILE
- !HIGHRES_VAE
- !HIGHRES_SAMPLER
- !HIGHRES_SCHEDULER
- !HIGHRES_STEPS
- !HIGHRES_PROMPT
- !HIGHRES_NEG_PROMPT
- !REFINER_CKPT_FILE
- !REFINER_SWITCH
- !ADETAILER_USE
- !ADETAILER_MODEL
- !ADETAILER_PROMPT
- !ADETAILER_NEG_PROMPT
- !ADETAILER_CKPT_FILE
- !ADETAILER_VAE
- !ADETAILER_STRENGTH
- !ADETAILER_SAMPLER
- !ADETAILER_SCALE
- !ADETAILER_CLIP_SKIP
这些指令只在标准提示文件的[config]部分有效(!MODE = standard):
这些指令只在随机提示文件的[config]部分有效(!MODE = random):
最后,这些特殊指令只在过程提示文件中有效(!MODE = process):
- !OVERRIDE_CKPT_FILE
- !OVERRIDE_VAE
- !OVERRIDE_MAX_OUTPUT_SIZE
- !OVERRIDE_SAMPLER
- !OVERRIDE_STEPS
- !UPSCALE_SD_STRENGTH
- !UPSCALE_ULT_MODEL
命令帮助和使用示例:
!MODE
将提示文件模式设置为标准(默认)或随机。标准提示文件通过遍历所有可能的 [prompts] 部分组合运行,随机提示文件则从 [prompts] 部分中随机挑选提示。请参见 prompts/example-standard.prompts 和 prompts/example-random.prompts 以了解每种模式的详细说明。
!MODE = standard
注意,!MODE 还有第三种选项 (!MODE = process),允许高级用户使用 Dream Factory 在现有图像上设置批处理任务(例如:批量放大,元数据标记,重命名等)。您可以参见示例进程 .prompts 文件。
!DELIM
设置连接 [prompts] 部分时使用的分隔符(默认是空格)。例如,如果您有两个 [prompts] 部分,第一个部分的顶部条目是 “a portrait of”,第二个部分的顶部条目是 “a cat”,那么当这两个部分组合在一起时,如果 !DELIM = " ",您就会得到 “a portrait of a cat”。
!DELIM = " "
!WIDTH
设置输出图像的宽度,以像素为单位(默认是 512)。注意,这个值必须是 64 的倍数!
!WIDTH = 512
!HEIGHT
设置输出图像的高度,以像素为单位(默认是 512)。注意,这个值必须是 64 的倍数!
!HEIGHT = 512
!HIGHRES_FIX
启用或禁用 Auto1111 高分辨率修复。有效选项是 yes 或 no(默认)。在生成分辨率显著高于 512x512 的图像时应启用此选项。
!HIGHRES_FIX = no
截至 2023-09-22,Dream Factory 的 config.txt 文件中有一个 HIRES_FIX_MODE 选项,允许您指定 simple(默认)或 advanced。如果设置 HIRES_FIX_MODE = advanced
,您将能够指定初始图像生成尺寸,以及决定最终尺寸的缩放因子(参见 !HIGHRES_SCALE_FACTOR )。
在默认的 simple 模式下,您只需在 .prompts 文件中设置 !WIDTH 和 !HEIGHT 为您想要的最终输出图像尺寸,中间步骤将自动处理。
!STEPS
降噪步骤的数量(默认 = 20)。更多的步骤通常会在一定程度上提高图像质量,但会增加处理时间。
!STEPS = 20
您也可以指定一个范围(例如 !STEPS = 30-55),在提示执行时会在范围内随机选择一个值。
!SAMPLER
要使用的采样器(默认是 DPM++ 2M)。这必须与您的 Auto1111 SD webui 中的一个可用选项完全匹配。您可以按 ctrl+h 或单击编辑器右上角的帮助图标查看可用采样器的参考列表(单击采样器以将其复制到剪贴板,这样您就可以轻松地将其粘贴到编辑器中)。
!SAMPLER = DPM++ 2M
!SCHEDULER
要使用的调度器(默认是 Automatic)。这必须与 Auto1111 webui 中的一个值匹配(Uniform,Karras,Exponential,Polyexponential,SGM Uniform)。
!SCHEDULER = Karras
设置为空或 Automatic 以返回默认设置。
!SCALE
引导比例,或您希望 Stable Diffusion 遵循文本提示的紧密程度。默认是 7.5,通常有用的值在 5 - 30 之间。
!SCALE = 7.5
您也可以指定一个范围(例如 !SCALE = 5.5 - 9),在提示执行时会在范围内随机选择一个值。
!SAMPLES
在进入下一个提示之前,每个提示生成的图像数量(默认 = 1)。与下面的 BATCH_SIZE 选项不同,增加这个数量不会消耗额外的 GPU 内存。增加这个值会线性增加处理时间(例如:!SAMPLES = 10 的时间是 !SAMPLES = 1 的十倍)。
!SAMPLES = 1
!BATCH_SIZE
每个 GPU 并行生成的图像数量(默认 = 1)。每增加一个 BATCH_SIZE 将需要更多的 GPU 显存,设置值过大会导致 GPU 内存不足并崩溃。然而,只要您知道自己有足够的显存,可以通过将其设置为 1 以上来获得适度的速度提升。这是一个高级设置,新提示文件模板中不包含它,但您可以手动将其添加到提示文件中。
!BATCH_SIZE = 1
!INPUT_IMAGE
设置一个图像作为降噪过程的起点,而不是默认的随机噪点。可以是相对于 Dream Factory 根目录的相对路径或绝对路径,将其设置为空将清除任何之前设置的输入图像。
!INPUT_IMAGE = C:\images\dog.png # 指定输入图像的完整路径
!INPUT_IMAGE = cat.jpg # 指定位于 DF 根目录中的输入图像 'cat.jpg'
!INPUT_IMAGE = # 不使用输入图像
注意,您也可以将一个图像目录传递给此指令:
!INPUT_IMAGE = C:\images
如果传递的是目录,文件夹中的每个图像都将应用于后续的提示。
!STRENGTH
设置输入图像影响的强度。有效值是 0-1(默认 = 0.75)。接近 0 的值将生成与输入图像非常相似的输出图像,接近 1 的值将生成相似性较小的图像。通常,0.2 - 0.8 之间的值最有用。注意,当 !HIGHRES_FIX = yes时,此值也用于表示最终图像应多接近低分辨率初始化图像。
!STRENGTH = 0.75
您也可以指定一个范围(例如 !STRENGTH = 0.55 - 0.75),在提示执行时会在范围内随机选择一个值。
!CKPT_FILE
设置要使用的模型。任何自定义模型都应安装到您的 auto1111 安装的适当模型目录中。您可以按 ctrl+h 或单击编辑器右上角的帮助图标查看可用模型的参考列表(单击模型以将其复制到剪贴板,这样您就可以轻松地将其粘贴到编辑器中)。将其设置为空将恢复到您在 config.txt 文件中设置的模型(如果您没有设置默认模型,设置为空不会有任何作用!)。
您还可以在此处设置逗号分隔的模型列表。在标准模式下,Dream Factory 将使用第一个模型渲染所有提示,然后是第二个模型,依此类推。在随机模式下,Dream Factory 每 50 个提示切换一次模型(此间隔可以在 config.txt 文件中更改)。
您还可以在此处使用保留字 "all",Dream Factory 将自动轮换所有可用模型。
注意,只有在 [config] 部分中才能指定多个模型;模型轮换在其他地方不受支持!
!CKPT_FILE = analog-style.ckpt # 设置要使用的新模型
!CKPT_FILE = sd-v1-5-vae.ckpt, analog-style.ckpt # 设置两种要轮换的模型
!CKPT_FILE = all # 将在所有模型之间轮换
!CKPT_FILE = # 设置为 config.txt 中指定的默认模型
注意:这会在有效服务器值上使用子字符串匹配,例如,如果参考报告为“SD_1.5\dreamshaper_4BakedVae.safetensors [7f16bbcd80]”,那么设置 !CKPT_FILE = dreamshaper_4BakedVae.safetensors 将找到它。
!VAE
设置要使用的 VAE。设置为空以回到自动 VAE 使用(或 Auto1111 配置设置所指定的内容)。
!VAE = vae-ft-mse-840000-ema-pruned.ckpt
!VAE =
注意:子字符串匹配在这里有效。例如,设置 !VAE = vae-ft-mse-840000 将找到 vae-ft-mse-840000-ema-pruned.ckpt。
!NEG_PROMPT
为后续的所有提示指定一个负面提示(记住您可以将大多数指令直接放入标准提示文件的 [prompts] 部分!)。如果您有一个常用的负面提示,可以在 config.txt 文件中指定它,这样在您创建新提示文件时它会作为默认值填充。将其设置为空将清除负面提示。
!NEG_PROMPT = watermark, blurry, out of focus
!AUTO_INSERT_MODEL_TRIGGER
用于需要在 model-triggers.txt 文件中设置“触发词”的自定义模型的使用(参见 [Custom Models](https://github.com/rbbrdckybk/dream-factory/blob/main/README.md#custom-models))。这允许您控制自动插入触发词的位置。有效选项有 start(默认),end,first_comma,keyword:[keyword to replace] 和 off:'start' 会将触发词放在提示的前面,'end' 会将其放在最后,'first_comma' 会将其放在第一个逗号之后(或在没有逗号的情况下放在提示的末尾),'keyword:' 会用模型触发词替换提示中指定的关键字/短语,'off' 会完全禁用自动插入。
!AUTO_INSERT_MODEL_TRIGGER = start
注意,这也将控制自动触发插入到您的 HIGHRES_PROMPT(如果存在)中的行为,假设已经设置了有效的 HIGHRES_CKPT_FILE 和关联的触发词。
!SEED
指定用于图像创建的种子值。此值通常是随机选择的——使用相同的设置和相同的种子值应生成完全相同的输出图像。将其设置为空将表示应使用随机种子值(默认)。这是一个高级设置,新提示文件模板中不包含它,但您可以手动将其添加到提示文件中。
!SEED = 42
!USE_UPSCALE
是否每个输出图像都应该自动放大。放大可能需要相当多的时间,因此通常只会对选择的一部分图像执行此操作。有效选项是 yes 或 no(默认)。
!USE_UPSCALE = no
!UPSCALE_MODEL
设置要使用的放大模型。
!UPSCALE_MODEL = esrgan
注意,这将对您在 Auto1111 中安装的任何放大器执行子字符串匹配。在这种情况下,应选择 ESRGAN_4x*(也是默认值)。
在 !MODE = PROCESS .prompts 文件中,您还可以指定 !UPSCALE_MODEL = SD 或 !UPSCALE_MODEL = ULTIMATE。
SD 是一个特殊选项,使用 Stable Diffusion 的 img2img 引擎来放大您的图像。这将比其他方法花费更长时间,并且需要大量的 GPU 显存才能达到较大的图像尺寸(~12GB 的显存需要输出 2048x2048 的图像),但通过增加细节可能会产生更高质量的结果。使用 !UPSCALE_SD_STRENGTH = xxx (默认是 0.3)控制使用 !UPSCALE_MODEL = SD 时的降噪强度。
这个选项的工作方式与 Auto1111 中的高分辨率修复非常相似。它允许您使用 Stable Diffusion 创建图像的更大版本,并根据使用的降噪强度略微改变图像(默认的 0.3 值应在大多数情况下与原始图像非常接近)。
!UPSCALE_MODEL = sd
!UPSCALE_SD_STRENGTH = 0.3
要使用 !UPSCALE_MODEL = sd,您必须首先在 Dream Factory config.txt 文件中添加 MAX_OUTPUT_SIZE(参见 config-default.txt 以了解解释)。
ULTIMATE 是一个特殊选项,需要在您的 AUTOMATIC1111 安装中添加 Ultimate SD Upscale extension。
安装后,您可以使用以下指令控制扩展的设置(在下面的示例中,我们将降噪强度设置为 0.28,使用 ESRGAN_4x 作为放大器,并将原始图像放大 2.5 倍)。
!UPSCALE_MODEL = ultimate
!UPSCALE_SD_STRENGTH = 0.28
!UPSCALE_ULT_MODEL = esrgan
!UPSCALE_AMOUNT = 2.5
有关更多信息,请参见 Dream Factory /prompts 目录中的 example-process.prompts 文件底部。 要使用 !UPSCALE_MODEL = ultimate,必须先为 Auto1111 安装 Ultimate SD Upscale extension。
!UPSCALE_AMOUNT
用于放大的因子。设置 !UPSCALE_AMOUNT = 2 将使图像的宽度和高度加倍(导致分辨率增加四倍)。除非 !USE_UPSCALE = yes,否则无效。
!UPSCALE_AMOUNT = 2
!UPSCALE_CODEFORMER_AMOUNT
输出图像上 Codeformer 面部增强 的可见度。有效值为0-1之间的数字。将其设置为0将完全禁用 Codeformer 增强。除非 !USE_UPSCALE = yes,否则无效。
!UPSCALE_CODEFORMER_AMOUNT = 0.50
!UPSCALE_GFPGAN_AMOUNT
输出图像上 GFPGAN 面部增强 的可见度。有效值为0-1之间的数字。将其设置为0将完全禁用 GFPGAN 增强。除非 !USE_UPSCALE = yes,否则无效。
!UPSCALE_GFPGAN_AMOUNT = 0.50
!UPSCALE_KEEP_ORG
在放大时,还保留原始(未放大)图像吗?有效选项为 yes 或 no(默认)。如果设置为 yes,原始图像将存储在主输出文件夹的 /originals 子目录中。除非 !USE_UPSCALE = yes,否则无效。
!UPSCALE_KEEP_ORG = no
!FILENAME
允许您指定自定义输出文件名。可以使用以下变量;在创建图像时将填充它们:
<ad-model>
<ad-strength>
<cn-img>
<cn-model>
<date>
<date-year>
<date-month>
<date-day>
<height>
<hr-model>
<input-img>
<lora>
<model>
<neg-prompt>
<prompt>
<sampler>
<scheduler>
<scale>
<seed>
<steps>
<strength>
<styles>
<time>
<width>
在 process 模式文件中,可以使用以下变量:
<upscale-model>
<upscale-sd-strength>
文件扩展名 (.jpg) 将自动添加。
!FILENAME = <date-year><date-month><date-day>-<model>-<width>x<height>-<prompt>
上面的示例可能会生成一个输出文件名,例如 20230209-deliberate_v11-768x1280-a-photo-of-a-cute-cat.jpg。
请注意,<input-img>
和 <cn-img>
(ControlNet 输入图像)将仅为基本文件名(无子目录和文件扩展名)。
自定义文件名将被截断为200个字符(不包括文件扩展名和任何必需的数字填充以使文件唯一)。
!CLIP_SKIP
设置 CLIP skip 值。默认值为 1,大多数模型在此设置下效果最佳。但是,一些模型可能在其他值下效果最好。
!CLIP_SKIP = 2
您可以将此设置为空值 (!CLIP_SKIP = ) 以清除它。
!SEAMLESS_TILING
启用或禁用无缝平铺模式。启用时,输出图像将适合无缝/无边缘地平铺。
!SEAMLESS_TILING = on
设置为 off 以禁用(默认)。
!CONTROLNET_INPUT_IMAGE
设置用于 ControlNet 的输入图像。
!CONTROLNET_INPUT_IMAGE = poses\examples\openpose-standing_arms_in_front.png
上面的示例将使用 openpose-standing_arms_in_front.png 作为 ControlNet 输入图像。请注意,如果未安装 ControlNet 扩展,或者未通过 !CONTROLNET_MODEL 指令指定 ControlNet 模型,则此设置将无效。
您可以通过发布另一个指令将其设置为空值来清除先前设置的输入图像 (!CONTROLNET_INPUT_IMAGE = )。
请注意,您也可以将目录传递给此指令:
!CONTROLNET_INPUT_IMAGE = poses\examples
如果传递目录,文件夹中的每个图像都将应用于随后的提示。
!CONTROLNET_MODEL
设置要使用的 ControlNet 模型。
!CONTROLNET_MODEL = openpose
您可以按 control-H(或按相应按钮)在集成编辑器中打开一个参考,显示可用的 ControlNet 模型。请注意,如果未安装 ControlNet 扩展,或者未通过 !CONTROLNET_INPUT_IMAGE 指令指定 ControlNet 输入图像,则设置 ControlNet 模型将无效。
请注意,如果要让 Dream Factory 从 !CONTROLNET_INPUT_IMAGE 文件名中提取模型,也可以选择将 !CONTROLNET_MODEL 设置为 auto(或 auto, [default])。要使此方法有效,必须按以下格式命名图像:[ControlNet 要使用的模型]-[文件名的其余部分].ext
。例如,名为 openpose-standing_arms_in_front.png 的图像表示应在 !CONTROLNET_MODEL = auto 时使用 openpose 模型。
!CONTROLNET_MODEL = auto, depth
在此示例指令中,Dream Factory 将尝试从文件名中提取要使用的模型,如果文件名中未包含有效模型,则默认为“depth”模型。指定默认值是可选的,但如果无法从文件名中识别模型并且不存在默认值,则 ControlNet 将被禁用。
注意:这会对集成参考中可用的有效服务器值进行字符串匹配,因此例如如果参考报告 'control_canny-fp16',那么将 !CONTROLNET_MODEL = canny 设置为会找到它。
!CONTROLNET_PRE
设置要使用的 ControlNet 预处理器。这用于从普通图像“提取”姿势信息,以便然后可以与相应的 ControlNet 模型一起使用。如果使用的是预生成的姿势(例如 Dream Factory poses 文件夹中包含的示例),则不需要设置此选项(或可以将其设置为默认的“none”)。
!CONTROLNET_PRE = openpose
您可以按 control-H(或按相应按钮)在集成编辑器中打开一个参考,显示可用的 ControlNet 预处理器。请注意,如果未安装 ControlNet 扩展,或者未通过 !CONTROLNET_INPUT_IMAGE 指令指定 ControlNet 输入图像,则设置 ControlNet 预处理器将无效。
!CONTROLNET_GUESSMODE
GUESSMODE 从 CN 扩展 v1.1.09 起不再支持 - 请参阅下文的替代方法!
使用此设置在使用 ControlNet 时启用(yes)或禁用(no,默认)猜测模式(或“非提示模式”)。
!CONTROLNET_GUESSMODE = yes
您可以在此处阅读关于猜测模式的内容。
!CONTROLNET_CONTROLMODE
使用此设置告诉 ControlNet 更加偏向您的提示或ControlNet,或者采取平衡的方法。选项为 'balanced'(默认),'prompt'(更多偏向您的提示),或 'controlnet'(更多偏向 ControlNet)。
!CONTROLNET_CONTROLMODE = balanced
您可以在此处阅读关于控制模式的内容。
!CONTROLNET_PIXELPERFECT
使用此设置在使用 ControlNet 时启用(yes)或禁用(no,默认)像素完美模式。启用此选项时,将使用您指定的图像高度和宽度(通过 !WIDTH 和 !HEIGHT)生成 ControlNet 的预处理图像。
!CONTROLNET_PIXELPERFECT = yes
!CONTROLNET_LOWVRAM
使用此设置在使用 ControlNet 时启用(yes)或禁用(no,默认)低 VRAM 模式。
!CONTROLNET_LOWVRAM = yes
这对于具有较少 VRAM 的 GPU 可能有帮助。
!CONTROLNET_WEIGHT
使用此设置设置 ControlNet 的权重(默认 = 1.0;设置在 0-2 之间)。
!CONTROLNET_WEIGHT = 1.0
!AUTO_SIZE
允许您让 Dream Factory 根据输入图像或 ControlNet 输入图像的大小自动调整输出图像的大小。有效选项为 match_input_image_size,match_controlnet_image_size,match_input_image_aspect_ratio,match_controlnet_image_aspect_ratio,resize_longest_dimension:[size],或 off(默认)。
# 输出图像将被设置为与输入图像相同的大小,无论任何 !WIDTH & !HEIGHT 指令
!AUTO_SIZE = match_input_image_size
# 输出图像将使用您 !WIDTH & !HEIGHT 指令中的较长输出尺寸
# 较短的输出尺寸将被计算,以便输出图像具有与 ControlNet 输入图像相同的纵横比
!AUTO_SIZE = match_controlnet_image_aspect_ratio
# 输出图像将被重新调整大小,以使您 !WIDTH/!HEIGHT 设置中的较长者成为此处指定的大小
# 较短的尺寸将被计算,以保持原始 !WIDTH/!HEIGHT 设置的相同纵横比
# 如果您有一个现存的尺寸指令文件并且想快速更改所有的尺寸,这会很有用
!AUTO_SIZE = resize_longest_dimension: 1280
请注意,所有调整大小将导致图像尺寸为64的倍数(两个尺寸都将向下舍入到最接近的64的倍数)。 例如,使用 !AUTO_SIZE = match_controlnet_image_aspect_ratio,如果将 !WIDTH 和 !HEIGHT 都设置为 1408,并传入一张 1920x1080 的 ControlNet 输入图像(16:9 的宽高比),输出图像的尺寸将会是 1408x768。较大的维度已被设定为你设置的 !WIDTH 和 !HEIGHT 中的较大值,而较小的维度被计算为尽可能接近 16:9 的宽高比,且该较小维度可以被 64 整除。
IPTC_TITLE
在嵌入的 IPTC 元数据 中设置图像的标题。一般只有在计划将图像输出到使用 IPTC 标准进行编目等的其他应用程序中时才有用。
IPTC_TITLE = 超棒的 AI 小猫图像!
设置为空来清除它,跟往常一样。
IPTC_DESCRIPTION
在嵌入的 IPTC 元数据 中设置图像的描述。一般只有在计划将图像输出到使用 IPTC 标准进行编目等的其他应用程序中时才有用。
IPTC_DESCRIPTION = 这是一张超棒的 AI 制作的可爱小猫图像。
设置为空来清除它,跟往常一样。
IPTC_KEYWORDS
在嵌入的 IPTC 元数据 中设置图像的关键词。一般只有在计划将图像输出到使用 IPTC 标准进行编目等的其他应用程序中时才有用。关键词应为逗号分隔的列表。
IPTC_KEYWORDS = ai, 小猫, 可爱
设置为空来清除它,跟往常一样。
IPTC_COPYRIGHT
在嵌入的 IPTC 元数据 中设置图像的版权声明。一般只有在计划将图像输出到使用 IPTC 标准进行编目等的其他应用程序中时才有用。
IPTC_COPYRIGHT = 版权所有 © 2023 超棒图片工作室
设置为空来清除它,跟往常一样。
!REPEAT
告知 Dream Factory 是否在完成提示文件中的所有可能组合后继续生成图像。选项为 yes(默认)或 no。如果设置为 no,Dream Factory 在完成所有提示后将处于空闲状态。
!REPEAT = yes
!NEXT_PROMPT_FILE
允许你指定当前文件处理完后加载另一个提示文件。不包括路径;Dream Factory 会自动在你的 config.txt 文件中指定的提示位置查找提示文件。请注意,这对于随机提示文件或标准提示文件中的 !REPEAT = yes 没有任何效果,因为这些文件将无限期运行。
!NEXT_PROMPT_FILE = example-random
如果省略扩展名,将自动附加 .prompts 文件扩展名。
!MIN_SCALE
在使用随机模式提示文件时,设置要使用的最小 !SCALE 值。如果 !MIN_SCALE 和 !MAX_SCALE 设置为不同值,Dream Factory 将为每个提示选择介于它们之间的随机值。
!MIN_SCALE = 6.0
已弃用 - 考虑使用 !SCALE = x.x - xx.x 格式替代。
!MAX_SCALE
在使用随机模式提示文件时,设置要使用的最大 !SCALE 值。如果 !MIN_SCALE 和 !MAX_SCALE 设置为不同值,Dream Factory 将为每个提示选择介于它们之间的随机值。
!MIN_SCALE = 18.5
已弃用 - 考虑使用 !SCALE = x.x - xx.x 格式替代。
!MIN_STRENGTH
在使用随机模式提示文件时,设置要使用的最小 !STRENGTH 值。如果 !MIN_STRENGTH 和 !MAX_STRENGTH 设置为不同值,Dream Factory 将为每个提示选择介于它们之间的随机值。
!MIN_STRENGTH = 0.45
已弃用 - 考虑使用 !STRENGTH = 0.xx - 0.xx 格式替代。
!MAX_STRENGTH
在使用随机模式提示文件时,设置要使用的最大 !STRENGTH 值。如果 !MIN_STRENGTH 和 !MAX_STRENGTH 设置为不同值,Dream Factory 将为每个提示选择介于它们之间的随机值。
!MAX_STRENGTH = 0.80
已弃用 - 考虑使用 !STRENGTH = 0.xx - 0.xx 格式替代。
!RANDOM_INPUT_IMAGE_DIR
在使用随机模式提示文件时,设置应从中提取随机输入图像的目录。如果设置了此项,Dream Factory 将为每个提示选择一个随机输入图像。
!RANDOM_INPUT_IMAGE_DIR = C:\images # 指定包含输入图像的目录的完整路径
!RANDOM_INPUT_IMAGE_DIR = images # 指定包含输入图像的目录的相对路径
!RANDOM_INPUT_IMAGE_DIR = # 指定不应使用输入图像
!OVERRIDE_CKPT_FILE
仅在 !MODE = process
.prompts 文件中有效的特殊指令,并且只在与 !UPSCALE_MODEL = sd
一起使用时有效。
此指令允许你指定一个不同的模型(例如不是用于创建原始图像的模型)在执行 SD 放大时使用。
!OVERRIDE_CKPT_FILE = juggernaut
注意:子字符串匹配在此有效。在此示例中,“juggernaut” 将匹配包含字符串 “juggernaut” 的第一个有效模型文件。
!OVERRIDE_VAE
仅在 !MODE = process
.prompts 文件中有效的特殊指令,并且只在与 !UPSCALE_MODEL = sd
一起使用时有效。
此指令允许你指定一个不同的 VAE 在执行 SD 放大时使用(例如不是用于创建原始图像的 VAE)。
!OVERRIDE_VAE = vae-ft-mse-840000-ema-pruned
注意:子字符串匹配在此有效。在此示例中,“vae-ft-mse-840000-ema-pruned” 将匹配包含字符串 “vae-ft-mse-840000-ema-pruned” 的第一个有效 VAE 文件。
!OVERRIDE_MAX_OUTPUT_SIZE
仅在 !MODE = process
.prompts 文件中有效的特殊指令,并且仅在与 !UPSCALE_MODEL = sd
一起使用时有效。
此指令允许你覆盖在 config.txt 文件中设置的 MAX_OUTPUT_SIZE 值(请参阅 config-default.txt 以获取详细解释)。
!OVERRIDE_MAX_OUTPUT_SIZE = 2,000,000
!OVERRIDE_SAMPLER
仅在 !MODE = process
.prompts 文件中有效的特殊指令,并且仅在与 !UPSCALE_MODEL = sd
一起使用时有效。
此指令允许你指定一个不同的采样器在执行 SD 放大时使用(例如不是用于创建原始图像的采样器)。
!OVERRIDE_SAMPLER = DPM++ 2M Karras
!OVERRIDE_STEPS
仅在 !MODE = process
.prompts 文件中有效的特殊指令,并且仅在与 !UPSCALE_MODEL = sd
一起使用时有效。
此指令允许你指定一个不同的步数(例如不是用于创建原始图像的步数)在执行 SD 放大时使用。
!OVERRIDE_STEPS = 40
请注意,你是在覆盖用于创建原始图像的步数,而不是设置实际放大时使用的步数(这个数值由步数和 !UPSCALE_SD_STRENGTH 的结合决定)。例如,如果原始图像是用 120 步创建的,而你在使用!UPSCALE_SD_STRENGTH = 0.30
的 !PROCESS_MODE SD 放大作业中设置 !OVERRIDE_STEPS = 40
,那么最终输出图像将有大约 13 步(40 * 0.3)而不是 40 步(120 * 0.3)。
!UPSCALE_SD_STRENGTH
允许你在使用任一种特殊 !MODE = process 放大方法(!UPSCALE_MODEL = ultimate 或 !UPSCALE_MODEL = sd)时设置降噪强度。
!UPSCALE_SD_STRENGTH = 0.28
!UPSCALE_ULT_MODEL
允许你在通过 !UPSCALE_MODEL = ultimate 在 !MODE = process .prompts 文件中控制 Ultimate SD Upscale extension 时设置要使用的放大模型。
!UPSCALE_ULT_MODEL = remacri
注意,子字符串匹配是允许的。在此示例中,第一个包含字符串 'remacri'(不区分大小写)的有效 Auto1111 放大器将被使用。
!STYLES
允许在 Dream Factory 提示中使用 Automatic1111 样式。使用逗号分隔的列表可以设置多个样式。你也可以将 !STYLES 设置为 random x,以使 Dream Factory 在每次执行提示时随机选择 x 个样式(!STYLES = random
意味着单个随机样式)。
将 !STYLES 设置为空来清除。
!STYLES = 流行艺术
!STYLES = 流行艺术, 维多利亚风格, 新朋克
!STYLES = random
!STYLES = random 4
!STYLES =
注意:子字符串是可以的(例如:!STYLES = 流行
将匹配 "流行艺术" 样式,如果它存在于你的 Auto1111 样式目录中)。
!HIGHRES_SCALE_FACTOR
允许你指定用于确定最终输出尺寸的初始图像的缩放因子。例如,如果你的 !WIDTH 和 !HEIGHT 都设置为 1024,并且设置 !HIGHRES_SCALE_FACTOR = 1.5,那么最终输出图像尺寸将为 1536x1536。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,并且 在 Dream Factory 的 config.txt 文件中设置了 HIRES_FIX_MODE = advanced
,否则这没有效果。
!HIGHRES_SCALE_FACTOR = 1.25
设置为空来清除它(如果在高级模式下设置 HIGHRES_FIX = yes 而没有指定自己的 HIGHRES_SCALE_FACTOR,则将使用默认值 2.0)。
!HIGHRES_UPSCALER
允许你在图像生成的高分辨率修复部分指定一个放大器。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_UPSCALER = ESRGAN_4x
设置为空来清除它(如果没有设置任何内容并使用 HIGHRES_FIX = yes,则将使用默认的 Latent)。
!HIGHRES_CKPT_FILE
允许你在图像生成的高分辨率修复部分指定一个不同的模型。请注意,你可以在这里混合和匹配 SDXL 和 SD 1.5 模型(例如,用 SDXL 进行初步生成,然后用 SD 1.5 模型进行高分辨率修复)!
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_CKPT_FILE = epicrealism
你也可以使用逗号分隔的模型列表。如果你还为你的主模型(!CKPT_FILE)使用了多个模型,那么所有可能的组合将被生成。
!HIGHRES_CKPT_FILE = epicrealism, deliberate, dreamshaper
模型文件名的子字符串匹配是可以的(哈希也可以)。 设置为空来清除它(如果没有设置任何内容并使用 HIGHRES_FIX = yes,则将使用默认的 Latent)。
!HIGHRES_VAE
目前不工作;Auto1111 还没有这个 API 设置!
允许你在图像生成的高分辨率修复部分指定一个不同的 VAE。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_VAE = vae-ft-mse-840000-ema-pruned
VAE 文件名的子字符串匹配是可以的。 设置为空来清除它。
!HIGHRES_SAMPLER
允许你在图像生成的高分辨率修复部分指定一个不同的采样器。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_SAMPLER = Euler a
设置为空来清除它(如果没有设置任何内容并使用 HIGHRES_FIX = yes,则将在初始生成期间使用的采样器将被使用)。
!HIGHRES_SCHEDULER
允许你在图像生成的高分辨率修复部分指定一个不同的调度器。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_SCHEDULER = Karras
设置为空或 Automatic 来清除它(如果没有设置任何内容并使用 HIGHRES_FIX = yes,则将在初始生成期间使用的调度器将被使用)。
!HIGHRES_STEPS
允许你在图像生成的高分辨率修复部分指定一个不同的步数。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_STEPS = 20
设置为空来清除它(如果没有设置任何内容并使用 HIGHRES_FIX = yes,则将使用在初始生成期间的步数)。
!HIGHRES_PROMPT
允许你在图像生成的高分辨率修复部分指定一个不同的提示。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_PROMPT = 高度详细
你也可以将其设置为 <remove loras>
,这将使用主提示中的所有 LoRA/hypernet 引用被移除。这在你使用 SDXL 主模型和 LoRA(s) 并希望使用 SD 1.5 模型进行高分辨率修复时特别有用(在这种情况下,SDXL LoRAs 将与 SD 1.5 模型不兼容)。
!HIGHRES_PROMPT = <remove loras>
最后,你可以在 !HIGHRES_PROMPT 中使用特殊标记
!HIGHRES_PROMPT = <prompt>, 高度详细, 8k
设置为空来清除它(如果你没有设置任何内容并使用 HIGHRES_FIX = yes,则将使用初始生成期间使用的提示)。
!HIGHRES_NEG_PROMPT
允许你在图像生成的高分辨率修复部分指定一个不同的负提示。
除非在提示文件中也设置了 !HIGHRES_FIX = yes
,否则这没有效果。
!HIGHRES_NEG_PROMPT = 丑陋
您还可以在 !HIGHRES_NEG_PROMPT 中使用特殊的标记 <neg_prompt> 来引用原始/主要的负面提示。如果您想要以某种方式添加到原始的负面提示中,这会非常有用。
!HIGHRES_NEG_PROMPT = <neg_prompt>, 插图, 绘图
将其设为空值以清除(如果您在这里不设置任何内容并使用 HIGHRES_FIX = yes,则会使用初始生成期间使用的负面提示)。
!REFINER_CKPT_FILE
允许您指定要使用的精细化模型。
!REFINER_CKPT_FILE = sd_xl_base_1.0_refiner
模型文件名中的子字符串匹配是可以的(哈希值也可以工作)。 将其设为空值以清除。
!REFINER_SWITCH
允许您指定在何时在图像生成过程中切换到精细化模型(0 - 1)。例如,在这里设置 0.50 将在生成过程中正好切换一半。
!REFINER_SWITCH = 0.75
将其设为空值以清除(如果您在这里不设置任何内容但使用 !REFINER_CKPT_FILE,则将使用默认的0.8)。
!ADETAILER_USE
允许您通过 Dream Factory 指令控制 ADetailer 扩展。请注意,您必须安装 ADetailer 扩展 才能使用这些功能!
!ADETAILER_USE = yes
!ADETAILER_MODEL = face_yolov8n.pt
上述命令是激活 ADetailer 所需的最低限度。请注意,目前无法通过 API 调用验证提供给 !ADETAILER_MODEL 的值是否有效,因此如果您在此处提供了无效的模型,将会看到错误信息(您可以通过 Auto1111 UI 查看可用模型列表)! 将 !ADETAILER_USE 设置为 no 来停用 ADetailer。
此外,以下可选指令允许进行额外的控制:
# 将这些设置为在 ADetailer 步骤中使用特定的检查点和/或 vae
# 这里可以进行子字符串匹配
!ADETAILER_CKPT_FILE = deliberate
!ADETAILER_VAE = vae-ft-mse-840000-ema-pruned
# 将这些设置为在 ADetailer 步骤中使用特定的提示/反面提示
# 这些将仅针对 ADetailer 修补的区域(例如面部、手部等)
!ADETAILER_PROMPT = 详细的中年男性工作室肖像
!ADETAILER_NEG_PROMPT = 手,卡通,cgi,渲染,插图,绘画,绘图
# 将这些设置为覆盖默认的 ADetailer 值
!ADETAILER_STRENGTH = 0.75
!ADETAILER_SCALE = 7.5
!ADETAILER_SAMPLER = Euler
!ADETAILER_CLIP_SKIP = 1
请注意,您可以在正常(!MODE = standard)或处理(!MODE = process)提示文件中使用这些 ADetailer 指令。最有效的工作流程可能是先生成不启用 ADetailer 的初始图像,然后设置一个处理 .prompts 文件以批量处理选定图像的文件夹(例如修复面部/手部等)。
查看您的图像
您可以在任何页面上点击顶部导航栏中的“画廊”来查看 Dream Factory 为您制作的图像。默认情况下,您将看到最近创建的200张图像(最大显示图像数量可以通过config.txt文件中的GALLERY_MAX_IMAGES设置进行更改)。您还可以选择一个特定的输出文件夹通过页面顶部附近的下拉菜单进行浏览。
选择一个特定的文件夹浏览时,文件夹名称旁会出现一个zip图标。点击此图标将下载整个文件夹的图像作为.zip文件。
点击任何图像将打开该图像的扩展视图,并显示所选图像的关联元数据。在查看图像时,有几个额外的命令可用——这些命令由位于图像上的图标表示。鼠标悬停在每个图标上会显示一个帮助气泡,解释每个图标的工作原理,以及命令的相关快捷键(例如,使用左箭头键和右箭头键浏览图像,使用“del”键删除图像等)。
通过快捷键(“del”键)删除图像时,请注意确认对话框已被禁用,以允许您快速删除大量图像(点击图像上方的删除图标将通过额外的弹出窗口提示您确认删除)。如果不小心删除了您想保留的图像,可以在[dream factory]/server/temp
文件夹中恢复它们,在关闭 Dream Factory 之前(每次关闭时该文件夹会被清空)。
虽然 Dream Factory 并不是为了在移动设备上使用而设计的,但在画廊中查看图像时可以左右滑动以快速浏览。查看图像时向下滑动会弹出删除确认对话框。滑动操作仅在 Android 的 Chrome 上测试过,不能保证在其他移动平台上正常工作。
高级用法
这里可以找到一些针对高级用户的使用场景。
通配符
通配符文件是简单的文本文件,放置在您 dream-factory/prompts/wildcards 目录中。您可以通过在任何提示文件的 [prompts] 部分中使用 __[wildcard filename]__
(这是2个下划线,后面是通配符文件名,不带.txt扩展名,再后面是2个下划线)来引用这些通配符。当 Dream Factory 构建最终提示时,它将用文件中的一行随机内容替换通配符引用。
在使用集成编辑器编辑提示文件时,可以按ctrl+h
或点击帮助按钮查看可用通配符列表(点击一个可将其复制到剪贴板,以便于在提示文件中包含它们)。
包含一个示例 colors.txt 文件。在任何提示中指定 __colors__
将随机提取一个颜色。
允许嵌套通配符(在通配符文件内引用通配符)(截至 2023-02-16)。
自定义模型
您在 Auto1111 模型目录中放置的任何自定义模型都可以通过 !CKPT_FILE 指令 在 Dream Factory 中使用。对于需要触发词的模型(例如,Mo-Di 模型 需要你在提示中插入'现代迪士尼风格'短语),你可以让 Dream Factory 为你自动插入这些短语。
每次 Dream Factory 启动后(在第一个 GPU 完全初始化后),会在您的 Dream Factory 根文件夹中创建/更新一个 model-triggers.txt 文件。每个可用的模型应显示在此文件中,后跟一个逗号。要将触发短语/令牌与模型关联,只需将其放在该模型条目的逗号后面。例如,以下条目将“现代迪士尼风格”与名为“moDi-v1-pruned.ckpt”的模型关联:
moDi-v1-pruned.ckpt [ccf3615f], modern disney style
您可以通过 !AUTO_INSERT_MODEL_TRIGGER 控制自动插入触发词的位置。
请注意,如果启用了 Civitai 集成,则 model-triggers.txt 文件中的条目将优先于从 Civitai 抓取的触发词。
嵌入
如果您已在 Auto1111 安装了任何文本反演嵌入 SDwebui,您可以通过集成的提示编辑器内置的帮助引用它们。
在使用集成编辑器编辑提示文件时,只需按 ctrl+h
或点击帮助按钮查看可用的嵌入列表(点击一个可将其复制到剪贴板,以便在提示文件中包含它们)。
ControlNet
(2023-03-13 注意:这应被视为 WIP - 编辑器参考页面还比较粗糙,可能存在一些错误!)
如果您已安装 Auto1111 ControlNet 扩展 并安装了至少一个 ControlNet 预训练模型,则 Dream Factory 中应自动启用 ControlNet 功能。
ControlNet 提示文件指令
您可以参考当前ControlNet 提示文件指令。
请注意,至少需要在提示文件中设置 !CONTROLNET_INPUT_IMAGE 和 !CONTROLNET_MODEL 才能激活 ControlNet。
ControlNet 姿势
如果您有一个 ControlNet 姿势库,您可以将它们放在主 Dream Factory 文件夹下的 poses 目录中。姿势图像文件可以组织到其自己的文件夹中(不超过一级深度)。
可选:您可以在这些文件夹中的每个文件夹中另外创建一个 previews 子目录。在 previews 子目录中,您可以放置与每个姿势文件对应的渲染图像——这些预览必须与姿势文件同名(尽管您可能有不同的图像格式;目前 .jpg 或 .png 都可以)。这些预览将出现在 Dream Factory 集成的提示编辑器参考中。
查看 poses\examples Dream Factory 文件夹中的几个姿势图像文件及其对应的预览文件。在 Dream Factory 提示文件编辑器参考区域中(在编辑任何提示文件时按 control-H
打开)应该可以查看这些文件。
ControlNet 提示
- 如果在使用 !CONTROLNET_PRE 指令时不希望预处理器图像图作为附加输出,您可以在 Auto1111 UI 中禁用此功能。进入设置 -> ControlNet -> 不将 detectmap 附加到输出。
更新 Dream Factory
您可以通过键入以下内容将 Dream Factory 更新到最新版本:
python setup.py --update
故障排除
这里可以找到常见问题的解决方法。
与 Automatic1111 的兼容性
由于 Automatic1111 仓库缺乏明确的许可证,我选择不将 Dream Factory 与它自己的 Automatic1111 SD webui 版本打包。如果 Automatic 在未来对 Automatic1111 做出重大更改,Dream Factory 可能会停止工作。我会尝试将此更新为最新已知的可工作版本的 Automatic1111 的哈希值,以防出现问题。
您可以通过进入 Auto1111 安装目录并在命令行输入以下内容来获取已知兼容版本的 Automatic1111 SD webui:
git checkout 82a973c04367123ae98bd9abdf80d9eda9b910e2
如果收到错误消息,提示哈希引用不是树,运行 git pull
并重试。
如果/当您想返回到最新版本时,只需运行 git checkout master
。
(更新于 2024-07-27,先前支持的哈希:bef51aed032c0aaa5cfd80445bc4cf0d85b408b5)