白黒アイコンをAnimaの絵柄で描き直せるか
目次
自分のアイコンにしている白黒の画像を、かなちゃんのLoRAでカラーに出し直せないかと思って、試してみた。
| 項目 | 元絵 |
|---|---|
| 向き | 右斜め |
| 片方の手 | 口の横に人差し指を立てる |
| もう片方の手 | 腹に当てる |
| 口 | 開けている |
環境
| 項目 | 設定 |
|---|---|
| マシン | M1 Max 64GB |
| ComfyUI | v0.30.1 |
| 呼び出し | 自作の生成サーバー経由と直APIの両方 |
| 基準モデル | WAI-Anima v1.0(waiANIMA_v10.safetensors) |
| キャラLoRA | kanachan-waianima-rework-v4_epoch180(model 1.0 / clip 0.8) |
| 高速化 | Anima Turbo LoRA v0.1、10step、er_sde / simple |
| 解像度 | 832×1024 |
| seed | 424246 / 424247 / 424248を固定。最後にランダム12個 |
| 遠回りで使ったもの | Anima-Base v1.0+kanachan-animabase-v2_epoch150(30〜40step、cfg 4.0)、Qwen-Image-Edit AIO |
かなの見本はLoRAの学習画像で確認。
元絵をi2iに入れる
元絵をそのままi2iに入れて、Animaの画風で出ないかと思った。
denoiseは左から0.6、0.7、0.8。
みた通り全部失敗、一応ポーズを寄せようとした形跡だけ見える。
Animaの自然文で指定してみる
her left hand と書いても、on the right side of the image と書いても、左右の手の構図が変わらず。
4人LoRAでポーズと関係を指定した実験で、ハイタッチの相手が名前で決まらなかったのと多分同じことが起きている。
Anima-Baseのcfg 4.0へ切り替え、finger to mouth を入れると、今度は画面右から別人の腕が伸びてきて、その指が口に突っ込まれた画像が出てきた。
今回のcfg 4.0の条件では、solo も、ネガティブの another person, extra arm でも、余計な出力を抑えられなかった。
口に指突っ込んでる絵面がちょっとセンシティブだったので省略。
別のモデルで元絵を変換する
Qwen-Image-Editで元絵をカラーのアニメ絵に変換した。
ポーズは元絵と微妙に違い、かなでもない。
上からかなLoRAでi2iを掛けても、髪だけインペイントしても、かなが出なかったのでこの方法はやめ。
かなが出ているかを先に確かめる
そもそも今の方式でかながちゃんと出せているか?最近ちゃんと出力してないし、まずはかなの意匠を固定してから徐々にプロンプト足すか、と思って、まずは普通に出してみた。
左2枚が学習画像、右2枚がseed 424246と424247の基準出力。
masterpiece, best quality, safe, 1girl, solo, kanachan, side ponytail, ahoge, Her side ponytail with a blue scrunchie is visible on the right side of the image, white shirt, collared shirt, red necktie, upper body, looking at viewer, white background, simple background
髪の構造、ポニーの側、シュシュ、アホゲ、目の色、服は同じ。
何も指定してないので表情がばらついてるが、これはあとで調整するのでよしとして、ここにプロンプトを足していく。
向きの固定から
seedは424247、three-quarter view は共通。
| 向きの指定 | 結果 |
|---|---|
| なし | 正面でカメラ目線 |
(facing right:1.3), (body turned to the right:1.3) | 右斜め。採用 |
(facing right:1.5), (body turned to the right:1.5) | 横顔寄り |
| 他に試した指定 | 結果 |
|---|---|
four-fifths view | 重みなしと同じく正面(画像なし) |
about 30 degrees | 同上(画像なし) |
首の傾きがseedごとに違うので、she stands upright with her head and spine in one straight vertical line, without tilting her head の1文を足して固定した。
腕と手の指定を入れる
seedは424246。腹の手の言い回しは one hand pressed to her stomach。
本来はお腹が空いておさえている構図だが、お腹が痛くておさえている構図の学習キャプションを流用した。
| 手の指定 | 結果 |
|---|---|
her right hand is pressed to her stomach | 右手が腹に。汗マークと心配顔も一緒に出た |
上に her left hand rests on her cheek を追加 | 左手が頬に |
頬の手に closed in a fist with her left index finger extended upward を追加 | 頬の手は開いたまま変わらず。腹の手の指が曲がって人差し指だけ横に伸びた |
表情差分を確認する
向き1.3、腹の右手、頬の左手、seed 424247は共通。12〜15はcfg 1.5に、泣き系と汗のネガティブを入れて出した(次の節)。
| 順 | タグ | 結果 |
|---|---|---|
| 1 | hungry, open mouth | 困り顔。汗マーク。一覧では「哀」に分類されている |
| 2 | excited, open mouth | 口を開けた笑顔 |
| 3 | curious, open mouth | 口を小さく開ける |
| 4 | cheerful, open mouth | 口を開けた笑顔 |
| 5 | pleased, open mouth | 口を開けた笑顔 |
| 6 | happy, open mouth | 口を開けた笑顔 |
| 7 | joyful, open mouth | 口を開けた笑顔 |
| 8 | great joy, open mouth | 口を丸く開けた不安顔。汗マーク |
| 9 | :d | 口を開けた笑顔 |
| 10 | joyful, amazed, open mouth | 目を見開いて口を丸く開ける。「すごい」ではなく「なんだこれ」の顔 |
| 11 | joyful, sparkling eyes, open mouth | 口を開けた笑顔。目にハイライト |
| 12 | sad | 閉じ口の泣き顔 |
| 13 | a little sad | 閉じ口の困り顔 |
| 14 | neutral expression, closed mouth | 真顔。採用 |
| 15 | expressionless | 真顔 |
汗をネガティブで消す
seedは424247、表情は joyful, sparkling eyes, open mouth。ネガティブに sweat, sweatdrop, sweat drops, flying sweatdrops, tears, wet face を足した。
| cfg | 結果 |
|---|---|
| 1.0 | 左頬の1粒がそのまま。ネガティブを足す前の3枚とピクセル単位で完全に同じ |
| 1.5 | このseedは左頬の1粒がそのまま((sweat:1.5) に上げても消えず)。ほかの2seedでは消えた。以後はcfg 1.5で進めた |
ComfyUI v0.30.1の通常のKSampler(CFGGuider)では、cfgが1.0で disable_cfg1_optimization が未設定のとき、ネガティブ側(unconditional)を計算しない(comfy/samplers.py L609-L627)。
CFG++系のサンプラーは内部でこのフラグを立てるので別。今回のer_sdeは通常のKSamplerなので該当する。
よだれをちょこっと
元絵には口の端に涎がある。neutral expression, closed mouth の末尾に足した。seedは424247。
| 追加 | 結果 |
|---|---|
| なし | 涎なし |
drool | 口の端に小さな粒。採用 |
| 他に試した指定 | 結果 |
|---|---|
drooling | 1筋垂れた(画像なし) |
a small bit of drool leaking from the corner of her mouth | 顎まで垂れた(画像なし) |
下半身に服着てるか?
よくみたらシャツは着てるが下が不明、元絵でもまあ同じ構図だが、通常生成されたかなはスカートを履いてシャツを入れている。よってスカートの描写を入れてみることにした。
| 衣装の指定 | 経緯 |
|---|---|
red pleated skirt を追加 | シャツの裾の下が何か分からない絵になっていた |
shirt tucked in を追加 | スカートを足したならシャツインするはず |
upper body を (upper body:1.3) に | スカートを書くと画角が腰下まで広がった |
人差し指を口元へ
her left hand rests on her cheek を、元絵の「口の横に人差し指」に当たるDanbooruのタグに差し替えた。seedは424247。
| 差し替え先 | 結果 |
|---|---|
finger to mouth | 人差し指の先が口の端。採用。WAI-Anima+Turboのcfg 1.5では別人の手は出なかった |
shushing | 指が唇の前に立つ |
index finger raised | 手が上がらない |
ランダムシードでガチャ
固定値では右向きにしたときのサイドポニーの位置がブレるので、プロンプトを固定してseedをランダムに12枚出した。
意図した構図から外れたものを間引いたら、たまたま1枚いいのが残った。
| seed | サイドポニー |
|---|---|
| 1175128881 | 後頭部側に大きく出る |
| 2221789380 | シュシュが頭頂のやや後ろ |
| 1654146746 | シュシュが頭頂 |
| 3421689588 | 頭の右上に覗く。採用 |
このseedで closed mouth を slightly parted lips に替えて、最終形にした。
masterpiece, best quality, safe, 1girl, solo, kanachan, side ponytail, ahoge, Her side ponytail with a blue scrunchie is visible on the right side of the image, pure white shirt, collared shirt, red necktie, red pleated skirt, shirt tucked in, (upper body:1.3), three-quarter view, (facing right:1.3), (body turned to the right:1.3), her head and body are both turned toward the viewer's right, she stands upright with her head and spine in one straight vertical line, without tilting her head, looking to the side, looking away, her right hand is pressed to her stomach, finger to mouth, neutral expression, slightly parted lips, drool, white background, simple background, anime coloring, cel shading, clean sharp lineart
ネガティブはこれ。cfg 1.5。
worst quality, low quality, score_1, score_2, score_3, blurry, jpeg artifacts, lowres, censor, twin tails, twintails, two side up, half updo, right side up, bowtie, bow tie, ribbon, red ribbon, sweat, sweatdrop, sweat drops, flying sweatdrops, tears, wet face, crying, sobbing, streaming tears, tearful
Turboを外すとシャツは白寄りになるか
シャツの色がもうちょっと明るく、白寄りにならないかのテスト。左胸のRGB中央値で比べた。
| 変更 | 左胸のRGB中央値 | 結果 |
|---|---|---|
white shirt | (238, 236, 232) | 背景の255より少し暖色の灰色 |
pure white shirt | (238, 236, 232) | 変わらず |
| Turboを外して30step、cfg 4.0 | (241, 243, 243) | 白くなったが、3seed中2seedで頬の手が消えたのでやめ |
拡大する
300dpiを基準に計算すると、832×1024は7.0×8.7cmしかない。使える拡大モデルは、手元では 4x-UltraSharp.pth だけ。
| 工程 | 結果 |
|---|---|
| 4x-UltraSharpで4倍 | バイキュービック補間と違って線が残る |
| 2倍の1664×2048に縮小して、同じプロンプト・同じseedでi2i denoise 0.3 | MPSGraph does not support tensor dims larger than INT_MAX が出た |
| 1.5倍の1248×1536に縮小して、同じくi2i denoise 0.3 | 通った。線が描き直されて締まった |
元画像を4x-UltraSharpで4倍にし、1.5倍に縮小してi2i denoise 0.3で描き直し、もう一度4x-UltraSharpにかけてから目的のサイズへLANCZOS縮小した。
| 出力 | ピクセル | 300dpiでの寸法 |
|---|---|---|
| 元画像 | 832×1024 | 7.0×8.7cm |
| 4x-UltraSharpのみ4倍 | 3328×4096 | 28.2×34.7cm |
| 1.5倍でi2i後に4倍 | 4992×6144 | 42.3×52.0cm |
| 同上をA4短辺に合わせて縮小 | 2480×3053 | 21.0×25.8cm |
構図は元のままで、A4の短辺の寸法になった。