rem ----ファインチューン用jsonファイル作成バッチ--------------------------------
rem 学習対象のフォルダ内に置いて使用する
rem jsonにまとめるキャプション、タグファイルはwebuiのDataSet-Tag-Editor拡張機能
rem などを使用してあらかじめ作成してください

setlocal enabledelayedexpansion

rem ----ここから自分の環境に合わせて書き換える----------------------------------

rem sd-scriptsの場所
set sd_path=".\sd-scripts"

rem 学習画像フォルダ
set image_path="%~dp0\lora_train_data\train_dir"

rem ----書き換えここまで--------------------------------------------------------

set json_path=%~dp0

rem 実行
cd /d %sd_path%
call venv\Scripts\activate.bat & call :main & pause & exit

:main

rem 古いjsonの削除
if exist "%json_path%\marge.json" (
  del "%json_path%\marge.json"
)
if exist "%json_path%\marge.json" (
  del "%json_path%\marge_clean.json"
)

rem キャプションの処理
for /d %%d in (%image_path:"=%\*) do (
  rem 各学習フォルダの.captionをjsonに追加
  if exist %%d\*.caption (
    python finetune\merge_captions_to_metadata.py --full_path "%%d" "%json_path%\marge.json"
  )
)

rem タグの処理
for /d %%d in (%image_path:"=%\*) do (
  rem 各学習フォルダの.txtをjsonに追加
  if exist %%d\*.txt (
    python finetune\merge_dd_tags_to_metadata.py --full_path "%%d" "%json_path%\marge.json"
  )
)

rem json内タグのクリーンアップ
python finetune\clean_captions_and_tags.py "%json_path%\marge.json" "%json_path%\marge_clean.json"

exit /b