webui-monaco-prompt
Paketprofil
- Status
- Überprüft
- Verleger
- @Taremin
- Quelle
- GitHub
README
WebUI Monaco Prompt
これは AUTOMATIC1111 氏の stable-diffusion-webui と ComfyUI 用の拡張です。
プロンプトの編集をVSCodeでも使用されているエディタ実装 Monaco Editor で行えるようにします。
インストール
AUTOMATIC1111 Stable Diffusion WebUI
stable-diffusion-webui の Install from URL からこのリポジトリのURL https://github.com/Taremin/webui-monaco-prompt を入力してインストールしてください。
ComfyUI (Experimental)
下記の二通りからお好きな方法でインストールしてください。
custom_nodesにこのリポジトリを clone するComfyUI Manager MenuのInstall via Git URLにこのリポジトリのURLを入力してインストールする
以前のインストール方法
Releases からzipファイルをダウンロードして
v0.1.2からはこの方法ではインストールできなくなりました。web/extensions に展開してください。
機能
-
VIM キーバインディング対応 (monaco-vim)
-
色付け機能
- 標準表記
- Dynamic Prompts拡張表記
-
オートコンプリート対応
- デフォルトでは
danbooru.csv,extra-quality-tags.csvを読み込んでいるので既にa1111-sd-webui-tagcompeteを使用している方は違和感なく使えます <を入力すると Extra Networks (HN/LoRA/LyCORIS) のみの候補を出せます- LyCORISは[a1111-sd-webui-lycoris](https://github.com/KohakuBlueleaf/ a1111-sd-webui-lycoris)拡張導入時に使用可能です
- この機能は Deprecated (非推奨)になりました
- 今後のアップデートで削除される予定です
- スニペットとモデル名サジェストを使用してください
- デフォルトでは
-
モデル名サジェスト
-
Ctrl-Mから始まるショートカットキーでモデル名の挿入が行えますモデル ショートカットキー Checkpoint Ctrl-M->Ctrl-MLoRA Ctrl-M->Ctrl-LEmbedding Ctrl-M->Ctrl-EHypernetwork Ctrl-M->Ctrl-HVAE Ctrl-M->Ctrl-A
-
-
スニペット
Ctrl-M->Ctrl-Sで挿入可能- 詳細は後述
また、他にも Monaco に備わっている VSCode 互換のショートカットキーなども使用可能です。
スニペット
スニペット(断片)はよく使う入力をテンプレートで行えるようにする機能です。
追加方法
スニペットはこの拡張の snippets ディレクトリか、各カスタムノード/拡張機能以下の snippets ディレクトリに含まれる .json を読み込みます。
JSONのフォーマットは {"label": string, "insertText": string, documentation: string} か、その配列です。
insertText では下記のスニペット構文が使用可能です。
documentation では Markdown 及び一部の HTML タグが使用可能です。
構文
スニペット構文は VSCode 互換のものが使用できます。 https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-syntax
ディレクトリ内のファイル一覧の挿入(動的展開機能)
insertText 内で ${dir:...} タグを記述することで、そのスニペットを配置したカスタムノード配下の特定ディレクトリ内のファイル一覧を自動的に検索して選択肢やリストとして展開できます。
構文
${dir:パスパターン|option1=value1|option2=value2|...}
パラメータ・オプション
dir(位置引数 / 必須): 対象ディレクトリ・glob パターン(例:wildcards/*.txt,@models/loras)- パスに
@models/<category>(例:@models/loras,@models/diffusion_models,@models/checkpoints,@models/embeddings)を指定すると、ComfyUI に登録されている追加パスを含むすべてのモデルファイル一覧を自動取得します。
- パスに
pattern(任意): ファイル名に適用する抽出・置換用の正規表現(例:pattern=\.[^.]+$)replace(任意): 置換後の文字列。pattern指定時にreplaceを省略した場合はマッチ箇所が削除されます。format(任意): 出力形式choice(デフォルト): Monaco Editor 用の選択肢構文${1|opt1,opt2|}に変換lines: 改行区切りテキストcomma: カンマ区切りテキスト
var/index/num(任意):format=choiceの場合の変数番号を指定(デフォルト:1)。例:var=2→${2|opt1,opt2|}
記述例
- ワイルドカードの選択肢挿入(拡張子除去):
<include:${dir:wildcards/*.txt|pattern=\.[^.]+$|var=1|format=choice}> - LoRA モデル選択肢の挿入:
<lora:${dir:@models/loras|pattern=\.[^.]+$|var=1}:1.0> - Diffusion Models 一覧を改行区切りで挿入:
${dir:@models/diffusion_models|pattern=\.[^.]+$|format=lines}
ComfyUI カスタムノード
ComfyUI 環境において、プロンプトのパーツ化・テンプレート展開・動的フィルタリングを行える複数のカスタムノードを提供しています。
ノード間の基本データフロー
[ MultiText ]
│
├─ contents (テキストリスト)
└─ json ───► [ JsonFilter ] ───► json ───► [ Template ] ───► contents (展開済プロンプト)
MultiTextでプロンプトやパーツアセットを仮想ファイルツリーとして定義・編集します。- 出力される
jsonメタデータ(ファイル情報リスト)をJsonFilterに渡して条件抽出・絞り込みを行います。 - 抽出結果を
Templateのentry_pointsま
Knoten in diesem Paket
5 Knoten (Plural)
Knoten in diesem Paket
5 Knoten (Plural)- WebuiMonacoPromptFind
- WebuiMonacoPromptJsonFilter
- WebuiMonacoPromptMultiText
- WebuiMonacoPromptReplace
- WebuiMonacoPromptTemplate
Quellen
3 Quellen
Quellen
3 QuellenVerifiziert 27. Okt.
Verifiziert 27. Okt.
Quellenauszüge
1 Auszug
Quellenauszüge
1 AuszugSource context: Repo Taremin/webui-monaco-prompt
