LORA用のキャプシャンファイルからタグを削除

python Python

はじめに

AIの画像生成用にLORA用のキャプシャンファイルを作成するにあたり
画像ファイルから自動生成されるキャプシャンファイルより
学習用のタグを削除するのがファイル数が多くなると時間がかかるので
pythonで削除するソースを作成しました。

概要

今回作成のプログラムの概要を記載します 
・前提事項
 「Stable Diffusion webUI」の拡張機能の「WD1.4Tagger」で作成されたファイルが対象
  出力用のディレクトリ(フォルダ)を作成している事
・実行環境
 python3

ソース

import csv
import glob
import os

#インプット及びアウトプットディレクトリ
#実行環境に合わせてください
in_pas = 'P:\\work\\LORA\\rinnosuke\\in\\'
out_pas = 'P:\\work\\LORA\\rinnosuke\\out\\'

#該当のファイルを取得する。
get_f = in_pas + '*.txt'
flist = glob.glob(get_f)

#削除したい、タグをリストにいれる。
del_words = ['ahoge','glasses','yellow eyes','white hair']

#1ファイルを読み取り、タグを削除後にファイルをアウトプットディレクトリに入れる
#CSVの処理
for f_data in flist:
    with open(f_data) as f:
        reader = csv.reader(f,skipinitialspace=True)
        #リストの初期化
        lne = []
        lne = [row for row in reader]
        #今回のCSVは1行のみなので、移し替える
        ssc = lne[0]
        f.close()

    fname=fname = os.path.basename(f_data)
    print(fname)    

    #リストから不要文字を削除する
    #removeをループ内部で使用できないので、入れなおします。
    csv_ss=[]
    csv_ss=ssc.copy()
    for lss in ssc:
        for ewk in del_words:
            
            if lss == ewk:
              #コピーしたリストから    
                #不要の文字を削除する
                csv_ss.remove(ewk)
       
    
    #CSVに書き込む
    with open(out_fne+fname, 'w',newline='') as f:
        writer = csv.writer(f,delimiter=',',quotechar="'",quoting=csv.QUOTE_NONE)
        writer.writerow(csv_ss)
        f.close()    

コメント

タイトルとURLをコピーしました