A photographic contact sheet showing every frame from a roll printed together in rows so the whole take can be compared at once

Photographers solved this in a darkroom seventy years ago. Print the whole roll on one sheet and compare.

Stop Guessing Settings, Build A Grid Instead

One variable, one row, one look. Then you actually know.

Published August 5, 2026 · RealAIGirls · About a 9 minute read

Share on X Share on Facebook Share on Reddit

You have been told to use 25 steps. Also 40. Also that steps stopped mattering two model generations ago. Somebody in a thread swears by one sampler, somebody else says that sampler is why your skin looks like wax, and every single one of them is describing results from a different checkpoint, a different prompt, and a different seed.

None of that is resolvable by reading. It is resolvable in about ten minutes by building one grid.

The method has a name in most interfaces, usually XY plot or a plot script, and in node based tools it is a couple of primitive nodes wired into a batch. What it does is trivial to describe: it runs the same generation repeatedly while stepping one setting along a row and, optionally, a second setting down a column, then tiles the results into a single labelled image.

The trivial description hides the reason it works. Everything in a diffusion pipeline interacts with everything else, so any observation you make from two separate renders is contaminated. Change the sampler and hit generate again and you did not just change the sampler. You almost certainly rolled a new seed too, and the new seed changed the composition, and now you are comparing two different photographs and calling it a sampler test.

The whole discipline in one line: fix the seed, fix the prompt, fix the resolution, fix the model, and change exactly one thing. Anything you did not lock is a confounder, and a confounder will lie to you confidently.

Your First Grid Should Be Boring

Pick a prompt you use constantly. Not an interesting one, a workhorse. The point is to learn how your own settings behave on the kind of image you actually make, and an exotic test prompt teaches you about the exotic prompt.

Set the seed to a fixed integer instead of random. Any integer. Write it down, because you will want to come back to this exact test later when you swap models and you will want the comparison to hold.

Now choose one axis. Steps is the easiest place to start because the expected result is a curve that flattens, and watching where it flattens on your setup is more useful than anyone else's number. Run something like 10, 15, 20, 25, 30, 40, 60 across a row. Seven images, one sheet.

Then look at it and find the point where consecutive frames stop being distinguishable. That column is your answer. Everything to the right of it is time you have been spending for nothing, and on a busy night that difference is real minutes per image.

The Axes Worth Running, Roughly In Order

AxisWhat you are looking forTypical range to sweep
StepsThe point where consecutive frames become indistinguishable10 to 60, seven or eight values
CFG scaleWhere prompt adherence stops improving and contrast starts burning3 to 12, in steps of one or two
SamplerWhich ones converge at your step count and which need moreFour or five you actually have
Denoising strengthHow much of the source image survives a second pass0.2 to 0.8, in steps of 0.1
LoRA weightWhere the character arrives and where it eats the rest of the image0.2 to 1.0, in steps of 0.1
Prompt fragmentWhether a phrase you always include is doing anything at allPresent against absent, two columns

That last row is the one people skip and it is quietly the most valuable. Almost every prompt anybody uses has accumulated a tail of tokens that arrived from a tutorial in 2023 and never left. Run the prompt with and without that tail on a fixed seed and you will find out in one sheet whether you have been typing it for two years for no reason.

Two Axes At Once, And When Not To

A proper XY plot takes a second variable down the vertical. Sampler across the top, steps down the side, and you get the interaction rather than two separate opinions. That interaction is genuinely worth seeing once, because samplers do not converge at the same rate and a step count that is generous for one is starving another.

The cost is multiplication. Six samplers by eight step values is 48 generations, and if you add a third axis with a plot script that supports it you are into the hundreds. Start with one axis, get a feel for the range, and only go two dimensional when you have a specific interaction in mind.

One practical note that saves a lot of wasted time: run your first grids at a lower resolution than your finished work. You are reading relative differences, not judging final quality, and a 512 wide grid answers the question a 1024 wide grid answers at a quarter of the compute. Confirm the winner once at full size afterward.

Reading The Sheet Without Fooling Yourself

Three habits separate a useful grid from a pretty one.

First, look at the sheet before you look at the labels. Pick the frames you like, then check what settings produced them. Reading the numbers first primes you to see improvement where the file name says improvement should be, and that effect is strong enough to survive knowing about it.

Second, do the whole thing again on a second seed before you commit. One seed can make a setting look decisive when the seed was doing the work. If the same column wins on two unrelated seeds, that is a finding. If it does not, you learned something more useful than a settings number.

Third, write the result down somewhere permanent. A line in a text file saying which model, which sampler, which step count, and which seed you tested on is worth more in three months than the grid image itself. This is exactly the sort of thing that belongs in a prompt library rather than in your head.

Where The Grid Lies To You

Now the argument against everything above, because the method has real limits and pretending otherwise is how people end up with a spreadsheet and worse pictures.

A fixed seed is a single sample. When you conclude that CFG 7 beats CFG 5, what you have actually established is that CFG 7 beat CFG 5 on that one noise pattern with that one prompt. Diffusion output varies enormously across seeds, and a two seed check helps but does not make this a controlled experiment in any statistical sense. Treat grid findings as strong hints, not laws.

The tiled sheet also flatters small images. Differences that are obvious at thumbnail size, particularly overall contrast and colour saturation, dominate your eye, while the things that actually decide whether a picture is usable, hands, eye alignment, texture at full resolution, are invisible at grid scale. More than one person has picked a high CFG column off a grid because it looked punchy and then discovered at full size that it had cooked every highlight.

And there is a subtler trap. Optimising one variable at a time finds a local answer, not the best combination. The sampler that wins at your current step count may not be the sampler that wins at the step count you would pick if you had chosen the sampler first. That is why the two dimensional version exists, and why the honest answer to what your best settings are is usually a small comfortable region rather than a point.

None of that makes the grid less useful than guessing. It makes it a tool with a known error bar, which is the only kind worth having.

Build one tonight. Take the prompt you have run four hundred times, lock the seed, sweep steps from 10 to 60, and find out how much of your render time has been going nowhere. Then delete one phrase you have never questioned and run it again with and without. Most people find at least one setting they had wrong and at least one word they never needed, which is a decent return for ten minutes and a fixed integer.