Guide: 1to2: Training Multiple-Subject Models using only Single-Subject Data (Experimental)

詳細

ファイルをダウンロード

モデル説明

更新は、Hugging FaceおよびCivitaiの両方に反映されます。

はじめに

複数のキャラクターを同じモデルに学習させることができることが示されている。より難しいタスクは、生成パイプラインを変更せずに、同時に複数のキャラクターを生成できるモデルを作ることである。本ドキュメントでは、同一画像内に複数のキャラクターを生成するのを助けることが確認されたシンプルな技法について説明する。

メソッド

要件:単一キャラクター画像のセット
手順:
1. 元のデータセットを用いてマルチコンセプトモデルを訓練
2. 元のデータセットから画像ペア(合成画像)の増強データセットを作成
3. 増強データセットで訓練

実験

設定

実験には、ゲーム『アイドリッシュセブン』の3つのキャラクターを選定。ベースモデルは anime-final-pruned。訓練済みキャラクターに関するベースモデルの知識が最小限であることを確認した。複数キャラクターが描かれた画像は削除済み(編集済み:訓練後に、関係のない背景キャラクターが一部残っていることが判明)。

合成画像のキャプションには、テンプレート形式 CharLeft/CharRight/COMPOSITE, TagsLeft, TagsRight を用いた。

以下の設定ファイルを使用して、LoRA(ハダマール積)を訓練:

[model_arguments]
v2 = false
v_parameterization = false
pretrained_model_name_or_path = "Animefull-final-pruned.ckpt"

[additional_network_arguments]
no_metadata = false
unet_lr = 0.0005
text_encoder_lr = 0.0005
network_module = "lycoris.kohya"
network_dim = 8
network_alpha = 1
network_args = [ "conv_dim=0", "conv_alpha=16", "algo=loha",]
network_train_unet_only = false
network_train_text_encoder_only = false

[optimizer_arguments]
optimizer_type = "AdamW8bit"
learning_rate = 0.0005
max_grad_norm = 1.0
lr_scheduler = "cosine"
lr_warmup_steps = 0

[dataset_arguments]
debug_dataset = false
# keep token 1
# resolution 640*640

[training_arguments]
output_name = "cg3comp"
save_precision = "fp16"
save_every_n_epochs = 1
train_batch_size = 4
max_token_length = 225
mem_eff_attn = false
xformers = true
max_train_epochs = 40
max_data_loader_n_workers = 8
persistent_data_loader_workers = true
gradient_checkpointing = false
gradient_accumulation_steps = 1
mixed_precision = "fp16"
clip_skip = 2
lowram = true

[sample_prompt_arguments]
sample_every_n_epochs = 1
sample_sampler = "k_euler_a"

[saving_arguments]
save_model_as = "safetensors"

2段階目の訓練では、バッチサイズを2に、解像度を768×768に設定し、それ以外の設定は同一とした。T4 GPU上で2時間未満で訓練が完了した。

結果

(プレビュー画像を参照)

制限事項

  • この技法はメモリ/計算リソース要件を2倍に増加させる

  • ネガティブプロミントを使用しても、合成画像が生成されてしまう場合がある

  • クローンされたキャラクターが、ブレンドされたキャラクターに代わって主な失敗モードになりうる

  • なぜか2キャラクターまでは生成可能だが、3キャラクターは生成できない

関連研究

アニメ番組に基づくデータセットで訓練されたモデルは、マルチセブジェクト能力を示している1girl, 1boy のような十分に離れたコンセプトを単純に使用するだけでも、有効であることが示されている

今後の課題

以下のアイデアはまだ検証されていないため、未解決のテーマである。

  • 合成データセット

  • 異なるアスペクト比

  • 正則化

  • 逐次学習ではなく、同時学習

このモデルで生成された画像

画像が見つかりません。