From 4365726755832e6e33bf57e812aca82d2b83b6eb Mon Sep 17 00:00:00 2001 From: hetima <33700+hetima@users.noreply.github.com> Date: Thu, 29 Jan 2026 16:27:30 +0900 Subject: [PATCH] update readme --- README-ja.md | 2 ++ assets/slp04.jpg | Bin 0 -> 28986 bytes tools/README-ja.md | 47 ++++++++++++++++++++++++++++++++++++++ tools/README.md | 46 +++++++++++++++++++++++++++++++++++++ tools/slp_build_folder.py | 7 +++++- tools/slp_buld_csv.py | 3 ++- 6 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 assets/slp04.jpg create mode 100644 tools/README-ja.md create mode 100644 tools/README.md diff --git a/README-ja.md b/README-ja.md index 385f46b..269f784 100644 --- a/README-ja.md +++ b/README-ja.md @@ -23,6 +23,8 @@ **辞書モード**:テキストの一行目に`#dict`と記入すると2行目以降をコロンを挟んで「表示テキスト: 出力されるテキスト」と解釈して処理します。長い文章を簡潔なタイトルで把握することができます。 +**セクションモード**:テキストの一行目に`#section`と記入すると2行目以降を「\[表示テキスト\](改行)出力されるテキスト」の連続と解釈して処理します。表示テキストの行全体を角括弧で囲み、次の行から出力されるテキストを記入します。出力されるテキストは改行を含めることができます。csvやテキストファイル群から整形済みテキストを生成する[Pythonスクリプトが付属しています](./tools/README-ja.md)。 + ![screecshot02](./assets/slp02.jpg) diff --git a/assets/slp04.jpg b/assets/slp04.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b5072b63545d5d9ec244e247d2a9684e1244297 GIT binary patch literal 28986 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 + English | + 日本語 (Japanese) +

+ +# Tools +[Single Line Picker](https://github.com/hetima/ComfyUI-SingleLinePicker) の動作を補助するPythonスクリプトです。 + + +## slp_buld_csv.py + +csvやtsvを読み込んで、Single Line Pickerで使える形式に変換したテキストを書き出します。 + +``` +python path/to/slp_build_folder.py path/to/file.csv +``` + +と実行すると、.csvや.tsvを1列目を表示テキスト、2列目を出力されるテキストとしてパースし、`#section`形式のテキストファイルをファイル名.slp.txtの名前で保存します。 + +``` +python path/to/slp_build_folder.py path/to/folder +``` + +と実行すると、フォルダ内のすべての.csv、.tsvファイルをパースします。ファイル名を表示テキスト、前述の方法でパースした内容をbase64エンコードして出力されるテキストとして格納し、output.slp.txtの名前で保存します。`#section`形式の出力が`#section`形式となる二重の入れ子構造になっています。Single Line Pickerを2つ繋げて最初のノードに適用することで、カテゴリーを選んでから項目を選ぶようなことができるようになります。 + +![screenshot](../assets/slp04.jpg) + +書き出されたテキストファイルをファイルを読み込むノードでSingle Line Pickerに繋げるか、ノード情報パネルのParametersの`source_text`に内容をペーストすることで内容を適用できます。 + + +## slp_build_folder.py + +フォルダを読み込んで、その中の.txtファイルをまとめて、Single Line Pickerで使える形式に変換したテキストを書き出します。 + +``` +python path/to/slp_build_folder.py -d path/to/folder +``` + +と実行すると、フォルダ内のすべてのtxtファイルをパースします。ファイル名を表示テキスト、内容を出力されるテキストとして格納し、output.slp.txtの名前で保存します。 + +``` +python path/to/slp_build_folder.py -dd path/to/folder +``` + +`-dd`オプションを付けると、フォルダ内のすべてのサブフォルダに対して前述処理を行い、サブフォルダ名を表示テキスト、処理内容を出力されるテキストとして格納し、output.slp.txtの名前で保存します。入れ子構造になります。 + +書き出されたテキストファイルをファイルを読み込むノードでSingle Line Pickerに繋げるか、ノード情報パネルのParametersの`source_text`に内容をペーストすることで内容を適用できます。 diff --git a/tools/README.md b/tools/README.md new file mode 100644 index 0000000..b95fefa --- /dev/null +++ b/tools/README.md @@ -0,0 +1,46 @@ +

+ English | + 日本語 (Japanese) +

+ +# Tools +These are Python scripts that assist the operation of the [Single Line Picker](https://github.com/hetima/ComfyUI-SingleLinePicker). + + +## slp_buld_csv.py + +It reads CSV or TSV files and exports text converted into a format usable with the Single Line Picker. + +``` +python path/to/slp_build_folder.py path/to/file.csv +``` + +When executed, it parses .csv or .tsv with the first column as display text and the second column as output text, then saves the `#section` formatted text file as filename.slp.txt. + +``` +python path/to/slp_build_folder.py path/to/folder +``` + +When executed, it parses all .csv and .tsv files within the folder. The filename is displayed as text, and the content parsed using the above method is stored as text output after base64 encoding, then saved as output.slp.txt. The output format is structured as a two-level nested hierarchy. By connecting two Single Line Pickers and applying them to the first node, you can enable functionality like selecting a category before choosing an item. + +![screenshot](../assets/slp04.jpg) + +To apply this result, connect the exported text file to the Single Line Picker using a node that reads file contents, or paste the contents into `source_text` in the parameters of node info panel. + +## slp_build_folder.py + +Load the folder, gather all the .txt files within it, and output the text converted into a format usable by the Single Line Picker. + +``` +python path/to/slp_build_folder.py -d path/to/folder +``` + +When executed, it parses all .txt files within the folder. It stores the filename as display text and the contents as output text, saving the result as output.slp.txt. + +``` +python path/to/slp_build_folder.py -dd path/to/folder +``` + +When the `-dd` option is specified, the above processing is performed on all subfolders within the folder. Subfolder names are stored as display text, and processing results are stored as output text, saved under the filename `output.slp.txt`. This creates a nested structure. + +To apply this result, connect the exported text file to the Single Line Picker using a node that reads file contents, or paste the contents into `source_text` in the parameters of node info panel. diff --git a/tools/slp_build_folder.py b/tools/slp_build_folder.py index d7d95e2..a6b5a62 100644 --- a/tools/slp_build_folder.py +++ b/tools/slp_build_folder.py @@ -77,7 +77,7 @@ def merge_subfolder_files(target_dir): def main(): parser = argparse.ArgumentParser(description='Converts text files to SLP compatible text file.') - parser.add_argument('path', help='Path to the target file or directory') + parser.add_argument('path', help='Path to the target directory') group = parser.add_mutually_exclusive_group() group.add_argument('-d', action='store_true', help='Process text files in the folder') @@ -85,6 +85,11 @@ def main(): args = parser.parse_args() target_path = Path(args.path) + target_path = Path(target_path) + + if not target_path.is_dir(): + print(f"Error: {target_path} is not a directory.") + return if args.d: process_folder(target_path) diff --git a/tools/slp_buld_csv.py b/tools/slp_buld_csv.py index 5dcddc6..d9cb0f0 100644 --- a/tools/slp_buld_csv.py +++ b/tools/slp_buld_csv.py @@ -63,7 +63,8 @@ def merge_folder_files(target_dir): return "\n".join(final_results) def process_csv(target_path): - # 単体ファイル処理 + """単体ファイル処理""" + target_path = Path(target_path) if target_path.suffix.lower() not in ['.csv', '.tsv']: print("Error: Target path must be a .csv or .tsv file")