all 80 comments

[–]jd_3d[S] 69 points70 points  (35 children)

Here is my workflow that I've found works best for me. Please note when generating these high resolution images the generation time is long (15-25 min).

  1. Make sure you have the latest memory/speed optimizations from basujindal/neonsecret. You will need an RTX 3090 for 6 mega pixels, but slightly lower res will work ok for other cards.
  2. Start with txt2img (at 512x512 or 768x512) to create your image
  3. Switch to img2img tab (using AUTOMATIC1111 GUI), use SD upscale (tiled upscale) and use the image from step 2. Match the height and width to the input image size. This will generate 4x more pixels
  4. Repeat it again using #3 starting image for a total of 16x more pixels.
  5. Switch the mode from SD Upscale to Redraw Whole Image. Use #4 picture as starting image and do a native (2048x3072) image with variations using the X/Y Plot script, X type = seed (choose 5 seeds) and Y Type = Denoising values of 0.25, 0.4, 0.5
  6. Start the batch. Due to the high resolution it will take several hours to complete. Pick your favorite
  7. (Optional) Fine tuning in Photoshop

[–]pongmoy 7 points8 points  (7 children)

This is why ‘traditional artists’ who howl that this is not art are wrong.

Just like choosing the right canvas, colors and subject is a workflow to them, so it is with the process with AI.

It’s just a different brush.

[–]LiquidateGlowyAssets 6 points7 points  (5 children)

This is why ‘traditional artists’ who howl that this is not art are wrong.

As someone who's never paid much attention to "art" before, it's just hilarious. This makes art accessible to a far wider audience, they're just upset because they don't get to gatekeep it any more.

[–]UnknownEvil_ 9 points10 points  (4 children)

They're upset because they spent hundreds to thousands of hours learning a skill like painting and people can have a machine do it for them for free by typing in some words, which is it's own skill, but doesn't take nearly as much time or dedication to improve at as painting

[–]Nms123 1 point2 points  (3 children)

It’s not like painting is going away. Ultimately it’s gonna be a while until computers can make anything that resembles the textures you can get with brushstrokes

[–]UnknownEvil_ 0 points1 point  (2 children)

Yes physical things are a long way off I suppose, but digital artists are doomed

[–]tigerdogbearcat 0 points1 point  (1 child)

IDK all the image generators I have worked with deliver amazing images but getting specifically what you want can be tricky. If you are flexible about what you want AI art gen is cheaper, faster, and better than what digital artists can do but if you have really specific needs the AI art generators are still a way off. With the exponential rate AI art gen software is advancing I may soon be wrong. Either way digital artists may have to incorporate AI image generators into their process to remain competitive.

[–]UnknownEvil_ 0 points1 point  (0 children)

Image inpainting helps a lot with the very specific desires. It's not perfect but it can work given a few tries.

[–]jd_3d[S] 1 point2 points  (0 children)

I totally agree. These new tools open up the world of art to more people and that is probably very threatening to some traditional artists.

[–]acidofrain 4 points5 points  (0 children)

Thanks for the writeup!

[–]chekaaa 2 points3 points  (1 child)

out of curiosity what settigns did you use for the AUTOMATIC1111 GUI SD upscale?

[–]jd_3d[S] 5 points6 points  (0 children)

I use LMS w/ 50 sampling steps, tile overlap of 64 on first round and 96 on second. Upscaler of Real-ESRGAN 2xplus.

[–]VanillaSnake21 2 points3 points  (1 child)

So this will only work with image to image, not txt2img? Also why do you need to start with txt2img, can you just input any large image?

[–]jd_3d[S] 6 points7 points  (0 children)

Correct, txt2img doesn't work well at high resolutions since it was trained on 512x512 images. You end up getting repeating patterns. That's why you have to use img2img. You also don't need to start with txt2img if you already have an image you want to make at a higher resolution.

[–]guchdog 0 points1 point  (2 children)

For #3 I'm only getting 2x upscaling, I don't know where to change this. Do I mess with the width & height? I can only go max 2048 x 2048.

[–]jd_3d[S] 1 point2 points  (1 child)

It's a bit confusing but 2x upscaling = 4x more pixels, so I think you are doing it right. If you want to go above 2048 edit the ui-config.json in the main folder:

"img2img/Height/maximum": 3072,

"img2img/Width/maximum": 3072,

[–]guchdog 0 points1 point  (0 children)

Oh yeah that’s right, that always trips me up. Thanks.

[–]guchdog 0 points1 point  (2 children)

And for #5 are you using SD upscale with the x/y plot script enabled? When I go through that it just outputs an upscaled image. No x/y plot. If I choose redraw image, I get the output but I can't run it with that seed and denoise strength because the max I can go is 2048 x 2048.

[–]jd_3d[S] 0 points1 point  (1 child)

I edited my comment to add a few more details. For #5 you switch back to 'redraw image'. Do you have a 24GB VRAM card? If so, make sure you get the memory enhancements here:

https://github.com/Doggettx/stable-diffusion/tree/autocast-improvements

If you want to use it in another fork, just grab the following 2 files and overwrite them in the fork. Make a backup of them first incase something goes wrong

ldm\modules\attention.py

ldm\modules\diffusionmodules\model.py

[–]guchdog 1 point2 points  (0 children)

Alright this is awesome. I got it to work on a smaller scale. Thank you for this writeup and links!

[–]Appropriate_Medium68 0 points1 point  (2 children)

Can you explain number 4 and 5 ?

[–]jd_3d[S] 1 point2 points  (1 child)

So number 4 is the same as number 3 (where you choose the SD Upscale option on img2img), you just use the higher resolution image you created in step 3 as input for another upscale round. You will want to double the height and width pixels for that step. Step 5 is also img2img (this time you don't use SD upscale, choose redraw whole image) and at the bottom for scripts you choose the X/Y Plot option and then you can choose what settings to use. It's just an easy way to run a batch with various settings, but you could also do it manually. Let me know if you still have questions.

[–]RetardStockBot 0 points1 point  (0 children)

Could you explain what X/Y Plot script does exactly?

edit: nevermind, figured it out by just selecting it xd

[–]RetardStockBot 0 points1 point  (0 children)

Maybe could make a video guide? My output at step #3 is a mess and it seems there are a lot more questions by other people :)

[–][deleted] 0 points1 point  (2 children)

Is there a more detailed write up you can refer me to, to help me understand this process ? I'm not familiar with Automatic1111 GUI. Thanx!!

[–]jd_3d[S] 0 points1 point  (1 child)

I highly recommend getting the Automatic1111 version. See the install instructions here: https://github.com/AUTOMATIC1111/stable-diffusion-webui

Once you get it setup I think my steps above will make a lot more sense but let me know if you still have questions.

[–][deleted] 0 points1 point  (0 children)

You are probably right. Thanx for the push!

[–]jupitercouple 13 points14 points  (5 children)

I can’t speak from much experience about SD generated photos, but I am a print lab owner and see many times customers trying to print a 6,000px photo from topaz gigapixel and it doesn’t print as well as they expect. Adding pixels does not make an image higher quality, especially if one doesn’t know how to properly upscale. I’m very curious and interested to see the new upscaling possibilities now with AI technologies I am sure they are going to be so much better and this greatly excites me as a print lab owner.

[–]jd_3d[S] 9 points10 points  (3 children)

I know what you mean, often with SD generated images (at lower resolutions) people upscale them with ESRGAN (or topaz gigapixel) but I generally don't like the output it generates. It often creates a lot of artifacts and doesn't really add detail. That's why native high res output (like in my new workflow) from SD is so interesting to me.

[–]i_have_chosen_a_name 5 points6 points  (2 children)

It works much faster to upscale with gigapixel early in the process so you have a giant canvas, then use a photo editor to cut out 1024x1024 or 2048x2048 squares and feed them individually to img2img with a prompt to get more detail.

[–]gibsonfan2332 0 points1 point  (1 child)

Just curious, how do you put the cut pieces back together in such high resolution without there being obvious lines? I know SD upscale blends them back together nicely if you get the right settings. But how do you do it manually after feeding them through individually?

[–]i_have_chosen_a_name 1 point2 points  (0 children)

I make the border areas of old and new opaque and blend them together then do img2img on bigger and bigger squares and also use dalle2 canvas sometimes. there is suppose to be inpainting with mask but I can’t get it to work properly.

[–]i_have_chosen_a_name 0 points1 point  (0 children)

I use gigapixel half way through my process to do 4x or 8x on what I’m working on. But then I cut everything up in 8x or 16x squares and work on some of them to get more details, not just upscaling I tell the ai what I want to see. I’ll also use dalle2 and midjourney at this stage. Eventually I’ll separately feed 2048x2048 squares In to img2img with a very high init img strengt so there are hardly any changes and then Stich everything together and do one more 2x in gigapixel. Those last passes are to get more contingency between all the squares.

[–]1Neokortex1 4 points5 points  (7 children)

So haunting and it makes you curious to find out what these hooded figures are doing, excellent job man, workflow is not active yet but looking forward to it👍🔥✌️

[–]jd_3d[S] 3 points4 points  (5 children)

Thank you! Yes, I love this kind of artwork and as someone with not much artistic talent it is amazing to me that I can create such a thing. I love zooming in and looking at various parts of the image. You'll notice lots of little creatures and things you just don't get a lower resolutions. BTW, workflow writeup is now posted, let me know if you have any questions.

[–]1Neokortex1 4 points5 points  (4 children)

Thanks dude, gonna check it out and when I head home Im gonna finally install Automatic1111 fork when I get home, thanks for the inspiration👍

[–]jd_3d[S] 3 points4 points  (3 children)

Yes, I was on hkly's since the beginning since I was used to it and only switched a few days ago to Automatic1111, the features in Automatic1111 are really nice and it seems to be updated more frequently.

[–]SandCheezy 0 points1 point  (2 children)

Are you able to have them both on your pc or do you have to clean install the one you want again?

[–]jd_3d[S] 2 points3 points  (1 child)

Yes, I have them both on my pc. I just installed them in separate directories and duplicated everything (wastes some space, but keeps it cleaner/separate).

[–]SandCheezy 0 points1 point  (0 children)

Thanks for the response.

Supposedly, hkly is coming out with a full overhaul and I was double checking of making sure I could still leave it there for the next update, before attempting.

[–][deleted] 1 point2 points  (0 children)

Looks like something you'd see in a Dark Souls opening cutscene.

[–]Evnl2020 2 points3 points  (3 children)

Nice result! What was the prompt for this?

[–]jd_3d[S] 9 points10 points  (2 children)

The initial prompt was something like this: a render of a frozen landscape with incredible detail, surreal, with creatures by zdzisław beksinski and salvador dali
But note there's quite a bit of img2img work after the initial generation (and photoshop work) so it changes things quite a bit.

[–]Evnl2020 2 points3 points  (1 child)

Somehow beksinki in a prompt always produces good results.

[–]i_have_chosen_a_name 0 points1 point  (0 children)

Congrats you have now been made a mod of r/midjourney

[–]GrandAlexander 2 points3 points  (1 child)

This is terrifyingly gorgeous.

[–]jd_3d[S] 1 point2 points  (0 children)

Thank you!

[–]allbirdssongs 2 points3 points  (0 children)

Am i the only one who thinks this is a boring design?

[–]Kolinnor 1 point2 points  (0 children)

You should send this to the Cryo chamber youtube channel, I bet they'd use this as their next thumbnail !

[–]crappy_pirate 3 points4 points  (3 children)

i'm spitting images out at a resolution of 32768x16384 that will print off at slightly larger than a meter wide at 600dpi or slightly less than 3 meters wide at 300dpi. that figures out to something close to 600 megapixels and the files are almost half a gigabyte each in the png format i'm working with.

i have an i9 CPU with 32gb of RAM and an RTX2070 with 8gb VRAM

i render the files at 960x512 then send them thru real ESRGAN plus x4 then ruDALL-E ESRGAN x2, then another real ESRGAN plus x4

[–]RetardStockBot 0 points1 point  (2 children)

What fork are you using? AUTOMATIC1111 doesn't seem to have ruDALL-E ESRGAN x2 upscaller option

[–]crappy_pirate 2 points3 points  (1 child)

visions of chaos under windows, believe it or not. the program gets updates something like 3 or 4 times per week, but requires a very specific version of cuda and cudnn to be able to work properly.

once you've got the machine learning section of the program options working it opens up a bunch of otherwise unavailable options like deep dream, text to speech, background removal and super-res. you can even get it to generate writing prompts (kinda /r/DarkTales worthy sometimes) and .mid files for music.

[–]Mixbagx 0 points1 point  (4 children)

Is there a difference between esrgan upscale and spending 15 to 25 mins to get an original high resolution image?

[–]jd_3d[S] 1 point2 points  (3 children)

Yes, in general I haven't gotten great results with esrgan especially when trying to upscale a lot. It can't really add new detail that isn't present in the initial image whereas my workflow will add new detail. But you can judge for yourself as here is a purely ESRGAN upscaled version of my image (starting from the 768x512 image). https://i.imgur.com/dF98tjz.jpg

Make sure to look at it on a monitor screen if you can or zoom in to compare the detail). EDIT: Right-click on the imgur image and choose open in new tab to see the full res (not sure how to link to it directly).

[–]Mixbagx 0 points1 point  (2 children)

Hey, I thought changing the resolution changes the image that we get from sd. I tried it on Dreamstudio and everytime I changed the resolution keeping the seed same, the image changed. I might have done something wrong.

[–]jd_3d[S] 2 points3 points  (1 child)

With txt2img, yes, changing the resolution gives you a completely different picture even for the same seed. That's why I outlined this new workflow (see my workflow comment) using img2img to keep the image nearly the same but adding in lots of detail and resolution.

[–]Mixbagx 0 points1 point  (0 children)

Ohh :)

[–]Inverted-pencil 0 points1 point  (6 children)

What version is that and how much vram is needed?

[–]jd_3d[S] 1 point2 points  (5 children)

SD v1.4 w/ AUTOMATIC1111 latest. 24GB VRAM.

[–]Inverted-pencil 0 points1 point  (4 children)

Then NVIDIA RTX 3080 is not enough?

[–]jd_3d[S] 0 points1 point  (3 children)

3080 should be able to 2048x2048

[–]Inverted-pencil 0 points1 point  (0 children)

Alrigt i try it out.

[–]Inverted-pencil 0 points1 point  (0 children)

I cant can't even do 1480x960