This is a ComfyUI worklfow
It's not particularly crazy in what it can create - all there is are 2 KSampler passes with an upscaler in-between. Instead, the main point is in QoL features to limit the time spent fiddling with widget values as much as possible so you can spend more time actually generating.
All the custom node requirements are listed in About this version
and can be downloaded with ComfyUI Manager
Features:
Automatic handling of SDXL and derived checkpoints
If a checkpoint contains XL
(case insensitive) anywhere in its filename, which conveniently most SDXL/PONY checkpoints do, some adjustments will be made automatically, specifics below.
Loaders QoL
All loaders unified into a single group node
Use Baked-in VAE?
picks the loaded checkpoint's vae over the loaded one (wow, no one guessed). It essentially turns switching node connections into a single click
tome ratio is supposed to speed up generation at the cost of some minimal changes to the image, none of which are really noticeable tbh, but it's there
6x lora loaders with the model and clip strengths unified into a single widget for simplicity. There is a copy of this node with separated lora strengths on the side so you can reconnect it if you like.The lora loaders are from pythongosssss's pack, and will display a preview image when hovering over models during selection if you have an image file with the same filename as the lora in the same folder
Couldn't do it for the checkpoint loader as another one has to e used to output the name string to check forxl
Prompt PresetsAllows you to keep a list of often reused prompts like quality tags for later. The picked option is concatenated in front of the main prompt.
Preset prompts are separated by
#
A regex replace expression ensures that the first line after the
#
and any number of new lines up until a different character is removed so you can use that first line to add notes and have some space left afterwards to keep it clean and easy to navigate
Size presetsLets you quickly pick from some common sizes.
Set 1
consists of SDXL-trained sizes, therefore they should work best for it. This set is forced if an XL model is loaded.
Adding a new size preset in a set is as simple as typing it in a new line. First 2 numbers are used as width and height respectively. You can add anything afterwards, and anything that isn't a number before and in-between.
To add a new set,Convert to nodes
-> copy aSet
node -> connect it to theText List
node -> combine everything into a group node againIf you run out of slots on the
Text List
, use another one and combine them with aText List Concatenate
node
KSampler passes QoL
Inside each of those group nodes, there are 2 Advanced KSamplers. If an XL checkpoint is NOT detected, only the first one will be used to complete the entire image. If an XL checkpoint IS detected, the generation will be split between the 2 KSamplers with the first running the loaded checkpoint and the second, the SDXL refiner. The step at which the KSampler switches is determined by therefiner step ratio
widget, with the value being a percentage of the total step count that that the refiner will perform, so in the above image, the refiner would handle 20% of the steps set in both KSamplers.
For the2nd pass
, if you setseed
orcfg
to0
, then the value from1st pass
will be used instead. For seed, you need to also setcontrol_after_generate
tofixed
Forcing XL detection state on a node
If for whatever reason you want to force a different behaviour on a node than the currently loaded model would illicit, use a node with an
INT
output.0
means non-XL,1
means XL