4K Ultra HD remaster blueray

Un upscaler qui marche enfin grâce à Controlnet v1.1 « tile » https://github.com/Mikubill/sd-webui-controlnet/issues/1033 combiné aux upscalers classiques (sous-tiroir « Scripts » dans img2img de A1111. Apparemment UltraHD est celui recommandé qui marche). Un tuto youtube par exemple: https://www.youtube.com/watch?v=EmA0RwWv-os

Contrairement au resizer utilisé dans When Life gives you Lemons qui hallucinait la totalité du prompt dans chacun de ses morceaux redimensionnés, et garde aussi des frontières plus ou moins visibles dans son assemblage par morceaux, ControlNet garde le contexte local pour ne pas créer des visages fantômes absolument partout. Il va quand même recréer une nouvelle image et donc une partie des détails initiaux seront perdus pour être recréés différemment.

Image 2 Image -> resize

On part d’un prompt simple et d’un petit Textual Inversion sympa trouvé sur civitai Style-PaintMagic pour une image de base un peu nulle trouvée en quelques essais de seed, en résolution 512×768 classique

concept-art of a beautiful elf  girl with thick flowing  hair in style-paintmagic, detailed, high quality

Un point de départ intéressant mais anatomiquement un peu bancal, quelques coups de img2img pour trouver autre chose (peu réaliste aussi mais licence artistique tout ça)

Maintenant on fait 2 étape de redimensionnement, par X2 à chaque fois.

Denoising strength: 0.4, Mask blur: 4, Ultimate SD upscale upscaler: ESRGAN_4x, Ultimate SD upscale tile_width: 512, Ultimate SD upscale tile_height: 512, Ultimate SD upscale mask_blur: 8, Ultimate SD upscale padding: 32, ControlNet Enabled: True, ControlNet Preprocessor: tile_resample, ControlNet Model: control_v11f1e_sd15_tile [a371b31b]

Première version, 1024×1536:

Puis on recommence pour le final en 2048×3072 (à noter que des caractères coréens sont quand même apparu près de la fausse signature dans le coin, ainsi qu’un bout d’œil et de visage sur le bord gauche)

(cliquer sur l’image pour ouvrir en plein résolution) (ah, on me dit dans l’oreillette que WordPress a redimensionné de lui même le 2K d’origine en seulement 1K, donc pas de bol)

Sinon, quelques détails extraits (l’orientation de la bouche par rapport au visage mériterait d’être retravaillé, et l’oreille est probablement trop petite)

Pour comparaison, la même chose depuis l’image source avant redimensionnement et création de détails:

Image infinite resize par section

Parfois toute la scène n’est pas utile à détailler, ou bien on veut faire un effet de zoom où seule la zone finale a besoin d’être agrandie.

Dans les deux cas, il suffit de commencer par une image de base, puis de successivement la cropper dans un éditeur externe pour redimensionner cette partie dans img2img, et recommencer autant de fois que nécessaire. À chaque étape, on peut faire des ajustements secondaires comme de l’inpainting ou des corrections manuelles avec un éditeur classique comme gimp, avant de continuer.

À la fin on peut recoller les morceaux les uns par dessus les autres sous gimp avec un redimensionnement classique de calque pour tout ce qui n’a pas été retravaillé.

Ici on part d’un truc absolument immonde en txt2img en résolution 512×768:

Un premier upscale global en x2 avec au passage du denoising et du reprompting pour corriger la partie la plus cauchemardesque du visage (tout en restant difforme mais ça se réglera plus tard)

Ensuite, découpage de la partie centrale du personnage pour en extraire une image de nouveau en 512×768 qu’on va upscaler:

Et ainsi de suite, en rajoutant un ajustement de la position de la tête avec un déplacement au lasso grossier avec gimp et un peu d’inpainting pour essayer de dégager les cheveux du visage (sans trop insister longtemps sur cet essai rapide, on va dire que le sujet a bougé pendant que la pellicule a capturé)

Pour rappel, on partait de ça au tout début:

Image Finale: (attention, jpeg de 4096×6144 et 5.5MB). Oui, on voit encore un peu les bords des différents calques que je n’ai pas partout gommé en fondu progressif.

Une vidéo avec zoom automatique (6MB)

Text 2 Image -> [Tiling]+highres Fix

Autre option apparemment: rester en mode « classique » text2image, avec les paramètres de création direct en grosse résolution mais avec tiling, et mettre une image de référence dans l’onglet source-image de controlnet. On ne fait donc pas grandir une image existante mais on en crée une « de zero » directement à la taille finale, en étant simplement guidée par une image de référence qui sera fortement modifiée.

En vrai ça ne change pas vraiment grand chose par rapport à un img2img rescalée, l’interface ne fait que cacher les deux étapes « txt2img puis img2img » derrière une checkbox unique.

Inconvénient, il reste des contrainte de taille maximale (out of memory) et beaucoup d’attente pour savoir si le résultat sera intéressant (puisqu’il est assez random comme une génération de seed habituelle)