使用ガイド
FLUX 3 プロンプトレシピ:コピー&ペーストで使える動画生成例
シーン設定、カメラワーク、オーディオヒントに使える実用的なプロンプトパターン
自由記述型プロンプトよりレシピ型プロンプトが優れている理由
自由記述型プロンプトは、頭に浮かんだことを何でも打ち込めるので、生産的に感じられます。しかし、再現できない結果を生み出す最短の方法でもあります。返ってきた動画が意図と違うとき、60語の文章のどの部分が問題を引き起こしたのかを切り分けるクリーンな方法がありません。
レシピは固定スロットを持つプロンプトです。毎回のリクエストで同じ順序で同じフィールドを埋めるため、2回の実行間で変わるのは意図的に変更した項目だけになります。これには3つの実用的な利点があります:
- 分散の低減。 シーンとスタイルに安定した表現を使うことで、モデルが毎回の呼び出しで意図を再解釈しなくなります。
- 高速なデバッグ。 カメラが違う場合は、カメラスロットだけを見ればよく、文字列全体を見る必要はありません。
- 再利用性。 商品ショット用に組んだレシピは、被写体を差し替えて埋め直しても予測可能に動作します。
レシピは動画生成のための小さな社内DSLだと考えてください。テンプレートを一度書き、リクエスト時に値を渡します。このガイドの残りでは、このDSLをスロットごとに構築し、コピー&ペーストして自分の被写体に合わせられる例を提供します。
FLUX 3 プロンプトレシピの構造
信頼できるFLUX 3レシピには6つのスロットがあり、固定の順序で組み合わされます。順序は重要です。前方のスロットが画面を設定し、後方のスロットがそれを細部化します。
- 被写体 —— 何を撮るか。具体的な視覚的属性を伴います。
- 環境 —— どこで起こるか:場所、時間帯、天気、背景要素。
- スタイル —— 見た目:光の質感、カラーパレット、レンズ特性、レンダリング意図。
- モーション —— 画面内部で何がどう動くか。
- カメラ —— 視点自体がどう動くか、あるいは静止しているか。
- オーディオ —— 動画クリップに伴うべき雰囲気音と個別の効果音。
汎用テンプレートは次のようになります:
Subject: <one clear subject with 2-3 visual attributes>
Environment: <location, time of day, background detail>
Style: <lighting, palette, lens and render character>
Motion: <what moves, direction, speed, and continuity>
Camera: <static or the exact camera move>
Audio: <ambient bed>; <discrete action sounds>
各スロットは1〜2文の短い文に保ってください。スロット値が長すぎることは、細部が失われる最も一般的な原因です。後方の文が前方の文と注意を奪い合うからです。1つのスロットに1文以上必要なら、通常は2つのアイデアが含まれているので、別のスロットまたは別の実行に分割すべきです。
シーン設定レシピ
アニメーションを始める前に、ベースシーンを確定します。モーションとカメラを最小値または静止に設定して生成し、被写体・環境・スタイルが調和しているかを確認します。静止時に間違っているシーンは、動かしても良くなりません。
レシピ:屋内プロダクトシーン
Subject: a matte ceramic mug, rounded handle, faint speckled glaze
Environment: a wooden kitchen counter, soft morning light from a window on the left, blurred shelves behind
Style: natural light, warm neutral palette, shallow depth of field, photorealistic
Motion: none
Camera: static
Audio: quiet room tone
レシピ:屋外の定場ショット
Subject: a lone stone lighthouse on a low cliff
Environment: overcast coastal evening, wet rocks, distant whitecaps, heavy cloud layer
Style: desaturated cool palette, wide lens, cinematic realism
Motion: none
Camera: static
Audio: steady wind, distant surf
シーンスロットを安定させる要素
- 数えられる属性で被写体を固定する。 「丸みのある取っ手」と「斑点のある釉薬」は「美しいカップ」よりも範囲を絞り込みます。
- 光源と方向を指定する。 「左からの柔らかな朝の光」はチェック可能ですが、「良い照明」はそうではありません。
- 背景を深度で分離したレイヤーとして記述する。 前景・中景・背景の表現により、画面が平面の背景板に潰れるのを防ぎます。
- シリーズ内でスタイルスロットを一貫させる。 2つのクリップを繋げる必要があるなら、まったく同じスタイル値を使ってください。
静止シーンが正しく読めるようになったら、被写体・環境・スタイルスロットを凍結し、定数として扱いながらモーションを調整できます。
モーションとカメラ言語のレシピ
最もよくあるプロンプトの失敗は、被写体の動きとカメラワークを1つの文に混ぜることです。「モデルがカメラの方を向く間にゆっくりとドリーイン」は、短い1文に2つの変数を含んでおり、モデルがどちらに従ったのか判断できません。
これらを分離してください。モーションは画面内部で何が起こるかを記述します。カメラは視点がどう振る舞うかを記述します。それぞれ別々にデバッグします。静止カメラでモーションを変え、次に固定被写体でカメラを変えます。
モーション表現パターン
Motion: the steam above the mug drifts up and slightly right, slow and continuous
Motion: the flag ripples in short gusts, fabric folding toward the viewer
Motion: the subject turns their head from left to right over the shot, unhurried
役立つモーション語彙:drifts、ripples、swells、settles、sweeps、pulses、unhurried、continuous。動詞を方向とリズムと組み合わせれば、再現可能な結果が得られます。
カメラ表現パターン
Camera: static, locked-off tripod shot
Camera: slow dolly in, ending close on the subject
Camera: gentle pan left to right, constant speed
Camera: slow orbit around the subject, keeping it centered
Camera: slight handheld sway, no travel
経験則
- 1ショットにつきモーションは1つだけ。 1つのクリップに2つのカメラワークがあると、通常はどちらにも似ていない中間的な結果になります。
- 目標のあるモーションには終点を述べる。 「ドリーイン、取っ手の近くで終了」はモデルに目的地を与えます。
- 「静止」と明示する。 空のカメラスロットは、求めていないドリフトを誘発します。
- 速度副詞を一貫させる。 シリーズ全体で「ゆっくり」を使っているなら、1つのクリップで「速く」に切り替えて他の場所のテンポが合うことを期待しないでください。
クリップの挙動がおかしいときは、同じレシピを2回実行します。1回はモーションをゼロにしてカメラを有効、1回はカメラを静止にしてモーションを有効にします。壊れているスロットがバグです。
ネイティブオーディオヒントのレシピ
オーディオは事後の追加ではなく、スロットです。シーンを書くようにプロンプト内に書きます。記述的で具体的に、目立ちやすさの順に並べます。
オーディオは雰囲気の下地音、次に個別イベントという構造にし、セミコロンで区切ります:
Audio: <continuous background sound>; <one-off action sound>; <one-off action sound>
レシピ:雰囲気主体のクリップ
Audio: low room hum with faint refrigerator cycling; a single ceramic clink near the middle
レシピ:環境主体のクリップ
Audio: layered coastal wind, distant surf rolling in and out; one sharp gull call early
実現可能なヒントを書く
- 感情ではなく発生源を指定する。 「乾いた草を吹き抜ける風」はレンダリング可能ですが、「穏やかな雰囲気」はそうではありません。
- 時間語は慎重かつ意図的に使う。
near the middle、early、at the endはヒントをクリップ内の特定の時点にマッピングします。 - 雰囲気とイベントを分離する。 連続する下地音に1〜2つのアクセント効果音を加えたほうが、同じ重みの5つのノイズのリストよりも明確に読めます。
- 下地音をシーンとジャンル的に一致させる。 屋外の崖のショットに屋内のルームトーンは矛盾であり、モデルは何らかの方法でそれを解決しなければなりません。
オーディオスロットが多くを担いすぎているなら、モーションを調整する前にそれを削ってください。音は通常、最も簡素化しやすいスロットであり、レシピが過剰に指定されているかどうかを判断する最速のシグナルです。
レシピの反復:一度に1つの変数だけを変更する
反復の規律こそが、プロンプトエンジニアと、それなりに見えるまで何度もやり直す人を分ける鍵です。
ループ
- ベースラインを凍結する。 現在のレシピを丸ごと保存し、その出力を記録します。
- 1つのスロットだけを変更する。 1文ではなく、1スロットです。「Camera: static」から「Camera: slow dolly in」への変更が1回の変更です。
- 同じ被写体とシーンで生成し、ベースラインと比較する。
- 差分を記録する。 改善したら、その変更をベースラインレシピに昇格させます。
- 反復する。 対象のショットタイプに対してレシピが安定して機能するまで続けます。
実用的な習慣
- レシピシリーズごとにドラフトファイルを1つ保持する。 何を変え、何に目に見える差分が出たかを記録します。
- 1つのスロットの3つのバリアントをまとめてテストする。 3つのスロットに1つずつバリアントを試すのではなく、そのほうが生成ごとに多くを学べます。
- 積極的に巻き戻す。 変更が2回の実行後も曖昧なら、破棄します。曖昧な改善は蓄積を待つリグレッションです。
- どのスロット変更後も再テストする。 触っていないスロットでもです。スロットはアテンションを通じて相互作用し、より大きなモーション文がシーンの細部を押し出すことがあります。
レシピ完成の基準は、1つのクリップが良く見えることではなく、同じテンプレートの3つの異なる埋め方が正しく見えることです。
コード内でプロンプトレシピをバージョン管理し再利用する
レシピはコードベースのあちこちに散らばった文字列ではなく、構造化データとして保存してください。レシピごとに小さなJSONまたはYAMLファイルにすれば、差分比較、テンプレート化、ロールバックが無料で手に入ります。
{
"id": "product-mug-v3",
"slots": {
"subject": "a matte ceramic mug, rounded handle, faint speckled glaze",
"environment": "wooden kitchen counter, soft morning light from the left, blurred shelves behind",
"style": "natural light, warm neutral palette, shallow depth of field, photorealistic",
"motion": "steam drifts up and slightly right, slow and continuous",
"camera": "static, locked-off tripod shot",
"audio": "low room hum; a single ceramic clink near the middle"
}
}
リクエスト時に固定のスロット順でプロンプトを組み立てることで、手作業で文字列を連結することがなくなります:
def compose(recipe):
slots = recipe["slots"]
return "\n".join([
f"Subject: {slots['subject']}",
f"Environment: {slots['environment']}",
f"Style: {slots['style']}",
f"Motion: {slots['motion']}",
f"Camera: {slots['camera']}",
f"Audio: {slots['audio']}",
])
バージョン管理のルール
- 挙動が変わるたびにidを上げる。
product-mug-v2からproduct-mug-v3へと変えることで、どのクリップがどのレシピから来たのかがわかります。 - ファイルの隣に変更ログを残す。 各バージョン1行:どのスロットが変わり、なぜ変わったか。
- あるバージョンがリリース済みの出力を生んだら、その場で編集しない。 新しいバージョンを追加し、比較用に古いバージョンを残します。
- 送信前に必須スロットを検証する。 オーディオスロットの欠落は、思っている以上に出力を静かに変えてしまいます。
レシピをバージョン管理下に置けば、リグレッション問題は記憶テストではなくgit bisectの問題になります。
レシピをパイプラインに投入する
レシピがスケールするのは、それがデータだからです。そのため、自動生成ワークフローに簡単に流し込めます。
パイプラインの形態
- レシピストア —— ショットシリーズごとに1つずつ、バージョン管理されたレシピファイル。
- 充填ステップ —— 各実行の変数(被写体、製品名、場所)を凍結スロットに注入します。
- 組み立てステップ —— 固定のスロット順でプロンプトをレンダリングします。
- 生成ステップ —— HiAPI.ai の統合API経由でFLUX 3に送信し、レシピidをリクエストとともに記録します。
- 品質チェック —— 自動レビューに加え、レシピ自身の受け入れ基準に対する抜き取り検査。
- 記録 —— 出力参照、レシピid、および各実行の変数をまとめて保存します。
バッチ処理のガイドライン
- 被写体ごとではなく、レシピごとにバッチ処理する。 テンプレートを共有する実行は比較しやすく、推論コストも低くなります。
- チューニング中はレシピごとの同時実行数を制限する。 不安定なレシピの並列実行はノイズを増幅するだけです。
- 定数を再利用する。 被写体・環境・スタイルのスロットは通常バッチ内で共有され、モーションとカメラだけがショットごとに異なります。
本当に問題を発見できる品質チェック
- スロット忠実度: 出力に指定した被写体属性と指定した光の方向が含まれているか?
- 単一モーションテスト: カメラが動くなら、それは要求した1つのモーションか?
- オーディオ一致: 雰囲気の下地音は存在し、個別のヒントはおおよそ配置した位置にあるか?
- 編集互換性: シーケンス内の隣接クリップがカラーパレットとテンポを共有しているか?
1つのレシピ、1つの被写体、静止カメラから始めてください。シーンを確認し、モーションを階層的に加え、オーディオの下地音を追加し、それから自動化します。手動で1つのクリップを生成する場合でも、パイプラインで100個を生成する場合でも、レシピの形式は変わりません。