This massive 4096×4096 px image was created with Midjourney—without any upscaling—using a technique I call ”super-tiling,” which combines tiling with inpainting. How does this work? First, some background.

Basic Super-Tiling

Let’s say you want to create “Where’s Waldo?”-like artwork: intricate, detailed, expansive, and with a hand-drawn look. After trial and error, you might wind up with this prompt, and 1024×1024 image:

This is decent, but how could we make it more detailed and more expansive? We might try the

Zoom Out 2x

button.

However, if you look closely, you can see that the expanded art looks slightly different from the square in the center—the original image. Furthermore, at unchanged 1024×1024, this has reduced the resolution of the original image at center, which is the opposite of what we really want.

Similarly, if you try using outpainting (the four bottom buttons:

), though resolution is preserved, the new outpainted areas tend to have slightly different styles.

So let’s try tiling! Using the same original prompt and adding the --tile parameter, here’s what we might get (displayed in tiled fashion):

Copied!
in the style of Where's Waldo, by Martin Handford, an incredibly detailed satellite view isometric color cartoon line art drawing of people at the beach, colorful  --v 5.2 --style raw --tile
Standard tile

Now we’re getting into “Where’s Waldo?”-like territory! However, it’s clear at a glance that this is a tiled image. The distinctive hook-shaped inlet in the center of each tile is particularly obvious. Ah-ha: what if we use inpainting to change the inlet?

To do this, we click on the

Vary (Region)

button.

ⓘ Note you may need to use a desktop browser to use this feature.

This brings up the Midjourney editor window. We then click the rectangular selection button in the lower left, and click & drag a box over the inlet. (The upper left

button is Undo, if needed).

We leave the prompt as-is, and press the arrow to the right of the prompt to proceed. Here is the generated result:

It worked!—and MJ has conveniently pre-assembled 4 variations into a larger tile (which we can save directly if we want)! All the inlets are changed, and the images still work as tiles, since we didn’t change any of the outer edges. It’s less obvious that it’s a tiled image now, but there are still some things which give it away, such as the red raft with the orange & yellow umbrella:

What if we inpaint this away as well?

Let’s go back to the original result, hit the

Vary (Region)

again, and this time, draw a box not only over the inlet, but over the red raft.

ⓘ Note: in some browsers, the previous box we drew will already be visible, so we can just add the new box.

But wait—see that big red umbrella at right center? That’s pretty noticeable as well. Let’s back up: press the

Undo twice. Now let’s drag a box over the *whole middle* of our image—why not? Let’s leave the outer edges alone, so our image will still be tileable:

Use the Neat Magic Toggle to switch between Standard and Super-tiles!

Standard tile
Super-Tile

Success! Here we have the detail and size we want, and importantly, it doesn’t look obviously tiled—it looks like a single 2048×2048 px image.

Compared with our original tile, we’ve effectively doubled the detail/resolution. Furthermore, this large image is itself tileable—and hence the name...

Super-Tiling

Here are more examples, comparing original small tiles with inpainted larger super-tiles:

Recap: Basic Super-Tiling

1.

Create a tileable image using --tile parameter.

2.

Use

Vary (Region)

to inpaint the interior, leaving the outer edges alone.

Directional Super-Tiling

What we have done so far is to inpaint the center of a tile, leaving its outer edges tileable—highlighted here in green:

⬆︎

So long as we preserve its orientation, we can combine any number of these tiles in any configuration:

But let’s say we want to tile ONLY in certain directions—like making a wide panorama. Instead of inpainting the center, and preserving ALL the outer edges, technically we only need to preserve the edges that will connect to other tiles—in this case, the left and right edges, as such:

⬆︎
⬆︎
⬆︎

Here’s an example: let’s make a Super Mario Bros.-inspired panorama! Here, after many rerolls, is good starting image, with 2 copies tiled horizontally. It would be nice if the --tile parameter had vertical/horizontal-only options, but alas…

And here’s how we’ll use

Vary (Region)

, inpainting everything except the left and right edges:

As you can see, the images successfully tile horizontally, but the style and perspective and scale all change too much!

To remedy this, let’s repeat the inpainting, but this time, preserve some bits and pieces here and there, to give MJ more clues about the style we want to preserve:

And the result:

Much better! There are still some odd bits here, but if we select 2 of these, clean them up a bit outside of MJ, and combine them with the original tile, we can get the final Mario panorama below. Some of the details we preserved noticeably repeat, but it’s pretty darn good.

Super-Tile

As you can see, it's an effective method for adjusting the 'sharpness' in your image and taming styles (whether tuned or not) that tend to be excessively detailed.

/tune
prompt
elaborate complex intricate cybernetic mechanism. Cords, wires, slots, LED lights, layers of electronics. 1920s scientific photograph with grid overlay, marks and notes --chaos 20 --v 5.2

Stop

For this test, I selected eight style directions from the set, aiming for more illustrative images, even though most were quite far from Miyazaki’s distinctive style:

Here are the results of applying this surprisingly consistent style to some of the benchmark prompts:

Vertical Super-Tiling

We can do the same thing but in a vertical direction to make very tall images. Namely, we inpaint everything except the top and bottom edges, as such:

⬆︎
⬆︎
⬆︎

Let’s say we want to make a semi-dystopian stack of mobile trailer homes:

It won’t do to have multiple mountain horizons in our vertical panorama, but we’ll inpaint that area out anyway. Let’s leave some of the pink/purple sky untouched, so MJ isn’t tempted to inpaint additional trailers floating in the sky. Here’s how we can draw the selection boxes in

Vary (Region)

.

And here’s one possible result, after assembling:

Re-aligned Standard tile

One note for generating ‘tall stacks of stuff’-type tileable images: because of the way the --tile mechanism works, oftentimes MJ will give you results that are shifted relative to what you want, such as this:

Fortunately, it’s pretty easy, in any graphics editor, to manually copy and paste and realign the image as you like, such as in this case, where the image has been duplicated and shifted horizontally by 570 pixels:

However, this complicates the inpainting step of super-tiling, because we can only inpaint the original version that MJ outputted directly, NOT our fixed version—and therefore we now must preserve the left and right edges, so we can still shift and correct the variations it will give us. Here is how we might use

Vary (Region)

here, again saving some areas of sky and cloud to make sure nothing is inserted there:

Recap: Directional Variation Tiling

1.

Create a tileable image using --tile parameter.

2.

Based on how the tiles will be assembled, determine which inpainting patterns will be needed. Preserve edges where tiles connect with each other.

3.

Use

Vary (Region)

to inpaint everything except the left and right edges (for a panorama), or the top and bottom edges (for a tall image).

4.

Omit certain bits from inpainting if needed to preserve style/scale/etc.

Maximum Variation Tiling

In the sections above, we have used the following patterns for making tiles. Again, the green represents edges we have NOT inpainted—the edges we can join together:

⬆︎
⬆︎
⬆︎

If we wanted to make 2048×2048 px square artwork, we could of course use 4 general-purpose tiles:

⬆︎
⬆︎
⬆︎
⬆︎

Here is one example original tile, and the result after inpainting:

Standard tile
Super-Tile

As intended, the 4 resulting tiles are quite different, except for their outer edges. But what if something on those outer edges bothers us? Such as, let’s say, these white stairs at the upper-right of each tile:

Well, we said before that we need to preserve only those edges that connect with other tiles. Technically, in this 2x2 super-tile, we could reduce our preserved green edges to only these below, eliminating 2 of 4 of those white stairs:

⬆︎
⬆︎
⬆︎
⬆︎

Things to note

Four different inpainting patterns would require using

Vary (Region)

four times.

This would eliminate the ability of the final image to function as a super-tile (to be tileable itself).

If we go ahead and use

Vary (Region)

four times, making one batch of upper-left tiles, one of upper-right tiles, and so forth, and then choose our favorite tile from each batch, and finally assemble them, we can get:

This has noticeably more internal variation than the original, and no more white stairs at the very top.

Of course, if we’re going to make four batches of inpainted variations, we could also change the inpainting prompt! We could make a quadriptych of the four seasons:

On a different note, why stop at a 2×2 square? Let’s try 3×3:

⬆︎
⬆︎
⬆︎
⬆︎
⬆︎
⬆︎
⬆︎
⬆︎
⬆︎

Of course, this would require nine batches of inpainting if we want maximum variation! But let’s look at the difference between a assembly of a Standard tile, vs. an assembly made according to the above pattern using Super-Tile:

The first looks like a tiled image, while the second looks like a super-detailed 3072×3072 px image! Here are some more examples with maximum variation:

These extra steps to yield maximum variation do take considerably more time and effort than the simple center-inpainting approach, but perhaps there are occasions when it is worthwhile: making large poster-prints, video game maps, and many, many other applications.

Recap: Maximum Variation Tiling

Create a tileable image using --tile parameter.

Based on how the tiles will be assembled, determine which inpainting patterns will be needed. Preserve edges where tiles connect with each other.

Use

Vary (Region)

to generate tiles of each pattern needed.

Omit certain bits from inpainting if needed to preserve style/scale/etc.

Super-Tiling—tiling plus inpainting—is a powerful combination, and with some experimentation, it can let you expand the size and shape and detail of what you create with Midjourney.

Give it a try yourself—happy experimenting!

— Gordon Au (aka WorldOfDepth)

/discuss

If you like our guides and studies, please, consider supporting us. It's thanks to our Patrons that we are able to maintain and develop Midlibrary, create better educational content, and keep it free for all!

Support Midlibrary on Patreon! →

All samples are produced by Midlibrary team using Midjourney AI (if not stated otherwise). Naturally, they are not representative of real artists' works/real-world prototypes.

We'll be grateful for shares and backlinks!

Ver. 2.5.9

Andrei Kovalev's Midlibrary
Midlibrary by
Midlibrary.
Sam Guay
Andrei Kovalev's Midlibrary
Suggest a style

Midlibrary Catalog grows largely through the contributions of our Community.
Thank you for taking time to share your suggestion!

THANK YOU!

Your submission has been received. 

We will now test it and add it to Midlibrary Catalog if Midjourney recognizes the suggested style(s).
In case you left your email, we will notify you when it happens!


Something went wrong while submitting the form. Please, check that you filled all fields.
We're here to help! If you're unable to resolve the issue, please, contact us.
Report a bug

We do our best to keep this website running as smoothly as possible.
However, stuff happens. Thank you for letting us know about it!

THANK YOU!

Midlibrary Groundskeeper has been notified about the issue
and—if you left your email—will come back to you ASAP.


Onward to Midlibrary →
Something went wrong while submitting the form. Please, check if you filled all fields.
We're here to help! If you're unable to resolve the issue, please, contact us.
Subscribe to Midlibrary Newsletter

Every week we publish a new Midjourney study and a new Editor's Pick.
Receive our newsletter to never miss an important Midlibrary update!

After you subscribe, you will receive one email weekly. We never share your email with anyone outside our team and infrastructure. Don't worry, after signing up, you can unsubscribe from our newsletter anytime.

Thank you for subscribing!

IMPORTANT

  • Please, make sure to add [email protected] in your mailer White List.
  • If you don't receive a newsletter by Sunday morning: please, check your Spam folder.
Onward to Midlibrary →
Something went wrong while submitting the form. Please, check that you filled all the fields.
We're here to help! If you're unable to resolve the issue, please, contact us.
Rename Collection
Create new Collection
Personal Libraries
are available to our
Patreon Community
Andrei Kovalev's Midlibrary Patreon Community

Check out the benefits of becoming a Midlibrary Patron ↗︎

You have just became a Patron, and cannot log in?
1. Please, allow our Technical Department up to 24 hours to set up your Personal Library.
2. You may be using different emails for your Patreon and Discord accounts. If that is the case, please, send your Discord email to [email protected].
3. If you are still having issue, please, inform us via Bug Report form.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.