Ctrl + A = select all nodes
Ctrl + M = mute/unmute selected nodes
Ctrl + C = copy selected nodes
Ctrl + V = paste node buffer
Ctrl + Enter = Adds current workflow to queue
Delete = delete selected nodes
Backspace = delete selected nodes
Space Bar = drag viewing area (hold space bar and move mouse pointer)
Notes:
- Ctrl + X does nothing.
- muted nodes don't process and block everythintg behind them
- Ctrl+C, Ctrl+V, Ctrl+X, work normally inside a text box/field
- The text areas are like a separate layer. Space and copy/paste functions act normal inside them and use comfyUI functions outside.
- full list of shortcuts
Add pythongosssss Node Templates from this repo. Download the node-templates file and put it inTemplates are now in ComfyUI.ComfyUI/web/extensions/
. (Don't copy paste the editor display, save the raw file.) This repo has some other super helpful extensions as well.- I still recommended image-feed and workflow-svg from the repo
- noodles (the wires) can be organized with reroute nodes. It takes extra time, but it makes figuring out a workflow a few days later much easier. Much less someone else.
- SaveImage can do sub folders. The format is
folder/imageprefix
. - The LoadImage node is (at this writing) too small. Drag the bottom down to show the image preview. Glory at the terrible sketch comfy made for an example!
Prefix Output files can be customized with substitutions
%date:d-M-yy%
all the date variables:
yy -> last 2 digit of year (23)
yyyy -> full year format (2023)
d -> day number
M -> month number
h -> hour
m -> minute
s -> second
- Put in a
/
to create a folder like%date:d-M-yyyy%/ComfyUI
%width%
and%height%
are also supported.- Various items from nodes can also be included. Right click on a node, click on
properties
and use the contents of the Node name for S&R property and the name of the data_field.- Example of putting the checkpoint in the file name:
- Load Checkpoint's API name shown in properties is
CheckpointLoaderSimple
- The data_field is
ckpt_name
- combine with a
.
between:CheckpointLoaderSimple.ckpt_name
- wrap the whole thing with
%
at the ends:%CheckpointLoaderSimple.ckpt_name%
- and put that in the filename_prefix of the Save Image node
- each substitution gets its own %marks. Example:
%date:yyyy-M-d%/%node.data%_%node2.data2%
Suffix
- ComfyUI adds the suffix of an underscore, 5-digit number, underscore, and extension at the end of the file name automatically (
_NNNNN_.png
).
Thanks to Davemane42 for pointing this out!
If comfyUI doesn't have something you expect, there's probably a custom node for it.
- Custom Nodes are placed in the custom_node directory
- It's generally a good idea to put the author's name/handle as a directory/folder, then the node(s) inside it.
- This can cause an warning when comfy loads the folder but it is harmless.
- an alternative is to keep the folders outside of comfy, and copy over the particular files.
- this may seem annoying at first, but one time spent trying to remember where a custom node came from makes it worth it. (:
- some nodes come as "suites" which will include their own directory, drop the whole thing inside custom_nodes
- if nodes come in a folder with an
__init__.py
file, the whole thing can be put incustom_nodes
with no errors- well, there might still be errors (:
- if nodes come in a folder with an
Extensions are bits of javascript that extend the UI or some functions of comfyUI beyond the scope of nodes.
- Extensions are placed in the
web\extensions
folder/directory. - Make sure to follow the author's instructions. These can break things. Easy to fix by removing the files.
There is no central repository of nodes/extensions (ie: marketptlace). ComfyUI is considered prealpha and it is felt a centralized system isn't advisable at this time (Don't let pre alpha scare you. ComfyUI is robust, but under rapid development!)
- there are a couple lists, though:
Otherwise known as Textual Inversons, embeddings can help create specfiic results in an image. Place embeddings in the embeddings
folder and use them in prompts with embedding:<filename>
. The extension isn't required. Note the lack of space after the :
. Embeddings don't have a GUI element or node because their placement in a prompt is important. An embedding is basically a "word" with special meaning.
While most embeddings are put in the prompt, negative ones are placed in a negative prompt to avoid a result. They can be helpful in creating better compositions. Restults can vary by model and the weight of the embedding.
- https://civitai.com/models/4629/deep-negative-v1x
- https://civitai.com/models/7808/easynegative
- https://huggingface.co/nick-x-hacker/bad-artist
- https://huggingface.co/yesyeahvh/bad-hands-5/tree/main
- https://huggingface.co/datasets/Nerfgun3/bad_prompt/
- https://civitai.com/models/23178
- https://civitai.com/models/16993
- https://civitai.com/models/15287
- ComfyUI has a philosophy of keep it simple. Don't try to create a "do it all" workflow, instead focus on a specific objective.
- use the CheckpointLoaderSimple node to load checkpoints. It will auto pick the right settings depending on your GPU.
Comfy runs as a service with a web-based front end (the user interrface). This means more than one tab to can be opened. But there's a few things to look out for.
- F5 will refresh to the most recently queued workflow. Avoid F5 if you don't want to lose work in a different tab.
- Use the "new tab" command and copy-paste the URL.
- or control+left click the url in the cmd/ps window (windows)
- Do not use "duplicate tab". It dupilicates evrything about the original, included session information, which makes the output go wonky.
This directory conatains some basic workflows showing beginning principles. Think of them as badly organized tutorials.
Be sure to check out the comfy examples and FAQ
- Cleaner Noodles Starting Workflow (save the file then load/drag into comfyUI)
- WAS Starting Workflow