prompt-engineering について
ComfyUIで画像生成プロンプトを作成するためのスキルです。CLIPのエンコードや重み付け、モデル別の書き方に加え、長文プロンプト、埋め込み、LoRAのトリガーワードも説明します。
主な機能
- 01CLIPのチャンクとBREAKの使い方
- 02プロンプトの重み付け構文
- 03SD 1.5、SDXL、Flux、SD3のガイド
- 04埋め込みとLoRAのトリガーワード
- 05ワイルドカードと条件付けノード
活用シーン
- 01CLIPのトークン上限を超えるプロンプトの処理
- 02モデルに応じた正・負プロンプトの調整
- 03負プロンプトでの埋め込みの利用
- 04LoRA、ワイルドカード、領域条件の組み合わせ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ artokun/ comfyui-mcp --skill prompt-engineeringインストール後、Claude Code で/prompt-engineeringを入力して読み込まれたか確認します。
詳細
ComfyUI プロンプトエンジニアリング
CLIP テキストエンコーディングの基礎
ComfyUI は、CLIP(Contrastive Language-Image Pre-training)テキストエンコーダーを使用して、テキストプロンプトを条件付けテンソルに変換します。CLIPTextEncode ノードはテキスト文字列と CLIP モデルを受け取り、KSampler 用の CONDITIONING 出力を生成します。
トークン上限
CLIP はテキストを77 トークン単位のチャンクで処理します。通常、1 語は 1~3 トークンです。77 トークンを超えるプロンプトは、BREAK トークンまたはマルチ CLIP エンコーディングノードを使用しない限り、通知なしに切り捨てられます。
重みの構文
強調(アテンションの重み)
特定の単語やフレーズに対するモデルの注目度を調整します。
| 構文 | 効果 | 同等の重み |
|---|---|---|
(word:1.3) | 強調を 30% 増やす | 明示的な重み 1.3 |
(word:0.7) | 強調を 30% 減らす | 明示的な重み 0.7 |
(word) | わずかに強調する | (word:1.1) |
((word)) | 中程度に強調する | (word:1.21) — 1.1^2 |
(((word))) | 強く強調する | (word:1.331) — 1.1^3 |
[word] | わずかに弱める | (word:0.9091) — 1/1.1 |
[[word]] | 中程度に弱める | (word:0.8264) — 1/1.1^2 |
重みのルール
- 有効範囲:0.0~2.0(1.5 を超えると、アーティファクトが発生することがよくあります)
- デフォルトの重み:変更されていないトークンは 1.0
- 入れ子にすると乗算で重なります:
((word))= 1.1 * 1.1 =(word:1.21) - フレーズ:
(red sports car:1.3)はフレーズ全体に重みを適用します - 組み合わせ:
(detailed face:1.4), (blurry background:0.6)を 1 つのプロンプト内で組み合わせます
例
a (beautiful:1.3) woman with (flowing red hair:1.2), wearing a blue dress, (sharp focus:1.1)
(masterpiece:1.4), (best quality:1.3), a knight in (ornate armor:1.2), standing on a cliff, (dramatic lighting:1.1), cinematic
BREAK トークン
BREAK キーワードを使うと、CLIP は現在の 77 トークンのチャンクを終了し、後続のテキストを新しいチャンクで処理します。長いプロンプトでは非常に重要です。
BREAK を使用する場面
- プロンプトが約 60 語を超える場合(77 トークンの上限に近づいている場合)
- プロンプトの概念的に異なる部分を分けたい場合
- 一部の詳細が無視されている場合(77 トークンの上限を超えている可能性があります)
BREAK の例
masterpiece, best quality, a beautiful Japanese garden with cherry blossoms,
stone lanterns, koi pond, traditional wooden bridge, morning mist
BREAK
highly detailed, 8k uhd, photorealistic, volumetric lighting,
depth of field, golden hour, award-winning photography
各チャンクは個別にエンコードされた後、条件付けとして連結されるため、すべてのトークンが処理されます。
埋め込み/テキスト反転
埋め込み(テキスト反転)は、複雑な概念を 1 つのトリガー語にエンコードする、事前学習済みのトークンセットです。
構文
embedding:easynegative
embedding:badhandv4
embedding:bad-image-v2-39000
プロンプトでの使い方
- 埋め込みのトリガーをプロンプトのテキストに直接配置します
- 品質向上のため、ネガティブプロンプトで使われることが最も多いです
- 埋め込みの
.safetensorsまたは.ptファイルはmodels/embeddings/に配置する必要があります
よく使われるネガティブ埋め込み
| 埋め込み | 最適な用途 | 説明 |
|---|---|---|
easynegative | SD 1.5 | 全般的な品質向上 |
badhandv4 | SD 1.5 | 手の崩れを修正 |
bad-image-v2-39000 | SD 1.5 | アーティファクトを軽減 |
negativeXL_D | SDXL | SDXL 専用のネガティブ埋め込み |
ac_neg1 | SDXL | 代替の SDXL ネガティブ |
埋め込みを使った例
ポジティブ:a portrait of a woman, masterpiece, best quality
ネガティブ:embedding:easynegative, embedding:badhandv4, worst quality, low quality
モデル固有のプロンプト作成
SD 1.5
ネガティブプロンプト:重要です。SD 1.5 はネガティブプロンプトの影響を受けやすいです。
ポジティブプロンプトの構成:
(masterpiece:1.2), (best quality:1.2), subject description, details, style tags
推奨されるネガティブプロンプト:
worst quality, low quality, normal quality, lowres, watermark, signature,
text, jpeg artifacts, blurry, bad anatomy, bad hands, extra fingers,
missing fingers, extra limbs, deformed, disfigured, mutation, ugly
主な注意点:
masterpiece, best qualityなどの品質タグは、出力に大きな違いをもたらします- danbooru 形式のタグによく反応します:
1girl, long hair, blue eyes, school uniform - 埋め込みベースのネガティブ(
easynegative)は効果的です - 各チャンクの上限は 77 トークンなので、プロンプトは簡潔にしてください
SDXL(1.0 / Turbo / Lightning)
ネガティブプロンプト:重要度は中程度です。SDXL は SD 1.5 ほどネガティブプロンプトに敏感ではありません。
ポジティブプロンプトの構成:
subject description with natural language, detailed description of scene and style
推奨されるネガティブプロンプト:
blurry, low quality, deformed, ugly, bad anatomy, disfigured, poorly drawn face,
mutation, mutated, extra limbs, watermark, text
主な注意点:
- SDXL はタグベースのプロンプトよりも自然言語を理解しやすいです
- CLIP エンコーダーを 2 つ(CLIP-L + CLIP-G)搭載しています。個別に制御するには
CLIPTextEncodeSDXLを使用してください CLIPTextEncodeSDXLには、text_g(全体的な説明)とtext_l(局所的な詳細)の個別フィールドがあります- 長いプロンプトを標準でサポートします(2 つの CLIP による 77 トークンのチャンク 2 個)
- 品質タグの重要度は下がりますが、役に立つことに変わりはありません
- SDXL Turbo:1〜4 ステップ、CFG 1.0〜2.0。必要なネガティブプロンプトは最小限です
- SDXL Lightning:4〜8 ステップ、CFG 1.0〜2.0。空のネガティブプロンプトでも動作することがよくあります
Flux(Flux.1 schnell / dev)
ネガティブプロンプト:使用しません。Flux はネガティブコンディショニングなしで CFG=1.0 で動作します。
ポジティブプロンプトの構成:
Detailed natural language description. Flux excels with descriptive sentences
rather than comma-separated tags. Describe the scene as if writing a paragraph.
主な注意点:
- **CFG は 1.0 に設定してください。**値を上げるとアーティファクトが発生します
- **ネガティブプロンプトは使用しません。**ネガティブコンディショニングには何も接続しないか、空文字列を接続してください
- T5-XXL エンコーダーは複雑な文や空間的な関係を理解します
- Flux は SD モデルよりも構成的なプロンプトを適切に処理します
- T5 エンコーダーのおかげで、長いプロンプト(200 トークン以上)も適切に機能します
- プロンプトの構成:キャプションのように、シーンを自然に説明してください
- Schnell:4 ステップ、シンプルなスケジューラー
- Dev:20〜50 ステップ、sgm_uniform スケジューラー
Flux プロンプトの例
A serene Japanese garden in autumn. A stone path leads through a grove of maple
trees with bright red and orange leaves. A small wooden bridge crosses a koi pond
where golden fish swim beneath the surface. Morning mist rises from the water,
and soft sunlight filters through the canopy. The scene is photorealistic with
warm, natural lighting and shallow depth of field.
SD3 / SD3.5
ネガティブプロンプト:最小限です。SD3 ではネガティブな誘導はほとんど必要ありません。
ポジティブプロンプトの構成:
Natural language description, supports very long detailed prompts thanks to T5-XXL
主な注意点:
- CLIP-L + CLIP-G + T5-XXL のトリプル CLIP アーキテクチャを採用しています
- SD 1.5 や SDXL よりもはるかに長いプロンプトをサポートします
- タグベースのプロンプトよりも自然言語が適しています
- CFG 4〜7(SD 1.5 より低い値)
- ネガティブプロンプトは最小限で十分です。通常は
low quality, blurryで足ります - 利用できる場合は、モデル固有のエンコードに
CLIPTextEncodeSD3ノードを使用してください
プロンプト構成のベストプラクティス
推奨される順序
- 品質を高める語句(SD 1.5 / SDXL の場合):
masterpiece, best quality, highly detailed - 被写体:
a young woman, a cyberpunk cityscape, a golden retriever - 被写体の詳細:
with long flowing red hair, wearing a white dress - 動作・ポーズ:
standing in a field, looking at the camera, running - 環境:
in a sunlit meadow, at night in a neon-lit street - 構図:
close-up portrait, full body shot, wide angle - 照明:
dramatic lighting, soft natural light, studio lighting, golden hour - スタイル・媒体:
oil painting, photograph, digital art, watercolor, anime - 技術的な品質:
8k, uhd, photorealistic, sharp focus, depth of field
品質を高める語句
これらのトークンは、SD 1.5 と SDXL の両方で出力品質を全般的に向上させます:
masterpiece, best quality, highly detailed, 8k, photorealistic,
ultra-detailed, sharp focus, professional, award-winning
特にフォトリアリズムを高める場合:
photorealistic, hyperrealistic, RAW photo, DSLR, 8k uhd,
film grain, Fujifilm XT3, sharp focus, natural lighting
アニメ・イラストの場合:
masterpiece, best quality, highly detailed, anime,
beautiful detailed eyes, detailed face, illustration
LoRA のトリガーワード
LoRA(Low-Rank Adaptation)モデルは特定のコンセプトでファインチューニングされており、学習したコンセプトを有効にするにはトリガーワードが必要です。
ルール
- トリガーワードは各 LoRA 固有です。LoRA のモデルページでトリガーワードを確認してください
- トリガーワードをプロンプトに自然に含めます:
a photo of ohwx woman in a garden(ここではohwxがトリガーです) - スタイルのトリガーを使用する LoRA もあります:
in the style of pixar3d - 複数の LoRA を重ねて使用できますが、それぞれに対応するトリガーワードをプロンプトに含める必要があります
- LoRA の強度(
LoraLoaderノード内)はプロンプトの重みと相互作用します。通常は一方をデフォルトのままにしてください
よくあるパターン
# Character LoRA
a photo of sks person, wearing casual clothes, in a park
# Style LoRA
a landscape painting, autumn forest, in the style of impressionism, masterpiece
# Concept LoRA
a character wearing mecha_armor, standing in a battlefield, detailed
ワイルドカードと動的プロンプト
ComfyUI-Impact-Pack またはワイルドカードノードパックがインストールされている場合は、動的プロンプト構文を使用できます:
ワイルドカード構文
a {red|blue|green|yellow} car parked on a {sunny|rainy|snowy} street
各 {option1|option2|option3} は、生成ごとにオプションを 1 つランダムに選択します。
ワイルドカードファイル
ワイルドカード .txt ファイル(1 行につき 1 つのオプション)を参照できます:
a __haircolor__ haired woman wearing a __clothing__ in __location__
haircolor.txt、clothing.txt、location.txt はワイルドカードディレクトリに配置します。
CLIPTextEncode のバリエーション
| ノード | 用途 | 備考 |
|---|---|---|
CLIPTextEncode | 標準的な単一CLIPエンコード | すべてのモデルで動作します |
CLIPTextEncodeSDXL | G/Lフィールドを個別に指定するSDXLのデュアルCLIP | SDXLをより細かく制御できます |
CLIPTextEncodeSD3 | SD3のトリプルCLIPエンコード | SD3/SD3.5モデル向けです |
CLIPTextEncodeFlux | FluxのT5ベースのエンコード | Fluxモデル向けです |
ConditioningCombine | 2つのコンディショニングを結合 | 異なるプロンプト要素を組み合わせます |
ConditioningSetArea | 領域別プロンプト | 画像の特定領域にコンディショニングを適用します |
ConditioningSetMask | マスクベースのコンディショニング | マスクが有効な領域にのみプロンプトを適用します |
よくあるプロンプトの間違い
- Fluxでネガティブプロンプトを使う:Fluxはネガティブプロンプトを無視し、CFG > 1にするとアーティファクトが発生します
- Flux/SD3でタグ形式のプロンプトを使う:これらのモデルは自然言語による説明を好みます
- BREAKを使わずに77トークンを超える:上限を超えたトークンは通知なく切り捨てられます
- 重みを1.5より大きくする:色にじみ、アーティファクト、歪みが発生します
- 矛盾する語句を使う:
(bright:1.3) (dark:1.3)のような指定はモデルを混乱させます - ファイルなしで埋め込みを使う:
.safetensorsファイルがインストールされていない状態でembedding:nameを使うとエラーになります - LoRAのトリガーワードが間違っている:LoRAを有効にするには、プロンプトに正確なトリガーワードを含める必要があります
- Fluxのプロンプトに品質タグを使う:
masterpiece, best qualityはFluxでは意味がありません。品質を自然な言葉で説明してください
出典
- 公式: ベンダーによる専用のプロンプトガイドは見つかりませんでした。CLIPの
(word:1.2)アテンションはコミュニティの慣習(A1111/ComfyUI)であり、モデルベンダーの仕様ではありません。 - 実証: モデル固有の注意点(FluxのCFG=1、SD 1.5の品質タグ、BREAKトークン)は、ComfyUIで確認された挙動に基づいています。