SDXL プロンプト スタイラー - メニューカスタマイズ
このドキュメントでは、SDXL プロンプト スタイラーのメニューオプションを外部設定ファイルを用いてカスタマイズする方法を説明します。このアプローチにより、コアのPythonコードを編集することなく、メニューグループを簡単に更新、追加、変更できます。
概要
スクリプト(`sdxl_prompt_styler.py`)は、プロンプトのスタイル設定用に複数のメニューグループを定義しています。もともと、これらのメニューはPythonスクリプト内にハードコードされていました。現在では、styler_config.jsonという名前のJSONファイルを用いて、メニュー定義を外部から設定できるようになりました。これにより、コーディング経験がないユーザーでも簡単にカスタマイズが可能になります。
ファイル構造
以下は、スクリプトがstyler_config.jsonで定義された各メニューアイテムに対応する異なるデータフォルダーを指す例のフォルダ構造です:
project_directory/
|— sdxl_prompt_styler.py # プロンプトスタイル設定用のメインPythonスクリプト
|— styler_config.json # メニューカスタマイズ用の外部設定ファイル
|— data/ # すべてのスタイルカテゴリを含むフォルダー
|— camera/ # 'camera'スタイル用フォルダー
|— composition/ # 'composition'スタイル用フォルダー
|— depth/ # 'depth'スタイル用フォルダー
|— environment/ # 'environment'スタイル用フォルダー
|— filter/ # 'filter'スタイル用フォルダー
|— focus/ # 'focus'スタイル用フォルダー
|— lighting/ # 'lighting'スタイル用フォルダー
|— mood/ # 'mood'スタイル用フォルダー
|— subject/ # 'subject'スタイル用フォルダー
|— theme/ # 'theme'スタイル用フォルダー
|— timeofday/ # 'timeofday'スタイル用フォルダー
dataディレクトリ内の各フォルダーは、styler_config.jsonのメニューに記載されたアイテムと一致します。この構造により、JSONファイル内の各メニューアイテムが、対応するスタイルデータを含むフォルダーに直接リンクされます。
この機能に関連するファイルは以下の通りです:
project_directory/
|— sdxl_prompt_styler.py # プロンプトスタイル設定用のメインPythonスクリプト
|— styler_config.json # メニューカスタマイズ用の外部設定ファイル
|— other_files/ # その他の関連ファイルおよびディレクトリ
外部設定ファイル(`styler_config.json`)
JSONファイル内の各メニューアイテムの値は、dataディレクトリ内の対応するフォルダー名と一致させる必要があります。各アイテムは、スクリプトが正しくスタイルにリンクできるように、実在するフォルダー名と完全に一致しなければなりません。
styler_config.jsonファイルにはメニューディファインが含まれています。このファイルは、メインのPythonスクリプト(`sdxl_prompt_styler.py`)と同じディレクトリに配置する必要があります。
例:styler_config.json
以下は、styler_config.jsonファイルの例です:
{
"Perfection Styler": [
"camera", "composition", "depth", "environment", "filter",
"focus", "lighting", "mood", "subject", "theme", "timeofday"
],
"Enhanced Styler": [
"camera", "composition", "depth", "environment", "filter",
"focus", "lighting", "mood", "subject", "theme", "timeofday"
]
}
- 各メニュー名はキー(例: "Perfection Styler")であり、各メニュー下のアイテムは配列として定義されます。
- リスト内の各アイテムは、
dataディレクトリ内にある対応するフォルダー名と一致していなければなりません。
- ユーザーは必要な場合、新しいメニューを追加、既存のメニューを編集、またはメニューを削除できます。
メニューのカスタマイズ方法
1. **テキストエディタでstyler_config.jsonを開く**:お好みのテキストエディタ(例:Notepad、VSCode、Sublime Text)を使用してください。
2. **メニューを変更する**:
- **新しいメニューを追加**:JSONファイルに新しいキー・バリューを追加するだけです。
- **既存のメニューを編集**:既存のキーの下にあるアイテムのリストを変更します。
- **メニューを削除**:対応するキー・バリューを削除します。
新しいメニューの追加
**"Creative Styler"**という新しいメニューを追加するには、JSONを以下のように変更します:
{
"Perfection Styler": [
"camera", "composition", "depth", "environment", "filter",
"focus", "lighting", "mood", "subject", "theme", "timeofday"
],
"Enhanced Styler": [
"camera", "composition", "depth", "environment", "filter",
"focus", "lighting", "mood", "subject", "theme", "timeofday"
],
"Creative Styler": [
"abstract", "vivid colors", "dynamic", "motion", "unique perspective"
]
}
既存のメニューの編集
既存のメニュー(例:**"Enhanced Styler"**)を編集して、必要なアイテムを追加できます。たとえば、Enhanced Stylerにmysticalという新しい要素を追加するには:
{
"Perfection Styler": [
"camera", "composition", "depth", "environment", "filter",
"focus", "lighting", "mood", "subject", "theme", "timeofday"
],
"Enhanced Styler": [
"camera", "composition", "depth", "environment", "filter",
"focus", "lighting", "mood", "subject", "theme", "timeofday", "mystical"
]
}
メニューの削除
特定のメニュー(例:**"Perfection Styler"**)が不要になった場合、JSONから対応するキー・バリューを削除するだけです:
{
"Enhanced Styler": [
"camera", "composition", "depth", "environment", "filter",
"focus", "lighting", "mood", "subject", "theme", "timeofday"
],
"Creative Styler": [
"abstract", "vivid colors", "dynamic", "motion", "unique perspective"
]
}
スクリプトの実行
設定ファイルを変更した後は、通常通りPythonスクリプトを実行するだけです:
python sdxl_prompt_styler.py
スクリプトは自動的にstyler_config.jsonからメニュー定義を読み込みます。設定ファイルが存在しないか、不正な形式の場合は、スクリプトはデフォルトのハードコードされたバージョンにフォールバックして機能を保証します。
エラー対応
- **設定ファイルが見つからない**:スクリプトが
styler_config.jsonを見つけられなかった場合、エラーメッセージを表示し、デフォルト設定にフォールバックします。
- **無効なJSON形式**:
styler_config.jsonが正しいJSON形式であることを確認してください。jsonlint.comなどのオンラインJSONバリデータを使用して正しさを検証できます。
まとめ
新しい設定機能により、SDXL プロンプト スタイラーのメニュー管理とカスタマイズが簡単になります:
- **Pythonコードを編集する必要なし**。
- **シンプルなJSONファイルによる柔軟な設定**。
ご自身のニーズに合わせてメニューを追加・変更し、パーソナライズされたプロンプトスタイル体験をお楽しみください!