Pythonの簡単なスクリプトで、任意のフォルダ内の全ファイルの名前を、拡張子などで条件付けしつつ一覧出力できるものをつくりました。
WEBUI(1111)でXY Plotを用いて検証する際にお使いください。
1, コピペ用コード
"""ファイル名一覧取得"""
import os
import glob
file_dir = input(
"ファイルディレクトリ(例「C:\SD\stable-diffusion-webui\models\Stable-diffusion」) : "
)
kakuchoshi = input("拡張子(例:「mp4,ckpt,pt,py...」)1つだけ : ").replace(".", "")
file_dir_after = f"{file_dir}\*.{kakuchoshi}"
file_list = glob.glob(file_dir_after)
name_list = [os.path.basename(file) for file in file_list]
print(str(name_list).replace("'", "").replace("[", "").replace("]", ""))
os.system("PAUSE")
これをメモ帳にでもコピペして、拡張子を.pyにしたうえで適当な名前で保存してください。
2, 使い方
動作要件
標準のモジュールしか用いていないので、Pythonのパスさえ通っていれば起動できるはずです。
絶対パスを入力する
起動するとこのように、パスを入力するように求められます。
エクスプローラーのパスをクリックしてコピペしたものを入力してエンターしてください。
拡張子を決める(拡張子不問のオプションあり)
拡張子は、なんでもOKです。
画像生成民は基本的に、.ckpt .safetensors .pt vae.pt あたりでしょうか?!
ピリオドの有無(.mp4とmp4など)の表記ゆれは許容できるようにしたので、気にせず好きに入力してください。
なお複数個の拡張子には対応していません。
拡張子不問の場合はアスタリスク「*」でOKです。
アスタリスクだけでエンターすれば、このように.safetensorsと.ckptが混在した一覧になります。
結果をコピペしてXY Plotしましょう!
結果は拡張子をつけたままXY Plotに使用できます。
例えばこのように。
なおエラーが出る場合は、大抵.yamlファイルのせいです。拡張子yamlのファイル名だけ消しましょう。
モデルファイルと同一ディレクトリに置く関係で、拡張子不問でファイル名一覧出力した場合はyamlかvae.ptが紛れ込むエラーが生じえます。
(今はもうVAEファイルは同一ディレクトリに置かなくてもいいけど、名残でそうなってる人も少なくないハズ)