How to refine lowres pictures on A1111
序
Flux1で盛り上がった近日の画像生成AIですが、今更レガシーの極みと言うべき処ながら、普段私が常用しているA1111とSD1.5による写真refine技を紹介します。
私が思う処、「これ」はForgeでもreForgeでもComfyUIでも、更にはSDXLでもSD3でも不可能です。私が知らないだけかもしれませんが、「この技」だけはA1111でMulitiDiffusionとSD15tileを使ってのみ、出来る芸当です。
以前、この記事でも触れましたが、SD1.5におけるControlNetのtileは、A1111でMultiDiffusion Upscalerと組み合わせた時に、「元絵を維持しつつ書き込み量を飛躍的に増大させる」という用途において最強の性能を持っています。
その後、記事にもあるようにSDXL用のtileモデルは開発されましたが、正直な処「書き込み量の増大」という一点において、SD1.5tileにはいまだ及びません。それ位、SD1.5tileの性能は凄いのです。そして、その性能はどういう訳かA1111でMultiDiffusionと組み合わせた場合に限って、完全に発揮されるのです。
私は、このただ一点を以てしても、A1111には存在価値があると考えている位です。特に人物の顔に対する書き込みにおいては、SDXL、SD3は勿論Flux1でさえ、A1111+MultiDiffsion+SD1.5tileには及びません。MultiDiffusionはComfyUIでも使用可能ですが、「この芸当」は出来ません。
Kakudai V1は、人体の肌の質感などは相当のクオリティに仕上がるのですが、特に全身絵などでは遺憾ながら顔はほぼ別人になってしまいます。更に言えば、顔の書き込みに関しては、同じSD1.5tileを使用しているにもかかわらず、A1111には遠く及びません。
尚、顔の別人化問題に関しては、原画への追随性を向上させた改良版を作成しています。
How to refine lowres pictures on A1111
下図はその例ですが、まずは元画像は是です。
パリ五輪女子ロードレース優勝、USA代表のKristin Faulkner氏の雄姿....とは言え低解像度の元絵を4倍拡大しました。ちなみに、私はいつもSNS等では「くりすてぃんさん」と呼んでいます。

私はこの5年間、サイクリングは男子よりも女子を中心にレースを視聴しています。近年は男子選手よりも女子選手の方が詳しい位です。
尚、現在の女子プロトンでは、ベテランの域ながら與那嶺 恵理選手が第一線で活躍を続けており、また既に引退していますが、J-Sportで女子サイクリングの解説を担当する萩原麻由子氏は、2015年に女子サイクリングの最高峰である"グランツール"Giro D'Italia RosaでStage優勝経験がある伝説の人です。
男女通じてグランツールでのStage優勝経験は 、日本人では萩原氏しか到達していない偉業です。しかも全日本チャンピオンジャージを着ての偉業です。日本ではサイクリング自体が超絶マイナー競技(ツール・ド・フランスしか知らぬ人も多い)である為、知る人しか知らぬ偉業ですが。
さて本題ですが、ほぼ忠実な元絵のまま高画質化されています。ウェアのロゴも同様です。肌の質感的な部分は、この手法では改善できない点は予め書いておきます。
(その部分の改善については後述します)

くりすてぃんさん、実はロード選手になる前のキャリアがなかなかすごい人です。
当時の最強メンバーを揃えたオランダ代表を破り、東京五輪で優勝したAnna Kiesenhofer氏も、ケンブリッジ大学修士卒でスイス連邦工科大学の現役ポスドク兼任、バリバリ一線級の数学者とかいうとんでもない人でしたが、くりすてぃんさんも大学はハーバード卒、卒業後はシリコンバレーのベンチャーキャピタルに勤め、プロ入り後も一年間は兼職だった…という、これまたとんでもない人です。
サイクリング選手としては…女子としては珍しい「逃げ」「独走」を勝ちパターンにしている人です。
女子プロトンでは、男子プロトンには一定数生息している「逃げ屋」という脚質の選手は余り多くありませんが、くりすてぃんさんは女子プロトンでは数少ない「逃げ屋」ですね。
女子プロトンに「逃げ屋」が少ない理由は、単に脚質だけの問題ではなく、プロトン内の様々な力学の関係性が男子と女子で同じではないことが大きいですが。
そして、我が永遠のヒーロー、ドーピングと戦い続けた真の意味でクリーンな王者、Greg LeMondの古い写真620pixel×410pixelも、4倍拡大でこの通りです。

フランスの英雄、Bernard Hinault御大の顔は微妙に変わってしまいましたが…LeMond氏は、まずまずの忠実度と再限度です。

下は、前述したKakudai V1 EX with ollama Ver.Ⅱよって処理した絵ですが、
改良によって相当良くなっていることがわかります。特に全身絵に関しては、KakudaiV1に軍配が上がるかもしれません。

…では、Kakudai V1 EX with ollama Ver.Ⅱがあれば、A1111は必要ないのか.…と言えば、そんなことは決してありません。「A1111でしかできない高画質化」というものがあるのです。
それは顔に特化した拡大と高画質化です。
上のように全身図を拡大する場合においては、Kakudai V1 EX with ollama Ver.Ⅱで顔の追随性がかなり向上したこともあり、A1111を使う理由は特にありません。
しかし、下のように顔にクローズアップした絵の場合は別です。
私が大好きな、日本が誇るロックバンド「ONE OK ROCK」のTAKAさんの低画質画像ですが…

顔に特化した拡大をする時、SD1.5+A1111+multidiffusion+controlnet_SD1.5tileの組み合わせは最強です。特に目の書き込み量増加は、SDXLでも、これと同じことは出来ません。ただ、その代償として肌のリアリティは完全になくなります。

では、具体的な設定方法ですが、まずi2iで下のように設定します。尚、当たり前ですがMulti Diffusion Upscalerは必須です。

尚、この手法を取る時、Pytorch2.3.1+xu12.1以前のライブラリーを使用している場合、下の記事に記述している改造は必須です。VRAM消費量に大きな差異が生じるからです。
アップスケーラーや倍率は適宜変更してください。


ControlNetはtileとcannyを指定します。tileだけでも行けます。追随性を強化したい時はcannyを追加すると良いでしょう。設定は初期値のままです。

FreeUも、私は常用しています。

プロンプトですが、定型として私はかなり記述しています。随時、好みに合わせて調整してください。品質系LoRAもかなり使用します。
(masterpiece, best quality:1.6), (exquisite:1.5), (16k, unbelievable absurdres, ultra high res :1.4), (RAW photo, portrait photography, realistic, photo realistic:1.4), (high-resolution, hyper-realistic:1.4), (impressively-detailed, ultra detailed, detailed face, detailed skin, naturalistic, painstakingly-detailed, photorealistic, precise, realistic, richly-detailed, sharp, skillfully-detailed, super-realistic:1.35),(perfect skin:1.1), (shiny skin:1.2),
BREAK
((beautiful face)), extremely delicate facial, (extremely detailed cg 16k wallpaper),an extremely delicate and beautiful, extremely detailed, intricate, hyper detailed, ultra high res, (detailed eyes, big eyes, black eyes), (detailed facial features),(detailed clothes features), HDR, 16k resolution, solo focus, looking at viewer,
,
BREAK
(perfect anatomy:1.1), (beautiful detailed face, perfect face, beautiful detailed eyes, double eyelid, long eyelashes:1.2), (realistic body, beautiful detailed legs:1.2), (2legs, 2arms, 4fingers and 1thumbs),lora:LowRA:0.2, Detailed Background,
BREAK
lora:more_details:0.4, lora:Shinyskin:0.3, (physically-based rendering, ray tracing:1.1), (Three-Point Lighting), huge filesize, amazing depth, rich colors, powerful imagery, psychedelic overtones, in-focus, ntricate, layered, lifelike, magnified, masterfully-detailed, multidimensional, multifaceted, multilayered, textured, well-defined, professional photograph, an extremely delicate and beautiful, extremely detailed CG unity 8k wallpaper, lora:GoodHands-vanilla:0.8,
wakame, easynegative, ng_deepnegative_v1_75t, (bad anatomy:1.5), (low quality:2), (normal quality:2), low resolution, lowres, lora:flat2:1.3, (inaccurate limb:1.3), [:(badhandv4:1.5):0.7], (bad-hands-5:1.5), negative_hand-neg, lora:Shinyskin-000018:-0.2, (BadDream, UnrealisticDream), (verybadimagenegative_v1.3:1.1), (grayscale),
BREAK
(missing leg, extra arm, extra leg:1.1), (missing hands, liquid fingers, split hands, missing fingers:1.1), interlocked fingers, bad arms, long body, long neck, extra digit, fewer digits, disconnected limbs, disfigured, disgusting, extra limb, extra limbs, floating limbs, missing limb, poorly drawn face, poorly drawn hands,
BREAK
pixelated, jpeg artifacts, (text), (logo), 2d, 3d, b&w, bad art, blur, blurry, cartoon, close up, deformed, illustration, kitsch, low-res, mangled, mutated, mutation, mutilated, noisy, old, out of focus, over saturation, oversaturated, poorly drawn, render, ugly, weird colors, badicturep, acnes, skin blemishes, bad_prompt_version2, tattoo,
BREAK
(spot:1.2), (mole:1.2), (freckles), (abs), (nude, nipple), beret, cap hat, hat, hair ornament,
これに下図の様にtaggerで分析したプロンプトを追加します。taggerは何故かTAKAさんを女性と認識していますが。そこは手動で直します。

この設定で生成します。
さて、この状態だと書き込み量の増加はともかく、肌の質感はどうにもできませんが、上記の改良型Kakudai V1と組み合わせると、かなりいい感じになります。

+Kakudai V1
下が、A1111で拡大した上図を、Kakudai V1改で再処理した絵です。かなり、肌の質感はリアルになります。

Kakudai V1改の場合、前述した通り顔の追随性をかなり向上させているので、全身絵の場合はA1111を介さずに直接KakudaiV1改にかける手もあります。そこは出来上がりの好み次第で私は使い分けています。

前述のくりすてぃんさんの絵も、A1111で拡大した絵に対してKakudai V1改で再処理をかけると劇的にリアル感は改善します。

Applied Methods
一つ、応用的な手法について解説します。
下図のように、Upscalerを無効化した状態で処理をかけても、強力なNoise Inversionにより、顔部分の書き込みを飛躍的に増大させることが出来ます。

私は、完成版の画像は常に8Kサイズ、4320pixel×4320pixelで仕上げていますが、この手法の場合、一度8Kサイズの画像迄何かしらの方法で拡大しておいて、Adobe Photoshop等のソフトを使って顔部分だけを切り取って、上の設定で処理を掛けます。
処理後に再度、処理した顔部分を元画像に貼り付け加工する手順です。
ControlNetの設定は、上と同様です。
この手法の場合、顔部分に限定するならば、上で解説したUpscalingとNoise Inversionを同時に行うよりも、更に質の高い書き込みが可能です。
但し、この手法の場合、VRAM消費がUpscalingと同時に行うよりも更に多くなります(8Kサイズ想定)。RTX4070 12GBの場合、A1111をcross attention設定で立ち上げた時、
(cross attentionについては以下参照)
メインメモリが128GBだとほぼ問題なく完走するのですが、64GBの時はかなりの高確率で、OutOfMemoryでコケます。
VRAM16GBクラスのGPU以上に関してはエラーが出ないと思われますが、RTX4070 12GB同等環境の場合は、上記事と以下記事ほ参照して、xformersを使用してください。
BGM
最後に、7年前私は「ここ」にいたんですよね。周りは皆、息子か娘の年代の若者たちばかりでしたが…TAKAさんの言葉に号泣していました。
