A selection of custom nodes for ComfyUI.
Contents
CLIP Text Encode++ can generate identical embeddings from stable-diffusion-webui for ComfyUI.
This means you can reproduce the same images generated from stable-diffusion-webui
on ComfyUI
.
Simple prompts generate identical images. More complex prompts with complex attention/emphasis/weighting may generate images with slight differences. In that case, you can try using the Settings
node to match outputs.
- Prompt editing
AND
keyword (similar to the ConditioningCombine node)BREAK
keyword (same as the ConditioningConcat node)- Weight normalization
- Optional
embedding:
identifier
These images can be dragged into ComfyUI to load their workflows. Each image is done using the Silicon29 (in SD v1.5) checkpoint with 18 steps using the Heun sampler.
stable-diffusion-webui | A1111 parser | Comfy parser |
---|---|---|
Image slider links:
Name | Description |
---|---|
parser |
The parser to parse prompts into tokens and then transformed (encoded) into embeddings. Taken from SD.Next. |
mean_normalization |
Whether to take the mean of your prompt weights. It's true by default on stable-diffusion-webui .This is implemented according to how it is in stable-diffusion-webui . |
multi_conditioning |
For each prompt, the list is obtained by splitting the prompt using the
|
use_old_emphasis_implementation |
Use old emphasis implementation. Can be useful to reproduce old seeds. |
Tip
You can right click the node to show/hide some of the widgets. E.g. the with_SDXL
option.
Parser | Description |
---|---|
comfy |
The default way ComfyUI handles everything |
comfy++ |
Uses ComfyUI 's parser but encodes tokens the way stable-diffusion-webui does, allowing to take the mean as they do. |
A1111 |
The default parser used in stable-diffusion-webui |
full |
Same as A1111 but whitespaces, newlines, and special characters are stripped |
compel |
Uses compel |
fixed attention |
Prompt is untampered with |
Important
Every parser
except comfy
uses stable-diffusion-webui
's encoding pipeline.
Warning
LoRA syntax (<lora:name:1.0>
) is not suppprted.
The Settings
node is a dynamic node functioning similar to the Reroute node and is used to fine-tune results during sampling or tokenization. The inputs can be replaced with another input type even after it's been connected. CLIP
inputs only apply settings to CLIP Text Encode++. Settings apply locally based on its links just like nodes that do model patches. I made this node to explore the various settings found in stable-diffusion-webui
.
This node can change whenever it is updated, so you may have to recreate it to prevent issues. Settings can be overridden by using another Settings
node somewhere past a previous one. Right click the node for the Hide/show all descriptions
menu option.
- Use the same seed, sampler settings, RNG (CPU or GPU), clip skip (CLIP Set Last Layer), etc.
- Ancestral and SDE samplers may not be deterministic.
- If you're using
DDIM
as your sampler, use theddim_uniform
scheduler. - There are different
unipc
configurations. Adjust accordingly on both UIs.
- How does this differ from
ComfyUI_ADV_CLIP_emb
?- While the weights are normalized in the same manner, the tokenization and encoding pipeline that's taken from stable-diffusion-webui differs from ComfyUI's. These small changes add up and ultimately produces different results.
- Where can I learn more about how ComfyUI interprets weights?
Three methods are available for installation:
- Load via ComfyUI Manager
- Clone the repository directly into the extensions directory.
- Download the project manually.
cd path/to/your/ComfyUI/custom_nodes
git clone https://github.com/shiimizu/ComfyUI_smZNodes.git
- Download the project archive from here.
- Extract the downloaded zip file.
- Move the extracted files to
path/to/your/ComfyUI/custom_nodes
. - Restart ComfyUI
The folder structure should resemble: path/to/your/ComfyUI/custom_nodes/ComfyUI_smZNodes
.
To update the extension, update via ComfyUI Manager or pull the latest changes from the repository:
cd path/to/your/ComfyUI/custom_nodes/ComfyUI_smZNodes
git pull