![見出し画像](https://assets.st-note.com/production/uploads/images/128314898/rectangle_large_type_2_8fbd0212e0b17814e4e3dabcf4aaa750.png?width=1200)
CLIP Text Deprojectorを使って画像生成してみる ~最終正規化層を固定しない~
前回は、2つのモデルを繋ぎ合わせて画像生成してみました。本記事では視点を変え、最終正規化層の固定を解除して学習してみました。
前回の記事
他のStable Diffusionの関連記事
Layered Diffusion Pipelineを使うためのリンク集
ライブラリの入手先と使用法(英語) : Githubリポジトリ
日本語での使用方法の解説 : Noteの記事
最終正規化層の固定解除
下の記事で触れているように、現在のモデルの学習では、最終正規化層は固定して学習対象から外しています。
これを固定するアイデアは、大きなノイズと引き換えにプロンプトの再現性が上がるとして、下の記事で導入されました。
逆に言えば、固定を解除すれば、プロンプトの再現性を引き換えにノイズを減らすことができるはずです。
実験
前回までに試した各モデルに対し、最終正規化層の固定を解除して学習したモデルを作り、比較します。
使用したプロンプトはこれまでと同様、次の通りです。
単一embedding
cat maid (猫耳メイド)
1girl red hair blue eye black skirt(赤髪 青目 黒スカート)
1boy 1girl in class room(少年 少女 教室)
複数embeddingの合成
cat, maid (猫 メイド)
1girl, red hair, blue eye, black skirt (赤髪 青目 黒スカート)
1boy, 1girl, in class room (少年 少女 教室)
単語とEOSのみで学習したモデル
モデル数が多いので、3つのグループに分けました。1つ目は、単語とEOSのみで学習したモデル2種類です。生成画像は以下の順に並んでいます。
Deprojectorなし
単語とEOSのみ - 最終層を固定する
単語とEOSのみ - 最終層を固定しない
単語とEOSのみ(逆順) - 最終層を固定する
単語とEOSのみ(逆順) - 最終層を固定しない
![](https://assets.st-note.com/img/1705817639461-T1QJ6TTNtu.png?width=1200)
![](https://assets.st-note.com/img/1705817656734-oTg8fNrmab.png?width=1200)
この2つのモデルは、最終正規化層の固定を解除することで、ノイズが減少するようです。特に「単語とEOSのみ」は、最終正規化層の固定を解除すると生成画像のノイズがなくなりました。
単語とEOSのみで学習したモデル(再帰的入力)
前節と同じですが、再帰的入力を用いて学習しました。
![](https://assets.st-note.com/img/1705827270773-H4FeTWydO8.png?width=1200)
![](https://assets.st-note.com/img/1705827281394-P8aIuUWBJY.png?width=1200)
この2つも前節と同様、最終正規化層の固定を解除することで、ノイズが減少するようです。
EOS以降のみで学習したモデル
2つ目のグループは、EOS以降のみで学習したモデル2種類です。生成画像は以下の順に並んでいます。
Deprojectorなし
EOS以降のみ(一括入力) - 最終層を固定する
EOS以降のみ(一括入力) - 最終層を固定しない
EOS以降のみ(再帰的入力) - 最終層を固定する
EOS以降のみ(再帰的入力) - 最終層を固定しない
![](https://assets.st-note.com/img/1705817816998-XeWY5peL2q.png?width=1200)
![](https://assets.st-note.com/img/1705817830821-P4QTLWVYjG.png?width=1200)
この2つのモデルは、最終正規化層の固定を解除することが生成画像の質に大きな変化を与えていないように見えます。
まとめ
最終正規化層の固定を解除してモデルを学習してみました。
単語とEOSのみで学習したモデルは最終正規化層の固定を解除することでノイズを減らすことができましたが、EOS以降のみで学習したモデルは目立った変化はありませんでした。
この記事が気に入ったらサポートをしてみませんか?