mcpField
I
image-studio

image-studio

github.com/moonlight-lupinクリエイティブ・メディア113122 回インストール1 日前に更新
リポジトリ

image-studio について

Image Studio は、fal.ai を使って画像を生成・編集するクリエイター向けスキルです。新規作成、編集、写真の補正で手順を分け、有料 API 呼び出し前に承認を確認し、成果物は公開せずローカルに保存します。

主な機能

  1. 013種類の画像タスクに応じた手順選択
  2. 02プロンプトの作成と事前確認
  3. 03低コストの試作や部分編集での反復
  4. 04Nano Banana Pro による最終画像の作成
  5. 05確認用ファイルのローカル保存
  6. 06呼び出し前の承認、認証情報、パスの確認

活用シーン

  1. 01新しい画像の構図やスタイルの検討
  2. 02既存写真の要素やスタイルの変更
  3. 03露出、反射、遠近感などの補正
  4. 04Web、SNS、印刷向け画像の準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/moonlight-lupin/agent-skills --skill image-studio

インストール後、Claude Code で/image-studioを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
examples/
example-run.md
references/
cleanup-checklist.md
fal-models.md
moss-layout.md
scripts/
falgen.py
LICENSE-APACHE-2.0
moss_compile_prompt.py
tests/
test_falgen.py
test_moss_compile_prompt.py

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

Image Studio

fal.ai を使用して、ブレインストーミング → 低コストでプロトタイプ作成 → 最終画像を制作という、意図的に設計された3段階のプロセスで、アイデアを完成画像に仕上げます。この段階分けの目的は、コストと制御です。高速モデルで低コストに反復し、ユーザーとコンセプトを確定してから、合意した画像に対して一度だけ高品質モデルを使用します。

このスキルは、ユーザーが確認して利用できるよう、ファイルをローカルで生成します。最終的なブランド素材として投稿、公開、送信することはありません。

対象範囲と振り分け

以下のすべてに当てはまる場合に限り、このスキルを使用してください。

  1. タスクが生成画像または画像編集であり、レイアウト/デザインの自動化、グラフ作成、ダッシュボード作成、フローチャート作成、スライド/デッキの作成ではない。
  2. ユーザーが fal.ai へのデータ送信と有料 API の利用に同意している。
  3. ローカルのヘルパーワークフローを利用できる、またはユーザーがそのワークフロー用のプロンプト/ブリーフの準備を依頼している。

以下にはこのスキルを使用しないでください。

  • Canva テンプレート、PowerPoint デッキ、ブランド化されたプレゼンテーションレイアウト、データグラフ、ダッシュボード、フローチャート、アーキテクチャ図、プロセス図。
  • 動画生成。
  • 機密情報またはセンシティブな画像/文書の処理。
  • ネイティブの画像生成/編集ツールの使用が明示的に必須とされているホスト環境。

3つのモード — 最初に選択

ワークフローは、画像を新規作成するのか、既存画像を変更するのか、既存画像を補正するのかによって異なります。それぞれ手順が異なります。

  • パス A · ゼロから作成(元画像なし)。構図が決まっていないため、まず低コストでプロトタイプを作成して検討し、その後、高品質で仕上げます。以下のステージ 1 → 2 → 3を使用してください。
  • パス B · 既存画像を編集/重ね合わせ(部屋に人物を追加する、写真のスタイルを変更する、要素を追加または削除する)。構図は元写真ですでに決まっているため、低コストのプロトタイプを作成しても、ずれやアーティファクトが増えるだけで、仕上がりの品質を予測できません。**省略してください。**ブレインストーミングを行い、プロンプトを確認(ステージ 1)してから、元画像を直接高品質で編集します(ステージ 3)。コストを抑えながら複数回反復する場合は、Kontext dev ではなく、同じファミリーの fal-ai/nano-banana/edit(忠実なプレビュー)で反復してください。「プロトタイプ」とは画像ではなく、合意したプロンプトです。
  • パス C · 既存写真の補正/高画質化(アマチュア/スマートフォン撮影の写真をプロ品質に仕上げる — フレア、反射、ホワイトバランス、露出、遠近感/歪み、ノイズ、雑然とした要素を修正する)。パス B と同じ方法を使います(プロトタイプは作成せず、元画像を一度の包括的な処理で高品質編集します)が、目的は変更ではなく忠実な補正です。references/cleanup-checklist.md を基にプロンプトを作成し、実際に存在する特徴をすべてそのまま保ってください。室内、人物、製品、料理、風景など、あらゆる被写体に対応できます。チェックリストに沿った処理を一度行えば、通常は十分です。以下の「補正」セクションを参照してください。

ステージ 1~3 ではパス A の全手順を説明します。パス B と C ではステージ 1(ブレインストーミング/確認)を行った後、ステージ 2 のプロトタイプ作成を省略し、ステージ 3(元画像の高品質編集)へ直接進みます。

開始する前に — エグレスと事前確認

画像を生成すると、プロンプトが fal.ai に送信されます。編集、アップスケール、背景除去を行う場合は、指定した画像も fal.ai に送信されます。fal.ai は米国のサードパーティサービスで、生成結果の画像は同社の CDN からダウンロードされます。これは外部へのデータ送信にあたります。

API を呼び出す前に、次のことを確認してください。

  1. タスクが対象範囲内であることを確認します。
  2. セッションで最初に画像を生成する前に、fal.ai へのデータ送信と有料 API の利用について、ユーザーから明示的な許可を得ていることを確認します。
  3. 費用のかかる Stage-3 の本番実行を開始する前に、改めてユーザーから明示的な許可を得ていることを確認します。
  4. scripts/falgen.py が存在すること、依存関係がインストールされていること、FAL_KEY が設定されていること、作業ディレクトリが書き込み可能であることを確認します。
  5. 編集、アップスケール、背景除去には、ユーザーが fal.ai で処理する権利を持つ、機密情報やセンシティブ情報を含まない画像だけを使用します。
  6. falgen.py が出力する正確な出力パスを使用してください。例からファイル名を推測しないでください。

機密情報やセンシティブ情報を含む画像や文書を fal.ai に送信してはいけません。たとえば、人物の写真、機密レポート、取引資料、財務書類、投資家向け資料、テナント関連資料、評価資料、NDA の対象となるものなどです。ユーザーがセンシティブな内容の編集を依頼した場合は、処理を中止し、アップロードせずにデータ送信の問題を伝えてください。

Stage 1 のブレインストーミングはチャット内だけで完結し、データ送信は発生しません。そのため、まずプロンプトを作成し、送信する前に許可を得ることができます。

必要なセットアップ: 課金設定済みの fal.ai アカウントと FAL_KEY が必要です。FAL_KEY は環境変数として設定するか、作業フォルダー内のテキストファイルに保存してください(ファイル名は任意です。例:fal key.txt)。ヘルパーはキーを自動的に検出します。まず環境変数を確認し、次に作業フォルダー内の小さなテキストファイル(FAL_KEY=your-key の行、または fal の id:secret 形式に一致するキーそのもの)を確認し、最後にホームディレクトリを確認します(ファイル名に fal/key/api/env のいずれかが含まれ、明示的な FAL_KEY=… の行があるファイルのみを対象とします。ホームディレクトリからキーだけの文字列を取得することはないため、他のサービスの認証情報が誤って使われることはありません)。そのため、確認する前にユーザーにキーを尋ねないでください。見つからない場合にのみ尋ねてください。fal-client パッケージ(pip install fal-client requests)を使用します。キーが見つからない場合、ヘルパーは明確なメッセージを表示して失敗します。キーなしでは画像を生成できませんが、Stage 1 は引き続き利用できます。(キーのファイルはローカルに保管し、コミットしないでください。)

ステージ 1 — プロンプトをブレインストーミングする(API 呼び出しなし)

良い出力は良いプロンプトから始まるため、費用をかける前にここに時間をかけます。ユーザーに質問し、以下を網羅する構成済みのプロンプト概要を作成します。

  • 題材 — 画像に何が写っているか、具体的に記述します。
  • スタイル/媒体 — 写実的、3D レンダリング、フラットイラスト、線画、水彩画などです。
  • 構図 — フレーミング、焦点、レイアウト、テキストや余白を配置する場所です。
  • 照明/雰囲気 — 柔らかい、ドラマチック、すっきりした企業風、暖かい、ムーディーなどです。
  • カラーパレット — 機密情報を含めず、ユーザーの希望に合わせます。
  • アスペクト比 — 使用先に合わせます。16:9 のスライド/ヒーロー画像、1:1 または 4:5 のソーシャル投稿、9:16 のストーリー、2:3/3:4 のポートレート、またはカスタムバナーの比率です。
  • 品質調整と除外指定 — 例:「高精細、シャープなフォーカス」、「テキストなし、透かしなし、余分な指なし」。

プロンプト案を1つだけでなく、異なる方向性で2つか3つ提示し、ユーザーが選択肢を見て反応できるようにします。合意した概要は、実行内容を監査できるよう _workings/ に保存します(例:_workings/prompt-brief_[slug].md)。プロンプトには機密情報を含めないでください。

パス B と C では、プロトタイピングに代わるのがこのステップです。そのため、最初の有料 API 呼び出しの前に、ユーザーにプロンプトを確認してもらいます。人物を題材にする場合や、実際のシーンに画像を重ねる場合は、次の2点に注意します。

  • 雰囲気ではなく、動作を指定します。 「座って笑っている」では、硬くポーズを取ったように見えます。人物同士がカメラではなく互いに関わるよう、「会話の途中で、1人が身振りをし、2人がお互いを見ていて、1人が友人にノートパソコンの画面を見せている」のように、自然なやり取りを具体的に指定します。
  • 顔をきれいに保ちます。 遠くにある小さな顔は崩れやすいため、人数を減らして大きく描くようにし、「顔と手を自然ではっきり描く」と指定します。また、画像全体を再生成するのではなく、問題のある領域だけを再編集します。

ステージ 2 — 低コストでプロトタイプを作成し、反復する

安価で高速なテキストから画像を生成するモデルで生成し、ユーザーのフィードバックに基づいて、プロトタイプが承認されるまで調整します。

最初のレンダリング — FLUX schnell を使ったテキストから画像への生成:

python scripts/falgen.py generate \
  --prompt "[the agreed prompt]" \
  --aspect 16:9 --num 2 \
  --run-log _workings/run-log_[slug].md \
  --out-dir _workings --name image_[slug]_v1

--num 2 を指定すると、ユーザーが選べるバリエーションを2つ生成します。ヘルパーは image_[slug]_v1_1.png や image_[slug]_v1_2.png など、複数のファイルを保存する場合があります。必ずヘルパーが出力した保存先のパスをそのまま使用してください。

フィードバックに応じて、より低コストな方法を選びます。

  • コンセプトや構図の大幅な変更 → プロンプトの文言を調整し、次のバージョンとして generate を再実行します(--name image_[slug]_v2 など)。
  • 選んだ画像への部分的な調整 — たとえば「空をもう少し暖かい色にする」、「左側の建物を取り除く」、「右上の余白を増やす」など → edit を使います。

ステージ 2 のデフォルトのエディターは FLUX Kontext [dev](fal-ai/flux-kontext/dev)です。指示に基づく安価なエディターで、料金は計算秒数に応じて請求されます。fal は実行時間の正確な値をローカルに返さないため、ヘルパーは料金が時間課金であることを示し、正確な情報は fal のダッシュボードで確認します。Kontext は入力画像の寸法を維持し、指定した部分だけを変更します。

python scripts/falgen.py edit \
  --prompt "make the sky warmer and add negative space top-right" \
  --image _workings/[actual_saved_prototype_path].png \
  --run-log _workings/run-log_[slug].md \
  --out-dir _workings --name image_[slug]_v3

Kontext で編集する際は、--aspect を指定しないでください。Kontext は元画像の寸法を維持します。Kontext が受け付ける画像は1枚です。複数の参照画像が必要な場合は、image_urls に対応した fal-ai/nano-banana/edit などのモデルを使用し、費用との兼ね合いを確認してください。

各イテレーションは、失われないようバージョン番号を増やしながら _workings/ に保存します。ユーザーが「これで決まり」と言うまで繰り返します。

2つの方法を用意する理由:プロンプトを変えて再生成すると、新しい構図を試せます。一方、編集ではユーザーがすでに気に入っている構図を維持し、指定した部分だけを変更できます。フィードバックに合った方法を選んでください。

ステージ 3 — 最終版を作成する

ユーザーがプロトタイプを承認したら、もう一度、作業開始の了承を確認します。ここが主な費用の発生箇所です。

合意したコンセプトを、必要な品質と解像度でレンダリングします。通常は、必要なサイズで最終版を作成すれば、別途アップスケールする必要はありません。

解像度を確認します — 2K と 4K のどちらですか? 料金が変わるため、確認してください。

  • 2K(無理のない標準設定)。画面上での使用や手元での閲覧に適しています。スライド資料、ソーシャルメディア、ウェブ、メール、デジタル PDF、A4 程度までの標準的な印刷に使えます。近くで見る大判印刷や、大幅なトリミングと拡大には適していません。
  • 4K — Nano Banana Pro では基本料金の2 倍です(references/fal-models.md を参照)。大判印刷や近くで見る印刷物(ポスター、バナー、展示パネル)、または再利用するメイン画像を将来に備えて高解像度で用意する場合に適しています。画面やソーシャルメディア向けでは、いずれ縮小されるため、選ぶ価値はありません。

--arg resolution=2K(または 4K)で指定します。ヘルパーは報告する料金に 4K の追加料金を反映します。

  1. 目標解像度で高品質にレンダリングする — 承認されたプロトタイプに忠実な仕上がりにするため、Nano Banana Pro(fal-ai/nano-banana-pro/edit、画像ごとの定額料金)で編集します。resolution で出力サイズ(最大 4K)を事前に指定してください。

    python scripts/falgen.py edit \
      --prompt "[full locked prompt]. Use the supplied prototype as the COMPOSITION reference only. Reproduce at high fidelity — keep the subject, framing, palette and mood — and CORRECT the prototype's generative flaws: render natural anatomy (fix malformed hands, fingers and limbs; no extra or missing fingers/limbs), fix distorted faces and eyes, straighten warped objects and lines, remove artefacts. Name the specific ones you see, e.g. 'the left hand has six fingers — render a natural five-fingered hand'. Crisp clean edges, photorealistic." \
      --image _workings/[actual_approved_prototype_path].png \
      --model fal-ai/nano-banana-pro/edit --aspect 16:9 \
      --arg resolution=4K \
      --run-log _workings/run-log_[slug].md \
      --out-dir . --name image_[slug]_final
    

    最終プロンプトには、汎用的な補正指示だけでなく、ロック済みのプロンプト全体を含め、修正する欠点を明記してください。「改善/アップスケールして」では欠点は修正されません。Nano Banana Pro は、指示されていない欠陥を修正しません。また、「すべてを維持して」と指示すると、欠陥までそのまま残ります。コンセプト(被写体、構図、配色、雰囲気)は維持し、実行内容(人体の描写、歪んだオブジェクト、アーティファクト)は修正してください。プロトタイプは構図の参考として扱い、プロンプトの要件の代わりにしないでください。欠点が残った場合は、画像全体ではなく、その部分だけを再編集してください。

    既存の写真を編集する場合(パス B/C) — プロトタイプだけでなく、元画像を基準にしてください。 低価格のプロトタイプモデルでは細部が変わってしまうため、実際のシーンの正しい情報源である元画像と、作成している場合は承認済みのプロトタイプの両方を Nano Banana Pro に入力します。edit は複数の --image を受け付けます(image_urls として送信されます)。元画像を先に渡し、次にプロトタイプを渡して、プロンプト内でそれぞれどちらかを明記してください。

    python scripts/falgen.py edit \
      --prompt "Use the FIRST image as the true scene — keep its room, materials, lighting and layout exactly — and the SECOND as the intended change. Produce the change at high fidelity." \
      --image _workings/[original_photo].jpg \
      --image _workings/[approved_prototype].png \
      --model fal-ai/nano-banana-pro/edit --arg resolution=2K \
      --run-log _workings/run-log_[slug].md \
      --out-dir . --name image_[slug]_final
    

    または、ロック済みのプロンプトから高品質な画像を新規にレンダリングするには、次を使用します。

    python scripts/falgen.py generate \
      --prompt "[full locked prompt]" \
      --model fal-ai/nano-banana-pro \
      --aspect 16:9 --arg resolution=4K \
      --run-log _workings/run-log_[slug].md \
      --out-dir . --name image_[slug]_final
    
  2. 必要な場合のみアップスケールする — 4K を超える必要がある場合や、外部画像を拡大する場合に限り、別途アップスケールします。標準のアップスケーラーは、忠実な仕上がりの定額料金アップスケーラーであるRecraft Crisp(fal-ai/recraft/upscale/crisp)です。

    python scripts/falgen.py upscale \
      --image _workings/[actual_image_to_upscale].png \
      --run-log _workings/run-log_[slug].md \
      --out-dir . --name image_[slug]_final
    

    ディテールを追加するクリエイティブな拡大は料金がかなり高くなります。使用する場合は --model fal-ai/clarity-upscaler を指定してください。

完成した画像は、作業フォルダーのルートに image_[slug]_final.png、またはヘルパーが出力する正確なファイル名で保存します。ユーザーにはファイルのパスを伝え、公開用素材ではなく、レビュー用のドラフト素材であることを忘れずに伝えてください。

既存写真の補正・強化(Path C)

素人撮影の写真、スマートフォンやメッセージアプリで撮影した写真を、プロらしい仕上がりの画像にします。Stage 3 と同じ仕組みを使い、nano-banana-pro/edit で元画像を品質補正します。プロトタイプは作成しません。ただし目的は変更ではなく忠実な補正であり、方法は反復ではなくチェックリストです。インテリア、ポートレート、商品、料理、風景など、どんな被写体にも使えます。まず references/cleanup-checklist.md の被写体タイプの表を確認し、この写真における「忠実」の意味を把握してください。

  1. references/cleanup-checklist.md を確認します。各項目の「見分けるポイント」を写真と照らし合わせます。実際に見えるポイントを具体的に説明できる項目だけを残してください。写真にない問題はすべて除外します。存在しない問題を修正することも、正しい画像を変えてしまう積極的な変換です(チェックリストの「してはいけないこと」を参照)。
  2. 検証します。選んだ問題を、根拠とともにユーザーに提示します(「左側の壁の垂直線が収束していて、窓のハイライトが白飛びし、暖色かぶりがあります。問題 1、2、4 です」)。これにより、有料の処理を実行する前に、問題を選びすぎていないか確認できます。
  3. 検証済みの項目だけを使って、包括的な補正プロンプトを作成します(チェックリストにひな形があります)。維持する重要な特徴も明記してください。ユーザーに内容を確認してもらいます。この手順がプロトタイピングの代わりになります。
  4. 2K で 1 回処理します(元画像のアスペクト比を維持し、トリミングしない限り --aspect は指定しません)。反復は、画像全体ではなく、特定の残存問題に対してのみ行います。

誠実さを貫いてください。

  • 被写体そのものではなく、撮影時の状態だけを補正します。 実際の特徴とレイアウトをすべて維持してください。本当に一時的な物だけを片付けます(リモコン、ケーブル、タグ、撮影者の映り込みなど)。見栄えをよくするために実際の特徴を削除・変更してはいけません。また、よりよい眺めや仕上がりを捏造してはいけません。それは被写体を誤って伝えることになります。
  • これは生成による再レンダリングなので、わずかなずれが生じる可能性があります。元画像と比較して確認してください。物件の掲載など、文字どおりの正確さが重要な場合は、生成を使わない編集(Lightroom/Photoshop)が忠実さの基準となります。これは手早く作成する初稿であり、記録用の正式な画像ではありません。

実行ログ

このヘルパーは常に、機械可読なコスト/セッションログを ./_falgen-costs.jsonl に書き込みます。新しいログ項目には、コマンド、モデル、機密情報を除いた引数、入力画像の参照情報、出力先、寸法、シード、コストの根拠、推定コストが含まれます。一時的なアップロード先/CDN の画像 URL はログに記録されません。

生成/編集/アップスケール/背景削除の呼び出し時に --run-log _workings/run-log_[slug].md を渡すと、次の情報を含む、人が読める Markdown 形式の監査ログが追記されます。

  • 最終出力または中間出力のパス
  • 該当する場合、入力画像のパス
  • プロンプトと URL 以外のモデル引数
  • モデルのエンドポイント
  • 使用した場合のシード
  • 出力寸法
  • コストの根拠と推定コスト

これにより、結果を監査しやすくなり、再現も容易になります。--run-log を渡さない場合は、監査記録として python scripts/falgen.py costs と JSONL ファイルを使用してください。

モデルの選択

このヘルパーは、各段階に適したモデルをデフォルトで選択します。--model [endpoint-id] で変更できます。現在検証済みのエンドポイント ID、対応する段階、おおよそのコストは references/fal-models.md に記載されています。fal.ai のカタログは変更されるため、モデル ID でエラーが発生した場合は推測せず、そのリファレンスと fal.ai のモデルギャラリーを確認してください。そのファイルで (verify) と記された項目は、このビルドでは実際のギャラリーとの照合が済んでいません。利用する前に確認してください。

他のモデルの試用・比較 — ただし、まずはデフォルトから

結果に本当に満足できない場合を除き、実績のあるデフォルトを使いましょう。デフォルトは意図して選ばれています。安価なプロトタイピングには schnell、安価で忠実な編集には Kontext dev、最大 4K の高品質な最終版には Nano Banana Pro を使います。品質、コスト、予測可能性のバランスがテスト済みです。結果に満足できない場合、まず試すべきなのは通常、モデル探しではなく、プロンプトの改善や対象を絞った編集です。

デフォルトでも不十分な場合に限り、モデルを切り替えましょう。たとえば、モデルが対象、スタイル、または画像内に必要なテキストをどうしても描画できない場合です。どのステージでも --model を指定できます。レジストリには、動作確認済みの代替モデルが掲載されています。

  • 比較する場合は、同じプロンプト/画像を、異なる --name(cmp_schnell、cmp_fluxdev など)を付けて 2〜3 個の候補で実行し、並べて表示します。モデルごとのリアルタイムのコスト表示と costs の概要を参考に、品質とコストのトレードオフをユーザーに示しましょう。比較は小規模にしてください。呼び出しごとに実際の費用がかかります。
  • 不慣れなモデルの場合: 便利なフラグは既知のモデル向けに調整されています(--aspect は FLUX では image_size、nano-banana では aspect_ratio に対応し、Kontext ではスキップされます。編集では image_urls を送信しますが、Kontext ファミリーでは単数の image_url を送信します)。ヘルパーが対応していないエンドポイントでは、その API ページを確認し、フラグで指定できない値を --arg key=value または --arg-json '{...}' で渡してください。リアルタイムのコスト表示とダウンロードは、どのエンドポイントでも利用できます。

実験が終わったら、代替モデルがその用途で明らかに、かつ繰り返し優れている場合を除き、デフォルトに戻しましょう。

ヘルパー — scripts/falgen.py

1 つのスクリプトに 5 つのサブコマンドがあります。環境から FAL_KEY を読み込み、ローカルの --image を自動的に fal ストレージへアップロードし、fal_client.subscribe でモデルを呼び出し、結果の画像をローカルにダウンロードして、保存先のパスとおおよそのコストを表示します。すべてのオプションを確認するには、python scripts/falgen.py -h または python scripts/falgen.py [subcommand] -h を実行してください。

主なフラグ:

  • generate — --prompt(必須)、--model、--aspect、--num、--seed、--out-dir、--name。
  • edit — --prompt(必須)、--image(繰り返し指定可)、--model、--aspect、--num、--seed、--out-dir、--name。
  • upscale — --image(必須)、--model、--factor、--out-dir、--name。
  • removebg — --image(必須)、--model、--out-dir、--name。被写体を切り抜いて、背景透過の PNG を作成します。これはデッキやソーシャルメディア用タイルへの合成に使うユーティリティであり、メインの generate→edit→upscale フローには含まれません。
  • costs — セッションの累計コストを表示します。--reset を指定するとリセットできます。
  • recommend — 各ステージで推奨されるデフォルトモデルを、リアルタイムの価格情報とともに表示します。読み取り専用で、費用はかかりません。
  • search "term" — fal のライブカタログを検索します(--category、--limit)。各検索結果には、リアルタイムの価格、カテゴリ、ライセンスが表示されます。読み取り専用です。デフォルトでは対応していないモデルを探す場合も、明らかに不十分でない限り、デフォルトを優先してください。
  • --arg key=value — generation/edit/upscale/removebg の各サブコマンドで、フラグでは指定できない生のモデルパラメーターを渡すための代替手段です。値には JSON のスカラー、配列、オブジェクトを指定できます。例:--arg image_size='{"width":1200,"height":800}'。
  • --arg-json '{...}' — 複数の生のモデルパラメーターを 1 つの JSON オブジェクトとして渡します。ネストしたオプションに便利です。
  • --run-log path.md — 監査に使える、人が読みやすい Markdown の実行ログを追記します。
  • --verbose — モデル独自の進行状況ログをストリーミング表示します。デフォルトでは無効です。

fal の残高不足で呼び出しに失敗した場合、ヘルパーがそれを検出し、未加工のスタックトレースではなく、分かりやすい案内を表示します。

一連の手順を通した実行例は examples/example-run.md にあります。

コストと残高

生成レスポンスにはコストのフィールドが含まれていないため、falgen.py は実行のたびに fal の最新の料金 API に問い合わせ、可能な場合は実際の出力解像度または出力数からコストを計算して、ステップごとのコストとセッションの累計(./_falgen-costs.jsonl に追記)を表示します。実行するには、次のコマンドを使います。

python scripts/falgen.py costs

チェーンの最後に内訳全体を表示し、合計をユーザーに伝えます。references/fal-models.md に記載されている単位に注意してください。

  • 画像ごとのモデルは、出力ごとの定額料金です。
  • メガピクセルごとのモデルは、解像度が高いほど料金が高くなります。
  • 計算秒数ごとのモデルは、実行時間によって料金が変わります。fal は実行時間を返さないため、数値を推測するのではなく、ヘルパーはそのステップが時間課金であることを示します。

残高が表示されるのは、fal の Admin API キーが FAL_ADMIN_KEY に設定されている場合のみです。通常の FAL_KEY では請求情報を読み取れず、HTTP 403 が返される場合があります。Admin キーがない場合、残高の表示は1行の注記を付けて省略されます。ユーザーにはステップごとの推定費用とセッションの合計を伝え、Admin キーを追加した場合に限り、最新の残高を確認できることを案内してください。

原則

  • アドバイスではなく下書き — 出力は、資格を持つ人が確認するための下書きであり、そのまま公開できる完成品ではありません。
  • 決して捏造しない — コスト、モデル ID、機能、出力パスを作り上げないでください。不確かな場合は、その旨を伝えてください。
  • 重要な部分では決定論的に — コスト追跡、ファイル名、モデルのルーティングは決定論的に処理し、LLM はクリエイティブな判断のみに使用します。
  • 誠実さと適切な確度 — 不確実性を明示し、品質を誇張せず、コストを示してください。
  • ワークスペースの整理 — 成果物は作業フォルダーのルートに置き、中間ファイルは _workings/ に、旧バージョンは _superseded/ に置きます。

データの取り扱い

fal.ai に送信するプロンプトや参照画像は、ユーザーの管理下を離れてサードパーティのツールに渡るため、PII/データ外部送信のルールに従ってください。機密情報やセンシティブな内容を fal.ai に送信しないでください。 実際のソースファイルと出力ファイルはローカルマシンに保管します。判断に迷う場合は外部に送信せず、先にユーザーに確認してください。

注意事項

  1. ステージ 1 を省略しないでください — よく練られたプロンプトは、後の高額な反復作業を減らします。
  2. ステージ 3 の前に必ず確認を取ってください — 通常、主な費用が発生するのはこの段階です。
  3. 実際に保存されたパスを使ってください — 例はプレースホルダーです。falgen.py が表示したパスを使ってください。
  4. Kontext はアスペクト比を無視します — 入力画像の寸法を維持します。Kontext の編集では --aspect を指定しないでください。
  5. Kontext が受け付ける画像は1枚、出力も1つです — Kontext モデルに複数の画像または --num > 1 を渡すと、ヘルパーは早い段階でエラーになります。
  6. JSON 引数は適切に使ってください — シェルで入れ子の JSON を正しく引用符で囲むか、--arg-json を使ってください。
  7. Clarity アップスケーラーは高額です — クリエイティブなディテール強化を特に必要とする場合を除き、Recraft Crisp を使ってください。
  8. 背景除去では透明な PNG が出力されます — メッセージアプリで送信する場合は、白背景の JPG に変換してください。
  9. fal の残高確認には Admin キーが必要です — 請求残高の表示には FAL_KEY だけでは不十分です。

確認チェックリスト

  • 対象は画像の生成/編集であり、レイアウト/チャート/図/スライド資料の作成ではありません。
  • 最初の API 呼び出しの前に、fal.ai へのデータ送信と有料 API の使用についてユーザーの確認を取りました。
  • プロンプトの要件を _workings/ に保存しました。
  • 各反復の結果を、バージョンを順に付けるか、ヘルパーが生成した正確なファイル名で保存しました。
  • 推測したパスではなく、実際に表示された出力パスを使いました。
  • ステージ 3 の前に、ユーザーから実行の許可を得ました。
  • 最終プロンプトには、汎用的な強化指示だけでなく、ロック済みのプロンプト全文を含めました。
  • 最終画像を _workings/ だけでなく、作業フォルダーのルートに保存しました。
  • --run-log _workings/run-log_[slug].md を使用するか、JSONL のコスト/セッションログを確認しました。
  • falgen.py costs でコストの概要を表示しました。
  • ファイルパスをユーザーに伝え、下書きであることを改めて伝えました。

コメント