Sumeshi FLUX.1 S 🍣

詳細

モデル説明

注意: このモデルはSchnellベースのモデルですが、ガイドanceスケール3または5、CFGスケール3以上、20ステップ以上が必要です。付属のclip_l_sumeshi_f1sと併用してください。(右メニューの234.74 MBのファイルです。)

注意: このモデルはSchnellベースのモデルですが、ガイドanceスケール3または5、CFGスケール3以上、20ステップ以上が必要です。付属のclip_l_sumeshi_f1sと併用してください。(右メニューの234.74 MBのファイルです。)

私の英語はひどいので、翻訳ツールを使っています。

これは、デディスティリングとCFGの有効化が機能するかを検証するための実験的なアニメモデルです。ある程度有効なネガティブプロンプトを使用できます。このモデルはCFGを使用しているため、同じステップ数でも通常のFLUXモデルの約2倍の時間がかかります。 モデルの学習が十分でないため、プロンプトによって出力がぼやけたりスタイルが不安定になったりする可能性があります。

24/09/23 更新

v004Gを追加しました。これは、ガイドanceを導入することで低ステップ出力(約20ステップ)のぼやけを軽減することを目的とした試験モデルです。明るい・暗い出力ともにぼやけが軽減されています。時間短縮のため、限界を押し詰めたパラメータで学習したため、プロンプトへの応答性が低下しています。推奨パラメータが更新されていますので、Usage(v004G)のセクションをご覧ください。 検証の結果、ぼやけの原因として2つの要因が推測されたため、それらの部分を学習で強化しました。

  • ガイドanceパラメータ: v002Eではゼロで埋めていましたが、これをHe初期化し、FineTuneとnetwork_args "in_dims"を用いてある程度学習させることで、ガイドanceスケールが正しく機能するようになりました。理由は不明ですが、スケール3および5以外の値では出力が異常になるようです。

  • タイムステップサンプリング: これまでdiscrete_flow_shift 3.2を使用していましたが、これが低ステップでの応答性低下の原因ではないかと推測しました。検証により、シフトを使用せず、sigmoid_scaleを小さくするとぼやけが軽減されることがわかりました。ただし、学習が不十分だと背景がノイジーになるため、さらにハイパーパラメータの探索が必要です。

使用法(v004G)

  • 解像度: 他のFLUXモデルと同様

  • (デディスティリング済み)ガイドanceスケール: 3または5

  • CFGスケール: 6〜9(推奨は7) (スケール1ではまともな出力が得られません)

  • ステップ: 20〜30(4ステップ程度では使用しないでください)

  • (デディスティリング済み)ガイドanceスケール: 3または5(Schnellベースモデルのため機能しません)

使用法(v002E 古い版)

  • 解像度: 他のFLUXモデルと同様

  • CFGスケール: 3.5〜7(スケール1ではまともな出力が得られません)

  • ステップ: 20〜60(4ステップ程度では使用しないでください)

  • (デディスティリング済み)ガイドanceスケール: 0(Schnellベースモデルのため機能しません)

  • サンプラー: Euler

  • スケジューラ: Simple, Beta

プロンプト形式(Kohaku-XL-Epsilonより)

<1girl/1boy/1other/...>, <character>, <series>, <artists>, <general tags>,<quality tags>, <year tags>, <meta tags>, <rating tags>

学習データ量が少ないため、タグはほぼ機能しません。また、学習は女性中心に行われているため、男性や非人物の生成は上手くできない可能性があります。データセットはhakubooruを用いて構築したため、プロンプト形式はKohakuXL形式と同様です。ただし、実験結果によると、自然言語でもある程度意味を解釈するため、この形式に厳密に従う必要はありません。

特殊タグ

  • 品質タグ: masterpiece, best quality, great quality, good quality, normal quality, low quality, worst quality

  • レーティングタグ: safe, sensitive, nsfw, explicit

  • 日付タグ: newest, recent, mid, early, old

学習

  1. データセット準備

    hakubooru をベースにカスタムスクリプトを使用しました。

    除外タグ: traditional_media,photo_(medium),scan,animated,animated_gif,lowres,non-web_source,variant_set,tall image,duplicate,pixel-perfect_duplicate

    最小投稿ID: 1,000,000

  2. キーの追加

    Schnellモデルに、キー"guidance_in"を持つゼロで埋められたテンソルを追加しました。このテンソルは、flux/src/flux/model.pyから推測されるDevの対応するキーの形状に合わせています。これは、モデル名に'schnell'が含まれていない場合、これらのキーが欠けているとトレーナーが正しく動作しなかったためです。ゼロで埋められているため、Schnellモデルと同様にガイドanceは機能しないと認識しています。私のスキルが不足しており、強引に追加したため、これが正しい方法かどうかは不明です。

  3. 学習

    基本的には、学習を重ねるほどネットワークが再構築され、デディスティリングが解除されてCFGが利用可能になると仮定して学習を進めました。

    単一のRTX 4090を使用して学習しました。LoRA方式で学習し、結果をマージしています。

    学習にはsd-scriptsを使用しました。基本設定は以下の通りです(ガイドance値は7に設定していますが、前述のようにゼロテンソルであるため特に意味はありません)。

    accelerate launch --num_cpu_threads_per_process 4 flux_train_network.py --network_module networks.lora_flux --sdpa --gradient_checkpointing --cache_latents --cache_latents_to_disk --cache_text_encoder_outputs  --cache_text_encoder_outputs_to_disk --max_data_loader_n_workers 1 --save_model_as "safetensors" --mixed_precision "bf16" --fp8_base --save_precision "bf16" --full_bf16 --min_bucket_reso 320 --max_bucket_reso 1536 --seed 1 --max_train_epochs 1 --keep_tokens_separator "|||" --network_dim 32 --network_alpha 32 --unet_lr 1e-4 --text_encoder_lr 5e-5 --train_batch_size 3 --gradient_accumulation_steps 2 --optimizer_type adamw8bit --lr_scheduler="constant_with_warmup" --lr_warmup_steps 100 --vae_batch_size 8 --cache_info --guidance_scale 7 --timestep_sampling shift --model_prediction_type raw --discrete_flow_shift 3.2 --loss_type l2 --highvram
    

    以下のデータセットをこの順序で学習しました。

    3,893画像(res512 bs4 / res768 bs2 / res1024 bs1, acc4)1エポック

    60,000画像(res768 bs3 acc2)1エポック

    36,000画像(res1024 bs1 acc3)1エポック

    3,000画像(res1024 bs1 acc1)1エポック

    18,000画像(res1024 bs1 acc3)1エポック

    モデルとCLIP_Lにマージ

    693画像(res1024 bs1 acc3)1エポック

    693画像(res1024 bs1 acc3 warmup50)1エポック

    693画像(res1024 bs1 acc3 warmup50)10エポック

    693画像(res1024 bs1 acc3 warmup50)15エポック

    モデルとCLIP_Lにマージ

    543画像(res1024 bs1 acc3 warmup50 --optimizer_args "betas=0.9,0.95" "eps=1e-06" "weight_decay=0.1" --caption_dropout_rate 0.1 --shuffle_caption --network_train_unet_only)20エポック

    モデルとCLIP_Lにマージ

    21,000画像(res1024 bs1 acc3 warmup50 timestep_sampling sigmoid sigmoid_scale2)15エポック

    21,000画像(res1024 bs1 acc3 warmup50 sigmoid_scale2 discrete_flow_shift3.5)15エポック

    モデルとCLIP_Lにマージ

    -この学習ではCLIPのみマージ-

    3,893画像(res1024 bs2 acc1 warmup50 unet_lr5e-5 text_encoder_lr2.5e-5 sigmoid_scale2.5 discrete_flow_shift3 --network_args "loraplus_lr_ratio=8")3エポック

    3,893画像(res1024 bs2 acc1 warmup50 unet_lr5e-5 text_encoder_lr2.5e-5 sigmoid_scale2 discrete_flow_shift3 --network_args "loraplus_lr_ratio=8")1エポック

    CLIP_Lのみにマージ

    --

    "guidance_in"層をHe初期化

    3,893画像(フルファインチューン res1024 bs2 acc1 afafactor --optimizer_args "relative_step=False" "scale_parameter=False" "warmup_init=False" lr5e-6 warmup50 guidance_scale3.5 max_grad_norm 0.0 timesteps_sampling discrete_flow_shift 3.1582)1エポック

    3,893画像(res1024 bs2 acc1 warmup50 guidance_scale1 timesteps_sampling sigmoid sigmoid_scale 0.5 --network_args "in_dims=[8,8,8,8,8]")4エポック

    3,893画像(res512 bs2 acc1 warmup50 guidance_scale1 timesteps_sampling sigmoid sigmoid_scale 0.3 --network_args "in_dims=[8,8,8,8,8]")12エポック

    543画像(repeats10 res512 bs4 acc1 warmup50 unet_lr3e-4 guidance_scale1 timesteps_sampling sigmoid sigmoid_scale 0.3 --network_args "in_dims=[8,8,8,8,8]")4エポック

    モデルとCLIP_Lにマージ

    --v004G--

リソース(ライセンス)

ライセンス

Apache2.0

謝辞

  • black-forest-labs: 優れたオープンソースモデルの公開に感謝します。

  • kohya-ss: 必須の学習スクリプトの公開と迅速なアップデートに感謝します。

  • Kohaku-Blueleaf: データセット用スクリプトおよび多様な学習条件の幅広い公開に感謝します。

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

画像が見つかりません。