Infinite-dimensional multi-axis image grid generator tool for StableSwarmUI.
Operates as a "Tool" within the "Tools" UI, built into Swarm by default as an official reference Extension, lets you generate grids of images to compare prompts or parameters.
- Grids are infinite dimensional, you can add as many axes as you want.
- Grids display as a webpage that you can open and select axis display settings dynamically. You can save an image from the grid view.
- You can opt to generate "Just Images", a "Grid Image", or a "Web Page"
- "Just Images" as the name implies, just gives you images. They are stored in the normal image path.
- "Grid Image" gives you one single final image at the end. This currently only works up to 3 axes (X, Y, and Y2), and will fail with more.
- "Web Page" will generate a special web page with a dynamic advanced grid live-viewer, that lets you reorganize the view freely, and display up to 4 axes at a time (and easily swap to other ones).
- You can save/load grid configurations at will to reuse them.
- WARNING: The time it takes to generate a grid grows exponentially.
- Lets say it takes you 1 second per image. You have one axis with 10 values... that's 10 seconds. Now you add another axis with 10 values... that's now 10*10 = 100 seconds. Now you add a third axis with 10 values... now it takes 1000 seconds (17 minutes). Add a fourth and you're at 10k seconds (3 hours). Keep going and soon you'll be taking days, weeks, ... past a certain scale, it doesn't make sense unless you have several GPUs backing your generations to counteract the scaling.
- When using numbered parameters, for example
Seed
, you can input..
between numbers to automatically fill that space, for example1, 2, .., 10
- Must have two numbers before (to identify the start and step), and one number after (to identify the end)
- For example:
1, 2, .., 5
fills to1, 2, 3, 4, 5
- For example:
1, 3, 5, 6, 6.5, .., 9, 11, 13
fills to1, 3, 5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 11, 13
- Any parameters may have
SKIP:
in front of them (all caps!) to skip that value.- For example,
1, 2, SKIP: 3, 4
will output a grid that has all of 1,2,3,4, but only has images in 1,2,4.- This is useful particularly for when you're reusing grid pages and want to leave a placeholder, or overwrite some images but leave the rest as they were.
- For example,
- Want to use prompts that have a
,
in them? Just separate by||
instead.- For example:
a cat, red || a cat, blue
will be parsed correctly as containing two text prompts.
- For example:
[Grid Gen] Prompt Replace
is pretty powerful.- If your prompt is
a photo of a cat
, you can docat, dog, wolf
to generatea photo of a cat
,a photo of a dog
,a photo of a wolf
- But you can also do
cat=cat, cat=dog, photo=drawing
to generatea photo of a cat
,a photo of a dog
,a drawing of a cat
- But also you can have prompt
a photo of a cat <lora:mylora>
and then prompt replacemylora, myotherlora, mythirdlora
- Or you can do
a photo of a cat
and thencat, cat <lora:mycatlora>, dog, dog <lora:mydoglora>
- You can potentially do this with any parameter or combination of parameters you want by building Presets in the Presets tab and then using
<preset:whatever>
in the prompt replacement
- Or you can do
- If your prompt is
[Grid Gen] Presets
is a list- You can do
mypreset || mypreset, mypreset2 || mypreset2
to compare two presets and also the combination thereof.
- You can do
The first version of this tool was Infinity Grid Generator for Automatic1111's Stable-Diffusion-WebUI. It has a very special place in my heart as it was used by Stability employees, which was a key factor that led to me (Alex "mcmonkey" Goodwin) getting hired by Stability, and being given the opportunity to build bigger-and-better tools like StableSwarmUI!
That version had custom config files to enable added metadata (titles, descriptions, etc) for grid axis values - this will eventually be reimplemented to the Swarm version.