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]
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
Heck yeah, never tried doing it this way. will have to see what i can do with this :D Thanks
Oh wow, this is excellent and is going to help me a lot. Thank you very much for the tutorial!