プロンプト変数
ノードのラベルを波かっこで囲んで、別のノードの値をプロンプトに入れる方法を説明します。2 本のパイプでデフォルト値を設定し、@ でキャラクターや名前付きの画像を添付できます。
プロンプト変数は、別のノードの値をプロンプトに入れます。{Mood} のようにノードのラベルを波かっこで囲んで書くと、プロンプトの実行時に、Nodaro がそれをそのノードのテキストや選択内容に置き換えます。変数を使えば、プロンプトを一度書くだけで、その一部をほかのノード、ピッカー、リストの項目から変更できます。キャラクター、ロケーション、画像の場合は、@ メンションを使うと、言葉だけでなく画像そのものを添付できます。
仕組み
- 値の取得元となるノードに、「Subject」のようなラベルを付けます。ピッカーには、「Mood」のようなラベルがすでに付いています。
- 別のノードのプロンプトに、
A portrait of {Subject}, {Mood}, soft window lightのように、ラベルを波かっこで囲んで書きます。 - 取得元のノードを、プロンプトのあるノードに接続します。ピッカーの値は、接続しなくてもワークフローのどこからでも使えます。
- ノードを実行します。Nodaro は、各変数を対応するノードの現在の値に置き換えます。
プロンプトエディターで { を入力すると、変数を挿入できます。変数名では、大文字と小文字は区別されません。{mood}、{Mood}、{MOOD} はすべて、「Mood」というラベルのノードを指します。変数ごとに取得元が 1 つに決まるように、取得元のノードにはそれぞれ異なるラベルを付けてください。
デフォルト値
変数には、2 本のパイプの後に、代わりに使う値(フォールバック)を付けられます。変数の値を提供するものが何もない場合、Nodaro はこのフォールバックを使います。
{person || man}は、人物(Person)ピッカーが接続されていればそれを使い、なければ「man」という単語を使います。人物ピッカーがない場合、プロンプトgenerate a {person || man} runningは「generate a man running」になります。- パイプの後に何もない
{person || }は、値を提供するノードがない場合、何も入りません。 - フォールバックの前後のスペースは削除されます。
多くの標準プリセットでは、{brand || a modern tech startup} のようなデフォルト値を使っています。そのため、変更せずに実行しても、プリセットは妥当な結果になります。変数全体を自分の言葉に置き換えるか、一致するラベルのノードを接続して、実行時に値を入れてください。
強調表示
設定パネルのプロンプトエディターと、Ctrl+E で開く大きなプロンプトエディターでは、変数が次のように強調表示されます。
| 強調表示 | 意味 |
|---|---|
| シアン | 接続されたノードがこの名前を提供しているか、組み込みのテンプレート変数の名前です。 |
| アンバー | この名前を提供する接続済みのノードが、まだありません。これはエラーではなく警告です。デフォルト値のある変数は、そのまま機能します。 |
デフォルト値のある変数では、デフォルトのテキストが使われる場合は、明るく表示されます。接続されたノードの値に置き換わる場合は、グレーの取り消し線付きで表示されます。
ノードが送信するテキストを正確に確認するには、ノードのプロンプト欄を編集から最終に切り替えるか、設定パネルのプロンプト欄で最終プロンプトを表示をクリックします。最終ビューでは、プロンプトの各部分が出どころごとに色分けされ、凡例として変化に富む、ピッカー、スニペット、前後のテキスト、リファレンス、スタイル、ネガティブが表示されます。最終プロンプトをコピーで、結果をコピーできます。


変数を解決できない場合
- どのノードにも一致しない名前があると、実行は止まります。デフォルト値のない変数が、ワークフローのどこにも存在しないノードを指定している場合、何かが送信されたり課金されたりする前に実行は拒否されます。そのため、入力ミスで誤った画像が作られることはありません。
- 値のないノードは、空のテキストになります。ノードは存在するものの、まだ何も出力していない場合、デフォルト値のない変数は空のテキストになります。
- 接続されたテキストは書き換えられません。変数ではなく入力を通して届いたテキストは、そのまま使われます。その中の波かっこは、変数として扱われません。
- 予約されている名前があります。プロンプトテンプレートでは、
{userPrompt}のような組み込みの名前をいくつか使います。これらの名前は、ノードのラベルではありません。
ノードが足りない場合:プロンプトのあるノードを選択し、Tab を押してノードを追加します。自動接続がオンの場合、接続ダイアログに、プロンプトの不足している変数が表示されます。1 つを選ぶと、新しいノードにその名前が付き、自動で接続されます。
直接入力したプロンプトと接続したプロンプト
ノードには、直接入力したプロンプトと、プロンプト入力に接続したプロンプトを同時に持たせることができます。
- 画像生成(Generate Image)と動画生成(Generate Video)では、接続したプロンプトが、直接入力したプロンプトの後に追加されます。直接入力したプロンプトで、接続したノードをすでに変数として指定している場合、そのテキストは変数の位置にだけ入ります。接続したプロンプトを追加しないようにするには、設定パネルのプロンプト挿入にあるプロンプトを挿入をオフにします。接続がグレーになるのは、ノードが接続したテキストを使わない場合だけです。これは、プロンプトを挿入がオフで、プロンプトで接続したノードを指定していない場合か、そのノードの後に別のテキストノードが接続されている場合に起こります。グレーの接続にポインターを合わせると、理由が「未使用:『プロンプトを挿入』がオフです」または「未使用:後から接続したテキストノードに置き換えられています」と表示されます。
- ほかのノードでは、直接入力したプロンプトが優先されます。接続したプロンプトが使われるのは、直接入力したプロンプトが空の場合か、直接入力したプロンプトがそれを変数として指定している位置だけです。ノードが接続したプロンプトを使わない場合、接続はグレーになり、「プロンプトで参照されていません」と表示されます。
- バッチでは、リストの各項目が、その実行のプロンプトを置き換えます。リストとバッチ処理を参照してください。
ピッカーがテキストを追加する仕組み
ムード(Mood)、ライティング(Lighting)、フレーミング(Framing)などのピッカーは、モデルを実行しません。接続先のノードのプロンプトに、検証済みの文言を次の 2 つの方法のいずれかで追加します。
- ルックまたはエレメントに接続した場合:ピッカーの文言が、画像生成または動画生成のプロンプトの末尾に追加されます。追加しないようにするには、設定パネルでルックを挿入またはエレメントを挿入をオフにします。
- 変数として指定した場合:
{Mood}と書くと、書いた位置にピッカーの文言がそのまま入ります。これは、接続していなくても、どのプロンプトでも機能します。
カタログのピッカーには、どれもプロンプトヒントの切り替えがあります。フルは選択内容の長い説明を追加し、コンパクトは短い用語だけを追加します。コンパクトを使うと、多くのピッカーを 1 つのノードに接続したときにも、プロンプトを短く保てます。ピッカー自体のカスタムテキスト(前)とカスタムテキスト(後)は、どちらのモードでも文言の前後に追加されます。ピッカーが追加する言葉を正確に確認するには、ピッカーをプロンプトまたは両方の表示モードに切り替えます。
@ によるキャラクターと画像のメンション
@ メンションは、リファレンス画像を添付し、入力した位置に対応するフレーズを書き込みます。画像ノードや動画ノードのプロンプトで @ を入力すると、候補から選べます。
| メンション | 添付されるもの |
|---|---|
キャラクター(例:@maya) | 接続されたキャラクターアセット(Character Asset)ノードの、承認済みのキャラクター画像と説明 |
ロケーション(例:@old-library) | 接続されたロケーションアセット(Location Asset)ノードの、ロケーションの画像と説明 |
名前付きの画像(例:@town:1) | 「Town」というラベルが付いた、接続済みの画像アップロード(Upload Image)ノード |
クリーチャーやオブジェクト(例:@nessie:1) | 接続済みの動物/クリーチャーアセット(Animal/Creature Asset)ノード、またはオブジェクト/小道具アセット(Object/Props Asset)ノード。候補の一覧がないため、手で入力します。 |
メンションでは、リファレンスから何を使うかも指定できます。@town:1:background は「the background from reference image A」になり、@maya:1:clothes は服だけを使います。キャラクターとロケーションは、プロンプト内にチップとして表示されます。チップのサムネイルをクリックすると、そのキャラクターやロケーションの別の画像を選べます。チップのラベルをクリックすると、そこから何を使うかを選べます。すべての役割と顔の固定については、リファレンスの役割で説明しています。
数字で始まるラベルはメンションに使えないため、名前を変更してください。キャラクターやロケーションが画像と同じ名前の場合は、キャラクターやロケーションが優先されます。
接続したリファレンスの指定
Seedance 2 のように複数のリファレンスを受け付ける動画モデルでは、位置を表すトークンを使って、フレーズを接続済みのリファレンスの 1 つに向けられます。
| トークン | 変換後 |
|---|---|
{image:1:person} | 「the person from @image_1」 |
{image:2:jacket} | 「the jacket from @image_2」 |
{image:1} | 「the subject in @image_1」 |
{video:1:clip} | 「the clip from @video_1」 |
{audio:1:voice} | 「the voice from @audio_1」 |
番号は、まず画像リファレンスに接続した画像に順番どおりに付けられ、次にアセットに接続したアセットに付けられます。接続したリファレンスの数より大きい番号のトークンは、単なるラベルになります。リファレンスに対応していないモデルも、単なるラベルとして読み取ります。
変数を使える場所
- 画像、動画、オーディオ、音楽、音声、テキストの各ノードのプロンプトと、テキスト(Text)ノードのテキスト。
- 前後のテキスト:プロンプトの前後のテキストを参照してください。
- リストの項目:バッチの各項目に、変数を含められます。
- 一部のユーティリティ設定:たとえば、セレクター(Selector)ノードの除数、値、シードのフィールドです。
値ではなく再利用できるテキストを挿入するには、プロンプトで / を入力してプロンプトスニペットを開きます。スニペットは、プレーンテキストとして挿入されます。
よくある質問
関連ページ
プロンプトの前後のテキスト
リファレンスの役割
プロンプトスニペット
リストとバッチ処理
テキスト
最終更新