![見出し画像](https://assets.st-note.com/production/uploads/images/110262324/rectangle_large_type_2_9afc76df255c475615faf2c13ddb8274.png?width=1200)
生成AIを活用してFFXIVスクリーンショットを高精細に加工する方法~写実風編~
前書き
Stable DiffusionのControl Net「Tile Resample」を使用してスクリーンショットから加筆加工したようなイメージを作成することが目的です。
![](https://assets.st-note.com/img/1688878302305-6fcpP6LY2j.jpg?width=1200)
準備
Stable Diffusion web UI
ローカルでもGoogle Colabでもいいのでこちらを準備してください。(ローカルの方が何かと融通が利きます。)
インストール方法はいろんなところで紹介されている思いますので検索から探しましょう。(できるだけ新しい記事を参考にするとよいかと思われます。)FFXIVをPC版で遊んでいる方は動作スペックは満たしていると思われます。GPUメモリ8GB以上であれば下記の作業は同様に動作するはずです。
2024年01月にマシンの再インストールをしたのでそのときの覚書を記事にしました。なんとインストールだけならダブクリを2回するだけで終わるようになってます。時代は進みました。
Photoshopβ版
細かいところで最新のPhotoshopの機能「生成塗りつぶし(ジェネレーティブ塗りつぶし)」を少々、AIガチャからの解放の為に「被写体の自動合成」を大量に利用します。他の画像編集アプリケーションを利用される場合はその箇所は読み飛ばすか読み替えるかして対応をお願いします。AIどうだこうだという記事ですが作業時間のほとんどはPhotoshopで画像を編集している時間になります。
30日間は無料体験版が利用できますのでそちらを利用していい感じなら購入というのもいかがかと。SS加工にしか利用しないのであれば980円/月のフォトプランがベターかと思われます。
Tagger Extensions
元SSの特徴をプロンプトに反映する為に、Stable Diffusionの拡張である「Tagger」を利用します。
https://github.com/toriato/stable-diffusion-webui-wd14-tagger
こちらのリポジトリをStable Diffusionから指定して拡張機能をインストールしてください。
具体的なインストール方法や利用方法などは
https://minorgame.syowp.com/archives/stable-diffusion-tagger.html
この辺りを参考にされてください。
Ultimate SD Upscale Extensions
最終出力イメージを高解像度にするために、Stable Diffusionの拡張である「Ultimate SD Upscale」を利用します。
https://github.com/Coyote-A/ultimate-upscale-for-automatic1111
こちらのリポジトリをStable Diffusionから指定して拡張機能をインストールしてください。
具体的なインストール方法や利用方法などは
https://self-development.info/ultimate-sd-upscale%E3%80%90%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9%E3%83%BC%E3%80%91/
https://chitose-nanase.com/stable-diffusion-ultimate-sd-upscale/
この辺りを参考にされてください。
4x_foolhardy_Remacri アップスケーラー
最終出力イメージを高解像度にする際に利用するアップスケーラー「4x_foolhardy_Remacri」を追加します。
こちらからダウンロードしてStable Diffusionへインストールしてください。
具体的な導入方法や利用方法は
https://self-development.info/%e3%82%a2%e3%83%83%e3%83%97%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%a9%e3%83%bc%e3%81%ae%e8%bf%bd%e5%8a%a0%e3%80%90automatic1111%e7%89%88web-ui%e3%80%91/
この辺りを参考にされてください。
RealDosMix Check Point
今回使用するモデル(CP)です。3次元と2次元のいいとこどりの様な絵を得意としているのでポリゴンゲームのSSを高精細にするのに向いています。
こちらからダウンロードしてStable Diffusionへ展開してください。
(stable-diffusion-webui\models\Stable-diffusion)
EasyNegativeV2とnegative hand Text Inversion
ネガティブプロンプトに付与するText Inversionです。
https://civitai.com/models/56519/negativehand-negative-embedding
こちらからダウンロードしてStable Diffusionへ展開してください。
(stable-diffusion-webui\embeddings)
作業
基礎SSの撮影
当たり前ですが基になるSSがないと始まりません。さくっとグループポーズして撮影してきましょう。コツ・・・というか後の手間を減らしたり、加工の見栄えをよくするためには「ソロでそこそこ大きめに撮影されたポートレート」なSSがやりやすいです。全身ではなく膝上や腰上の構図の方が加工で高精細になった感がわかりやすくなります。
![](https://assets.st-note.com/img/1688864223196-pu0p6AS7He.jpg?width=1200)
AIに入れる前準備
・コピーライトの削除
文字をAI君に入れると何とか認識して「何か描かないと」と思われることが多いので最初に消しておきます。Photoshopの「コンテンツに応じた塗りつぶし」を使うとすんなり消せます。もともとReShadeやGEを利用してSSを撮影している場合はコピーライトは付与されていない為、飛ばしてください。
![](https://assets.st-note.com/img/1688864372578-V706g2Atr9.jpg?width=1200)
![](https://assets.st-note.com/img/1688864406814-48Kky5GTUZ.jpg?width=1200)
・貫通と埋没の処理
絵作りによっては飛ばせますがものすごく大事なところです。FFXIVは特に物理演算などを行わないので装備品や体の一部は物理法則を無視して貫通したり埋没したりしています。これをそのままAI君に読み込ませるとあるはずの物体を誤認したりないはずの物体を描きこんだりされます。要はいろんなところから手や指や変なオブジェクトが生えたり消えたりします。その為、この手の箇所を最初に画像編集で消してしまいます。今回のサンプルだと特にそういう箇所がないので違うSSを例示します。
![](https://assets.st-note.com/img/1688864769152-b7THNP3wKD.jpg?width=1200)
![](https://assets.st-note.com/img/1688864877416-mF8sV2hxjV.jpg?width=1200)
![](https://assets.st-note.com/img/1688865110123-g7vEhvUm80.jpg?width=1200)
![](https://assets.st-note.com/img/1688865135171-QWDUqXzmS4.jpg?width=1200)
・「手」の縮小
FFXIVのキャラは手が大きいです。特に通常身長の女性キャラは相対的に(通常の人間女性と比べて)かなり手が大きくなっています。これをAI君にそのまま読み込ませてしまうと手じゃない物体だと認識したり、1本の指を2本の指に描いてしまったり(指が途中で終わってそこからもう一本指が生えている)指の関節を5個くらいに(FFXIVのキャラクターは指に節がないのでAI君が長さから想像して描き足してしまう)してしまったりします。その為、画像編集で「手」を縮小してしまいます。
![](https://assets.st-note.com/img/1688865525987-LpwmTjH3Bz.jpg?width=1200)
![](https://assets.st-note.com/img/1688865646945-o3pVTB7Vai.jpg?width=1200)
![](https://assets.st-note.com/img/1688865807222-wRotdlPDS3.jpg?width=1200)
![](https://assets.st-note.com/img/1688865920542-CQjUBRC0q6.jpg?width=1200)
![](https://assets.st-note.com/img/1688866255559-8HsFh2bUKG.jpg?width=1200)
・画像の保存(準備)
上記まで編集の終わった画像をPNG形式で保存しておいてください。
もしもの為に(あとで直し漏れに気づいた等)この段階のPSDファイルを別に残しておくのもオススメします。
![](https://assets.st-note.com/img/1688866410023-lAVgSsBP49.jpg?width=1200)
・「顔」の切り取りと別画像の保存
上記までで基礎となる画像の準備は終わりですが、準備した画像から「顔の周囲部分だけを切り取った別画像」をさらに準備しておいてください。これはAI君が全身像から絵を生成する際に要素の多い顔部分はさぼりガチというかスポイルしやすい部分になっていまして、これを描きこむまでガチャを引くのも現実的ではない為「顔部分は別で生成AIに読み込ませてあとでPhotoshopで合成する。」という手法を採るためです。
![](https://assets.st-note.com/img/1688866465735-ElnBYOIT2C.jpg?width=1200)
指定プロンプトの決定
まずTaggerを使ってSSからプロンプトを逆引きします。
Stable Diffusion web UIのTaggerタブを開きます。
対象の画像を指定してしばらく待つとプロンプトが推察されます。
![](https://assets.st-note.com/img/1688866773413-uB9Tj2juce.jpg?width=1200)
1girl, avatar (ff14), solo, animal ears, pantyhose, rabbit ears, fishnets, au ra, fishnet pantyhose, hair over one eye, short hair, bow, scales, horns, grey hair, wrist cuffs, tail, underwear, panties, brown eyes, white hair
ここから必要だと思われる(実際に画像にその要素がある)プロンプトだけを抜粋します。また同じ意味で重複しているものも片方破棄します。個人的に「avatar (ff14)」はあまりいい結果にならないため外しています。
1girl, solo, pantyhose, rabbit ears, au ra, fishnet pantyhose, hair over one eye, short hair, scales, horns, grey hair, wrist cuffs, tail, panties, brown eyes
「顔」に必要な要素とそうでないものを並べ替えます。顔に関連するものを前にもってきます。
1girl, short hair, grey hair, brown eyes, hair over one eye, scales, horns, au ra, rabbit ears, solo, pantyhose, fishnet pantyhose, wrist cuffs, tail, panties
これに品質関連のプロンプトを付与します。
best quality, masterpiece, realistic, photorealistic, unreal_engine, photograph, 1girl, short hair, grey hair, brown eyes, hair over one eye, scales, horns, au ra, rabbit ears, solo, pantyhose, fishnet pantyhose, wrist cuffs, tail, panties
AIに基礎画像を読み込ませる~全体~
Stable Diffusion web UIのimg2imgタブを開きます。
以下の様に設定します。
![](https://assets.st-note.com/img/1688867639257-7Kqe7isALU.jpg?width=1200)
Stable Diffusion checkpointにRealDosMixを選択します。
プロンプトは上記で整理したものを指定します。ネガティブプロンプトにはEasyNegativeV2, negative_hand-negのみを指定します。
EasyNegativeV2, negative_hand-neg
上記で編集した元SSを選択します。
![](https://assets.st-note.com/img/1688867857652-jRgCKp9TJY.jpg?width=1200)
それぞれの意味は何処か解説サイトなどをご確認ください。
Sampling method:DPM++ 2M SDE Karras
解像度:1008*1792
元SSにアスペクト比を合わせます。今回は2160*3840の9:16です。
筆者はメモリ8GBのGPUを使用しています。メモリオーバーしない最大の解像度を選ぶ形になります。解像度は縦横ともに8の倍数を入れるようにしてください。
計算用のスプレッドシートを共有しておきます。アスペクト比を入力すると解像度を算出してくれます。これが短長辺それぞれ整数になるようにするとドットずれしません。
Sampling steps:30
25~30くらいがオススメです。Seedガチャをしている状態では少なめに設定すると結果が早く取得できます。
CFG Scale:7
5~7くらいがオススメです。
Denoising strength:0.5
0.4~0.6くらいがオススメです。
![](https://assets.st-note.com/img/1688868332694-xoqCEwWrVH.jpg?width=1200)
ConrolNetを設定します。img2imgと同じ画像を指定してtile_resampleを使用します。
Control Weight:0.75
0.50~0.75くらいがオススメです。
![](https://assets.st-note.com/img/1688868714413-Cfw0XwLT5d.jpg?width=1200)
この状態でいい感じの絵になるまでガチャを回します。最も気になる「顔」に関しては個別で処理しますのでそこは見ずに全体として「イイ感じ」に思えるものを引いたらそのseedをメモします。
![](https://assets.st-note.com/img/1688877293771-lMp15tlxYc.jpg?width=1200)
![](https://assets.st-note.com/img/1688868865410-gdMFmFsSdu.jpg?width=1200)
出来上がった画像の中で「ここはちょっと盛りすぎだな」「さすがにこの部分は元イメージと違いすぎだろう」という箇所がある場合は先ほどメモしたseedに固定してDenoising strengthを元の設定から「-0.5」しながらイイ感じになるまで生成を行ってください。
![](https://assets.st-note.com/img/1688879028004-cb17pCX4RP.jpg?width=1200)
![](https://assets.st-note.com/img/1688869032505-23xbKq47h0.jpg?width=1200)
AIに基礎画像を読み込ませる~顔~
同じくimg2imgで処理します。
best quality, masterpiece, realistic, photorealistic, unreal_engine, photograph, 1girl, short hair, grey hair, brown eyes, hair over one eye, scales, horns, au ra, rabbit ears
プロンプトは顔に関するものだけを抜粋します。先ほどの整理で前部に持ってきているので後ろをカットする形です。
![](https://assets.st-note.com/img/1688869200023-dshIvFMc3T.jpg?width=1200)
コツは全体と同じですが、Denoising strengthを落としすぎると髪の毛の低解像度テクスチャ感が残りやすいので髪の毛以外だけでパーツ取りすることも検討してください。
![](https://assets.st-note.com/img/1688869284213-SaJFzjlYdj.jpg?width=1200)
プロンプトで指示をしてもどうしても目や髪の色が思ったものにならない場合は「EasyNegativeV2」をNPから外してみるとうまくいく場合があります。
目や髪の色が具体的にどのようなプロンプトにすればよいか分からない場合は上記サイトなどを参考にされてください。
Photoshopでこれまでの生成画像を結合する
最も「イイ感じ」にできた画像をベースにします。
ベース画像に他のDSで作成したものや顔を重ねていきます。
![](https://assets.st-note.com/img/1688869545189-CHedVLPdqt.jpg?width=1200)
大まかに切り取って。
![](https://assets.st-note.com/img/1688869766702-rAyAXFpVIa.jpg?width=1200)
重ねます。
![](https://assets.st-note.com/img/1688869854109-oJ6WVMeyOG.jpg?width=1200)
選択範囲を取得、縮小してベースを削除。そのあとレイヤーの自動合成を使用して結合していきます。
![](https://assets.st-note.com/img/1688869999101-chtVPZfCBj.jpg?width=1200)
![](https://assets.st-note.com/img/1688870112073-1cosoNL4sX.jpg?width=1200)
![](https://assets.st-note.com/img/1688870245421-zbLvUAWBZ6.jpg?width=1200)
顔も同様に大まかに切り取って。
![](https://assets.st-note.com/img/1688870332414-UAyiGPlqSa.jpg?width=1200)
縮小して重ねます。1008/2160なので46.66%に縮小します。
![](https://assets.st-note.com/img/1688870419823-R3OMRyLLtc.jpg?width=1200)
以後はこの画像をAI君に入れていきます。
おまけ~上半身の一部を豊穣にする~
注)ここは特にやる必要はない項目です。胸部や胸囲に興味が無い方は読み飛ばしてください。
![](https://assets.st-note.com/img/1688870715599-ubzTWcQg5j.jpg?width=1200)
Stable Diffusion web UIのimg2imgタブを開き、inpaintを選択します。
![](https://assets.st-note.com/img/1688870958968-zrXoh7emgO.jpg?width=1200)
品質関連のプロンプトを設定した後に「large breast」を指示します。さらにinpaintで胸部のみを塗り潰します。
best quality, masterpiece, realistic, photorealistic, unreal_engine, photograph, large breast
![](https://assets.st-note.com/img/1688871206306-2pEmgDSMUh.jpg?width=1200)
いい感じのを引くまで何枚か画像を生成していきます。
![](https://assets.st-note.com/img/1688871799225-ncgXXn63ut.jpg?width=1200)
アップスケールして最終出力画像を作る
Stable Diffusion web UIのimg2imgタブを開きます。
プロンプトを品質プロンプトのみにして
best quality, masterpiece, realistic, photorealistic, unreal_engine, photograph
パラメータを
解像度:1008*1792(ベース画像の解像度)
Sampling steps:20
Denoising strength:0.25
に設定してScriptから「Ultimate SD Upscale」を選択します。
![](https://assets.st-note.com/img/1688872062044-f8RxCEc3jj.jpg?width=1200)
「Custom Size」を選択して出力したい解像度を入力します。
筆者は2160*3840(4K)を主に使っています。
しばらく待つと処理が完了してファイルが出力されます。
ファイル容量が大きくなる都合上、ブラウザから画像を取得するとJPGファイルになってしまいます。
stable-diffusion-webui\output\img2img\今日の日付
から直接PNGファイルを取得してください。
完成
編集、公開
Photoshopを使用して、ゆがみツールで顔をちょっといじったりCameraRawフィルターで色味を変えたり調整レイヤーを重ねたりした後、文字入れとコピーライトを付与して完成です。
![](https://assets.st-note.com/img/1688540553854-eFxtV0t0F4.jpg?width=1200)
作例
今までに加工したイメージを別記事でアップしています。
問合せ
・Twwiter・メール
記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。Copyright (C) SQUARE ENIX CO., LTD. All Rights Reserved.