私がChatGPTなどに質問したことを書いていくブログ

Chat GPTヘビーユーザーの管理人が、日常に役立つことからどうでもいいことまで様々な質問をまとめたブログです。

Error running process: C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\scripts\dynamic_prompting.py.69it/s] Traceback (most recent call last): File "C:\stable-diffusion-webui\modules\scripts.py", line 832, in process script.proce

Error running process: C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\scripts\dynamic_prompting.py.69it/s] Traceback (most recent call last): File "C:\stable-diffusion-webui\modules\scripts.py", line 832, in process script.process(p, *script_args) File "C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\sd_dynamic_prompts\dynamic_prompting.py", line 480, in process all_prompts, all_negative_prompts = generate_prompts( File "C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\sd_dynamic_prompts\helpers.py", line 93, in generate_prompts all_prompts = prompt_generator.generate(prompt, num_prompts, seeds=seeds) or [""] File "C:\stable-diffusion-webui\venv\lib\site-packages\dynamicprompts\generators\randomprompt.py", line 67, in generate gen = self._context.sample_prompts(template, num_images) File "C:\stable-diffusion-webui\venv\lib\site-packages\dynamicprompts\sampling_context.py", line 119, in sample_prompts command = parse(prompt, parser_config=self.parser_config) File "C:\stable-diffusion-webui\venv\lib\site-packages\dynamicprompts\parser\parse.py", line 557, in parse tokens = get_cached_parser(parser_config).parse_string( File "C:\stable-diffusion-webui\venv\lib\site-packages\pyparsing\core.py", line 1212, in parse_string raise exc.with_traceback(None) pyparsing.exceptions.ParseException: Expected end of text, found '_' (at char 169), (line:5, col:14) このエラーを教えて
 

このエラーは sd-dynamic-prompts がプロンプトを解釈(パース)できずに止まっている 状態です。
結論から言うと、

👉 Dynamic Prompts の構文として不正な _(アンダースコア)が、特定の位置にある
のが原因です。


エラーの核心部分

 
pyparsing.exceptions.ParseException: Expected end of text, found '_' (at char 169), (line:5, col:14)

これを分解すると:

  • Expected end of text
    → 「ここでプロンプトが終わるはずだった」

  • found '_'
    → でも実際には _ が来た

  • line:5, col:14
    → プロンプト5行目の14文字目

つまり
👉 5行目14文字目にある _ が、Dynamic Prompts の文法違反


よくある原因(かなり当てはまります)

ワイルドカード名に _ を使っている

❌ NG例

 
__mecha_frame_parts__

Dynamic Prompts は
ワイルドカード名に使える文字が制限されており、

  • 英数字はOK

  • _ が文脈によってはNGになることがあります(特にネスト時)

✅ 安全な例

 
__mechaframeparts__ __mechaFrameParts__

{}[] の中で _ を含む選択肢

❌ NG例

 
{heavy_armor|light_armor}

これ、見た目は問題なさそうですが
dynamicprompts 側のパーサーではエラーになることがあります

✅ 修正例

 
{heavy armor|light armor}

または

 
{heavy-armor|light-armor}

③ ネガティブプロンプト側に Dynamic Prompts 構文が混じっている

Dynamic Prompts は
ネガティブプロンプトを厳密に解釈します。

❌ よくある地雷

 
bad_hands, bad_anatomy

これが Dynamic Prompts ON の状態だと落ちることがあります。

✅ 対処法

  • ネガティブは Dynamic Prompts を使わない

  • _ をスペースにする

 
bad hands, bad anatomy

すぐ直すためのチェック手順(おすすめ)

✅ 手順1

5行目を確認

  • エラー通り「line:5」をまず見る

✅ 手順2

その行の 14文字目付近の _ を探す

✅ 手順3

以下のどれかに該当していたら修正


確実に直すための一時回避策

「原因特定が面倒」ならこれでほぼ直ります👇

  1. _すべてスペース or ハイフンに置換

  2. ワイルドカード名は 英数字のみにする

  3. ネガティブは Dynamic Prompts OFF


もしよければ

  • 問題の プロンプト全文

  • 特に 5行目

を貼ってもらえれば、
👉 どの _ が原因かピンポイントで指摘します。

sd-dynamic-prompts は便利ですが、
文法はかなりシビアなので、ここで躓く人は非常に多いです。