I was trying to upscale this image in img2img to 1024x1024 and was really struggling. I couldn’t preserve the patterns in her gown and for some reason the gown wouldn’t stay in her right hand, it’d fall against her leg, and was longer for some reason. Trying to force-correct these things often ended up with distortions. Any ideas?

Example of fail

Here’s the generation for the 512x512 above:

Prompt:

extremely detailed CG, high resolution, beautiful detailed eyes, Corinna, (french braid:1.2), adorable, standing, looking back over her shoulder, cheerful, smile, thin legs, sheer nightgown

Negative prompt:

3d, 3d render, painting, digital painting, watermark, sepia, black & white, NG_DeepNegative_V1_75T, EasyNegative, verybadimagenegative_v1.3, bad_pictures, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), (ugly:1.33), bad face, bad fingers, bad anatomy, spot, (poorly eyes:1.2), pubic hair, pubes, hairy, missing fingers, long hair, ((butt)), ((thick legs))

Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 2809846013, Size: 512x512, Model hash: 0c874641a9, Model: myneFactoryAscendance_v20, Version: v1.4.0

Used embeddings: easynegative [119b], verybadimagenegative_v1.3 [89de]

  • Whompus@burggit.moe
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year ago
    Here's your image upscaled 4x and with a fixed face

    The hands and panties normally would be fixed via inpainting before upscaling, but that’s not what this is about.

    This was done in a single img2img generation using a few extensions: ADetailer, Multidiffusion Upscaler, and ControlNet. I left the prompt and negative prompt blank, relying on ControlNet Inpaint to keep the image consistent. Multidiffusion (with support from ControlNet Tile) did the upscaling, and I pasted your prompt into ADetailer to fix the face.

    Image metadata

    Steps: 20, Sampler: Euler, CFG scale: 7, Seed: 2809846013, Size: 2048x2048, Model hash: 0c874641a9, Model: myneFactoryAscendance_v20, Denoising strength: 0.5, ADetailer model: face_yolov8n.pt, ADetailer prompt: "extremely detailed CG, high resolution, beautiful detailed eyes, Corinna, (french braid:1.2), adorable, standing, looking back over her shoulder, cheerful, smile, thin legs, sheer nightgown", ADetailer negative prompt: "3d, 3d render, painting, digital painting, sepia, black & white, easynegative, verybadimagenegative, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), (ugly:1.33), bad face, spot, (poorly eyes:1.2)", ADetailer confidence: 0.3, ADetailer dilate/erode: 32, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer use inpaint width/height: True, ADetailer inpaint width: 512, ADetailer inpaint height: 512, ADetailer version: 23.7.5, Tiled Diffusion upscaler: 4x-UltraSharp, Tiled Diffusion scale factor: 4, Tiled Diffusion: {"Method": "MultiDiffusion", "Tile tile width": 96, "Tile tile height": 96, "Tile Overlap": 8, "Tile batch size": 4, "Upscaler": "4x-UltraSharp", "Upscale factor": 4, "Keep input size": true, "NoiseInv": true, "NoiseInv Steps": 10, "NoiseInv Retouch": 1, "NoiseInv Renoise strength": 1, "NoiseInv Kernel size": 64}, ControlNet 0: "preprocessor: inpaint_global_harmonious, model: controlnet11Models_inpaint [be8bc0ed], weight: 1, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: True, control mode: ControlNet is more important, preprocessor params: (512, 64, 64)", ControlNet 1: "preprocessor: tile_resample, model: controlnet11Models_tileE [e47b23a8], weight: 1, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 1, 64)", Version: v1.4.0

    • Nobu@burggit.moe
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Heck yeah, never tried doing it this way. will have to see what i can do with this :D Thanks

    • Pink Bow@burggit.moeOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Oh wow, this is excellent and is going to help me a lot. Thank you very much for the tutorial!

  • Nobu@burggit.moe
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    1 year ago

    You can always try upscaling without re-rendering the whole image. It will stay the same, but upscaled to a higher resolution. This is the method i use to upscale to big resolution.

    example:

    The above image has a resolution of: 5120 x 2880

    Initial render was 512 x 768. So it keeps the whole image intact, no changes, but does the upscale on it. Mind you, any imperfections will stay in this method.

    If you truely want to upscale with a re-render you can expect the image to slightly change. I never had luck keeping an image to stay the exact same when upscaling using img2img

    • Pink Bow@burggit.moeOP
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      Perhaps I’m doing things wrong, but I want the image to change slightly. To me, her face looks way better in the img2img, even if other things got changed. Perhaps I need to work on getting the txt2img to render more correctly rather than using img2img as a crutch.

      • Nobu@burggit.moe
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Correct! you want to do it in txt2img first (render really good image). only THEN do you wanna upscale it (not via img2img as it will take a shit ton of time and change the image slightly). u want to do it via extras tab then, and then choosing a method to upscale. i can tell you exactly what you need, how to do it in future if u want. go with you step by step