Communitygithub.com

product-video

Makerniceを使用して、製品ショーケース、広告クリップ、マーケットプレイス掲載動画などの短い製品・Eコマース動画を計画・生成します。モードの選択、プロンプトの作成、アスペクト比と解像度の設定、料金の確認、ジョブの実行までをカバーします。

product-video とは?

このスキルは、AIエージェント(Claude Code、Cursor、Codexなど)がMakernice APIを使って、製品の短い動画を計画・生成するための手順を提供します。ユーザーから製品情報(写真の公開URLを含む)と使用場所を収集し、最適なモデルとモード(i2v、r2v、t2v)を選択します。プロンプトは被写体、動作、設定、スタイルの順に構成し、アスペクト比(9:16、16:9、1:1)や解像度(720p/1080p)を指定します。料金はestimate_costで事前に見積もり、ユーザーが承認した後にgenerateを呼び出してジョブを実行します。ネットワークエラー時にはリトライし、完了後は出力リンクとコンソールURLを提供します。多クリップ動画の場合はクリップごとに個別のジョブを実行します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/makernice/makernice-plugin/tree/HEAD/skills/product-video

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

製品動画

製品(できれば写真付き)を短い動画クリップに変換します。ユーザーの言語で応答します。すべての価格は米ドルです。

1. 情報収集

不足しているものだけを質問します。

  • 製品: 何であるか、素材、色、サイズ、見せたい一つの特徴。
  • 製品写真: 公開された https リンク(クリーンな写真)。ローカルファイルやプライベートリンクは機能しません。ユーザーは画像を公開https URLでホストする必要があります。
  • 使用場所: アスペクト比を決定します。
    • TikTok、Reels、Shorts、ストーリーズ: 9:16
    • Webサイトヒーロー、YouTube、ランディングページ: 16:9
    • マーケットプレイス掲載、フィード投稿: 1:1(モデルが対応している場合)
  • 長さと予算: ほとんどのクリップは5〜10秒です。長い動画の場合は、1本の長い動画ではなく、複数の短いクリップを計画します。

2. モデルとモードの選択

list_models を呼び出し、次に候補のIDを model に設定して再度呼び出し、その modes、aspect_ratios、durations、options、max_prompt_chars を確認します。

  • 写真がある場合: i2v モードを使用し、写真を image_url として指定します。これにより実際の製品の形状、ラベル、色が保持されます。
  • 複数の参照写真がある場合(別角度からの製品): モデルに r2v モードがあればそれを使用し、reference_images を max_references の範囲内で指定します。
  • 写真がない場合: t2v モードを使用し、製品を正確に説明します。
  • モデルが options に negative_prompt をリストしている場合、「歪んだラベル、余分な部品、ぼやけ」などのために使用できます。

3. プロンプトの作成

1クリップ、1ショット。プロンプトは次の順序で作成します。

  1. 被写体: 素材と色を含む正確な製品(「コルクベースのマットブラックのセラミックコーヒーマグ」)。
  2. 動作またはカメラワーク: 1つの動作のみ。例: スロープッシュイン、スムーズな360度オービット、トップダウンレビール、テクスチャー全体のマクロパン、手で拾う。
  3. 設定と照明: 表面、背景、照明(「明るいオーク材のテーブル、柔らかい朝の窓からの光、浅い被写界深度」)。
  4. スタイルとペース: 「クリーンなコマーシャルルック、穏やかなペーシング」。

ヒント:

  • 単語、価格、ロゴをテキストとしてレンダリングするようモデルに要求しないでください。多くの場合、文字化けします。後でエディターでテキストを追加してください。
  • i2v では、製品の見た目を説明せず、動きとシーンを説明してください。写真がすでにそれを定義しています。
  • max_prompt_chars を超えないようにしてください。

例:

明るいオーク材のテーブルにあるコルクベースのマットブラックのセラミックコーヒーマグ、立ち上る蒸気、カメラがゆっくりとプッシュイン、柔らかい朝の窓からの光、浅い被写界深度、クリーンなコマーシャルルック、穏やかなペーシング。

4. 解像度と料金

  • まず 720p で下書きを作成し、動きとフレーミングを確認します。費用は低くなります。Webサイト、広告、大画面用には 1080p で最終版を作成します。720p は電話フィードには十分なことがよくあります。

  • 下書きと最終オプションの両方に対して estimate_cost を呼び出し、ジョブ実行前に両方の価格をユーザーに表示します。

    {"input": {"model": "<model id>", "mode": "i2v", "prompt": "明るいオーク材のテーブルにあるマットブラックのセラミックコーヒーマグ、立ち上る蒸気、カメラがゆっくりとプッシュイン、柔らかい朝の光", "image_url": "https://example.com/mug.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}}
    

5. ユーザーが同意したら生成

generate はユーザーが価格を確認し「はい」と同意した後にのみ呼び出します。ユーザーがすでに予算を設定し、実行を指示している場合は、amount_usd がその予算内である限り、再度確認せずに開始しても構いません。その場合でも amount_usd を使用し、予算を max_cost_usd として使用しないでください。

  • max_cost_usd: 必須。estimate_cost から返された承認済みの amount_usd をそのまま使用します。価格がそれより高い場合、ジョブは拒否されます。
  • request_id: 必須であり、新しいジョブごとに一意である必要があります。印刷可能なASCIIでスペースなし、最大64文字。例: mug-orbit-720p-1。使用済みのIDを異なるジョブに再利用することはできません。
  • generate がネットワークエラー、タイムアウト、システムエラー、または「Too many requests」で失敗した場合、数秒待ってから同じ input、同じ max_cost_usd、同じ request_id で再試行します。同じIDは同じジョブを返し、2回課金されることはありません。
{"input": {"model": "<model id>", "mode": "i2v", "prompt": "明るいオーク材のテーブルにあるマットブラックのセラミックコーヒーマグ、立ち上る蒸気、カメラがゆっくりとプッシュイン、柔らかい朝の光", "image_url": "https://example.com/mug.jpg", "duration": 5, "resolution": "720p", "aspect_ratio": "9:16"}, "max_cost_usd": "<estimate_cost からの amount_usd>", "request_id": "mug-orbit-720p-1"}

check_job を使用し、job_id と wait_s を55に設定して待機します。ジョブがまだ実行中の場合は next_step に従い、再度 wait_s を55にして呼び出します。タイトループでポーリングしないでください。

成功した場合、outputs から結果リンクと console_url を提供します。リンクは24時間後に期限切れになります。check_job は新しいリンクを返します。出力の state が blocked で url がない場合、セーフティレビューが生成後に結果を非表示にしたことを意味します。そのジョブは依然として課金され、ユーザーはMakerniceに連絡してレビューを依頼できます。失敗したジョブは課金されません。error から理由をユーザーに伝えてください。

複数クリップの動画の場合は、クリップごとに1つのジョブを実行し、それぞれに独自の estimate_cost、max_cost_usd、新しい request_id を使用し、ユーザーに累計金額を提供します。

拒否の処理

  • 価格が max_cost_usd を超える場合: 新しい価格を表示し、新しい max_cost_usd と新しい request_id で再試行する前に確認を求めます。
  • ジョブあたりの制限を超える場合: 720p またはより短い時間を提案するか、ユーザーがMakerniceでジョブあたりの制限を引き上げることができます。
  • 残高不足または1日の制限に達した場合: get_balance を呼び出して説明します。get_topup_link ツールが利用可能で、ユーザーが残高追加方法を尋ねた場合、リンクを1回提供します。
  • キューイングされたジョブの設定が間違っている場合: cancel_job を job_id と共に呼び出すと、保留中の金額が全額解放されます。

関連スキル