見出し画像

複数のファイル名を一括で連番に変更する方法

画像生成AI、特にLoRA作成やAnimateDiffなどでファイル名を連番にする必要があります。



生成直後のファイル名



連番に変更後


枚数が多くなると手入力でファイル名を変更すのは手間がかかりますよね。

今回は、複数のファイル名を一括で連番に変更する方法をいくつか紹介します。OSはWindowsを対象としています。


Pythonで変更する

以下のコードをVSCodeなどで実行すると、「001.png、002.png…」とファイル名が一括で選択されます。

コードにある directory = 'path/to/directory' を変更したファイルが入っているフォルダのパスを指定してください。

import os

# 対象のディレクトリを設定します
directory = 'path/to/directory'  # ここにディレクトリのパスを入力

# ディレクトリ内の全てのPNGファイルを取得
files = [f for f in os.listdir(directory) if f.endswith('.png')]

# ファイル名を連番に変更
for i, file in enumerate(files):
    # 新しいファイル名を作成(001.png、002.png、...)
    new_name = f"{i+1:03}.png"
    
    # ファイル名を変更
    os.rename(os.path.join(directory, file), os.path.join(directory, new_name))

print("ファイル名の変更が完了しました。")


PowerShellで実行

例として、メモ帳を開きます。以下のスクリプトを記入し名前を付けて保存します。ファイル形式を「.txt」から「.ps1」に変更します。


ps1ファイル



# 変更するファイルのパスを設定します。
$filePath = 'path/to/directory'  # ここにディレクトリのパスを入力

# 変更するファイルの拡張子を設定します。
$extension = '.png'

# 新しい連番の開始番号を設定します。
$newStartNumber = 1

# ファイルを取得し、新しい名前でリネームします。
Get-ChildItem -Path $filePath -Filter "*$extension" | Sort-Object Name | ForEach-Object {
    $newFileName = '{0:D3}{1}' -f $newStartNumber, $extension
    Rename-Item -Path $_.FullName -NewName $newFileName
    $newStartNumber++
}


この .ps1ファイルを右クリックして「PowerShellで実行」をクリックします。



PowerRenameで実行

プログラミングがちょっと苦手な方はこちらをオススメします。PowerRenameはPowerToysというツールに含まれている機能です。

PowerToysとは

Windowsの機能をカスタマイズして、作業効率を高めるための無料のユーティリティ集です。PowerRename以外にも画像のサイズの変更、テキスト画像のコピーなど便利な機能がたくさんあります。


PowerToysをインストールするには、GitHubのダウンロードページからインストーラーをダウンロードするか、Microsoft Storeからアプリをインストールしてください。(私はMicrosoft Storeからアプリをインストールしました)


PowerToysインストール後、一括変換したいファイルを選択します。右クリックをして「PowerRename」をクリックします。


Windows11右クリック


PowerRenameを主に操作するのは左側です。正規表現を使用します。

  1. 検索欄に「.*」を入力して全ファイルを指定します。

  2. チェック欄(3つ)にチェックを入れます。

  3. 置換欄に「$100${start=1}」を入力します。


右側の「名前が変更されました」の列にファイル名が正しく変更されているか確認してください。

PowerRename画面


問題がなければ、最後に左下の「適用」をクリックします。


不具合や仕様の変更などで上手く変更されない場合もあります。その場合は適宜手入力で調整してみてください。


まとめ

複数のファイル名を一括で連番に変更する方法をいくつか紹介しました。これらの方法で作業効率が上がれば幸いです。
他にも代用できるプログラミングやツールがありましたらコメント欄で教えてくれると嬉しいです。

いいなと思ったら応援しよう!