sd-scripts
sd-scripts copied to clipboard
画像のアルファチャンネルをlossのマスクとして使用するオプションを追加
透過画像のアルファチャンネルをlossのマスクとして利用出来るようにします。
- デフォルトだとImage.open().convert("RGB")の際にアルファチャンネルが消えて単色の背景(灰色?)が設定されるため、学習したモデルにも背景が移りやすい
- 背景を学習させないために、lossに対してアルファチャンネルをマスクとして適用することで透過部分のlossを0にする
- alpha_maskオプションで使用
ControlNetで使われていた(?) apply_masked_lossを少し変更して使用しています。
例:
(Layer Diffusionを用いて生成)
透過画像30枚をそのまま学習データとし、alpha_maskをon/offでそれぞれ800step程度学習
SD1.5では上手く動いていますが、SDXLでの検証がVRAM不足により行えていません…😭
ありがとうございます。原理的にはSDXLでもそのまま動きそうですね。こちらで検証したいと思います。時間でき次第確認、マージいたします。
お手数おかけします…🙏🙏🙏