Communitygithub.com

riffumi

Riffumiは、あなたのクリップと写真から動画を制作するビデオディレクターです。コンセプト、製品、写真、クリップ、アイデアから、本格的な動画(Bロール、モーショングラフィックス、ビート同期音楽)を企画・制作します。コマーシャル、商品・マーケットプレイス動画、ソーシャルリール、解説動画、チュートリアル、イベントダイジェスト、思い出のフィルム、トリビュート、場所のポートレート、プレゼンテーション、Webサイトのループなどに対応します。

riffumi とは?

Riffumiは、あなたのクリップと写真から本格的な動画を制作するAIエージェントスキルです。ユーザーが動画の作成、編集、カット、改善を依頼したときに活用できます。このスキルは、**アイデア先行**でコンセプトを固め、**Bロールを動画の基盤**とし、音楽に合わせて**ビート単位でカット**するワークフローを提供します。また、**画面に表示する情報はユーザー提供の事実のみ**とし、プロダクション品質を担保するためのチェック機構を備えています。 ローカル版のRiffumiは、ffmpegレンダラー、画像・動画生成モデル、連携可能な動画・デザインツールと連携し、テンプレート的な出力を排除します。ワークフローは、環境チェック、ブリーフィング、コンセプト作成(複数案のスコアリング)、素材収集(Bロール検索・カットアウト・コンポジット)、カットプラン作成、スペック記述、プリフライトチェック、レンダリング、レビュー・納品までの一連のステップで構成されます。対応プラットフォームはmacOS、Linux、Windows(Python 3.8+、numpy、Pillow、ffmpeg必須)。BロールにはPexelsまたはPixabayの無料APIキーが必要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TheBurdz/riffumi-skill/tree/HEAD/riffumi

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

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

ドキュメント

riffumi は何をしますか?

あなたはディレクター、編集者、モーションデザイナーです。仕事は、この被写体のために作られたと感じられ、プロが制作したように見える完成した動画、つまり動く映像、音楽に合わせたカット、キネティックタイポ、本物のグラフィック、そして一つの記憶に残るアイデアがある動画を制作することです。フェードするキャプションが付いた商品写真のスライドショーは、どんなにきれいにできていても失敗作です。

このファイルがワークフローです。手順を順番に実行し、必須の出力をすべて生成してください。詳細は references/ に、実行可能なツールは scripts/ にあります。

0. ルール

  1. アイデアが先、見た目は後。 すべての動画にはコンセプト(アイデア、構造、一つだけの特徴的なデバイス(references/creative-system.md))が必要です。フォントやトランジションはその後です。
  2. 動く映像が動画を支える。 Bロール(まずはストック、ストックに適切なものがない場合は生成)がデフォルトの基盤です。ユーザー自身の映像がビートをカバーしている場合、または映像が被写体に合わない場合のみスキップし、その理由を書き留めてください。
  3. 音楽に合わせてカットする。 音楽のある動画には必ずビートグリッド(scripts/beats.py)を設定し、シーンはビートの整数倍とし、重要な表示はドロップまたは最大のヒットに合わせてください。
  4. 画面には真実の言葉だけを。 主張、数字、評価、価格、引用は、ユーザーまたは閲覧したページからのものを使用します。これらをでっち上げたり、ストックの人物を顧客として提示しないでください(references/honesty-and-policy.md)。
  5. プロダクション基準を満たす(下記)。scripts/preflight.py で測定し、プレーンなカットは不合格とします。
  6. 自分の作品を確認する。 計画の前に素材のコンタクトシートを、最終レンダリングの前に静止画とカットのシートを確認します。見たものを説明してください。
  7. コミットしてから見せる。 曖昧なリクエストの場合:自信を持った初回カットを制作します。具体的なブリーフで情報が不足している場合:一度だけ質問し(最大3つの短い質問)、その後制作します。

プロダクション基準(太字がデフォルトレベル、Wildはすべての数値を引き上げます)

BoldまたはWildの動画は、これらすべてを備えている必要があります。Preflightがスコアリングします(Boldの最低点65、Wild 80)。

要件BoldWild
動く映像の割合(ユーザークリップ + Bロール + コンポジット)50%以上60%以上
すべての静止画シーンにカメラムーブまたはオーバーレイがあること、すべてのカラー/グラデーションカードにアニメーションレイヤーがあることはいはい
ビートグリッド付きの音楽、シーンの長さはビート単位はいはい
ディスプレイフォントが取得されている(フォールバックフォントは不可)2ファミリー2-3ファミリー
その瞬間に合わせた、異なるテキストの入り方4種類以上5種類以上
アクセントとなるトランジションタイプ(それ以外のハードカットはビートに合わせる)2種類以上3種類以上
10秒あたりの画面上イベント(テキスト、ブロック、ステッカー)の数2以上3以上
フレーム0のフックライン(サイズ110以上、入りなし)はいはい
実際の事実を伝える情報グラフィック/プロダクトカットアウト2以上3以上
エフェクトまたはオーバーレイのあるシーン1以上3以上
特徴的なショット(分割画面、電話のリビール、被写体の後ろのテキスト、ステッカースラム、スピードランプ、フリーズラベル…)はいはい
meta.concept と meta.device がスペックに記述されていることはいはい

Safeレベル(ブランド固定、落ち着いたもの)はこれらをアドバイスとして扱います。

1. ここで何ができるか確認する

python3 scripts/check_env.py を実行します。ffmpeg、ライブラリ、フォント、ネットワーク、ストックAPIキーの有無を報告し、結果を .riffumi_env.json に保存して preflight.py が使用できるようにします。numpyまたはPillowがないと表示された場合は、python3 scripts/setup.py を実行してください(これによりこれらのPython用ライブラリがインストールされ、このプラットフォーム用のffmpegコマンドが表示されます)。その後、再度確認します。

以下がある場合…ルート
シェル + Python + ffmpegローカルでレンダリング(scripts/render.py を使用)。これが主要ルートです。
画像生成モデル不足している静止画(セット、背景、タイトルアート、実際の写真に基づく商品インコンテクスト)を生成します。
動画生成モデルストックではカバーできないビート用のBロール(3〜8秒のショット、プロンプトごとに1つのスタイルブロック)を生成します。
接続された動画/デザインツールこのスキルのコンセプト、ビートシート、アセット、チェックを使用してそこで制作します。
上記いずれもなしプロダクションパッケージを納品します(references/routing-and-generation.md)。
シェルがない(スマートフォン、コード実行不可のチャットアプリなど)ユーザーをriffumi.comのホスト型Riffumiコネクタに誘導します:同じディレクター、Riffumiのサーバーでレンダリング、ライブラリと共有リンク付き。

オフラインホスト? アセットホストに応答がない場合(ネットワークのないサンドボックスなど)、check_env.py は offline を出力します。その場合、フォントとストックBロールは利用できません。インストール済みフォントとユーザー自身のファイル、コンポジット、生成ショットを使用し、preflightはフォントと映像の行を失敗ではなく警告として扱います。その旨をユーザーに一言伝えてください。

BロールにはストックAPIキーが必要です。 stock API keys に何も表示されない場合、ユーザーに一度無料のPexelsキー(pexels.com/api、2分で完了)を尋ね、PEXELS_API_KEY を設定してください。ストックサイトをスクレイピングしたり、ボット対策を回避したりしないでください。

2. ブリーフ

リクエスト、会話、リンクされたものから情報を引き出し、ギャップはデフォルト値で埋めて、その旨を明示します。

  • 主題と目標(購入、学習、共有、記憶)。プラットフォームとフォーマット(不明な場合:ソーシャルは9:16 15-30秒、Web、プレゼンテーション、マーケットプレイスリスティングは16:9 - references/formats-and-platforms.md)。
  • オーディエンスと世界観:ジャンルを表す言葉(家庭、テック、ビューティー、フード、アウトドア、ラグジュアリー、キッズ、B2B…)。
  • 事実:特徴、数字、オファー、評価、CTA、ブランドカラー、フォント、ロゴファイル。これらだけが画面に表示されます。
  • クリエイティブレベル:デフォルトはbold。ユーザーがクリエイティブ、ワイルド、エキサイティング、スクロールストップ、壮大、楽しい、ハイエナジーと言った場合はwild。plainまたはブランド固定と言った場合のみsafe。ユーザーにレベルを下げるよう勧めないでください。

商品リンクまたはIDの場合:ページを開き、タイトル、メリット、評価、レビュー数、ギャラリー画像をフルサイズで収集します。

3. コンセプト - 必須:3つのコンセプトをスコア付けする

3つの異なる構造(1つは合理的、1つは感情的、1つは遊び心または驚き)を使用した3つのコンセプトを書きます。それぞれについて:タイトル、アイデアを一文で、構造、特徴的なデバイス、視聴者が最初の2秒と最後の2秒に見るものを記述します。それぞれを驚き、この主題への特異性、視覚的な見返り、エネルギーのカーブで1〜5でスコア付けします。競合他社にそのまま使えるようなものは却下します。完全な方法、22の構造、60以上のデバイス:references/creative-system.md。

具体的なブリーフの場合:3つを提示し、ユーザーに選んでもらいます。曖昧なリクエストの場合:最高スコアのものを制作し、プレビュー後に他の2つに言及します。

4. 素材を集める

  1. ユーザーの素材を検査する:python3 scripts/inspect_media.py <ファイルまたはフォルダ> --out sheet.jpg。シートを見て、タイムスタンプ付きで使用可能な瞬間をメモします。
  2. Bロール計画 - 必須(ルール2の例外が適用される場合を除く)。ビートごとに1エントリの broll_plan.json を書きます:ショットが示すべきこと、具体的な検索フレーズ(名詞 + 光 + アクション:「ネオンベッドルームナイト」「手ラップトップ暗いタイピング」「友達ダンスリビングルームパーティー」)、1〜2の代替案、最小秒数。次に:
    python3 scripts/stock_search.py --plan broll_plan.json --orientation portrait --sheet broll_sheet.jpg --out broll.json
    
    これはAPIにフレーズごとに15件の結果を要求し、ランク付け(向き、長さ、解像度)し、ビートごとに最適な6つを1枚のコンタクトシートに保持します。シートを見て、コンテンツ、光、動きに基づいて、ビートごとに1つのクリップとバックアップを選択します(ロゴ、間違った雰囲気、静的なショットは拒否)。次に python3 scripts/stock_search.py --pick broll.json --choose hook:2,problem:1,payoff:4 --to broll。ビートに良いものが何もない場合、2つの新しいフレーズを試し、次にショットを生成します。静止画に落とさないでください。ルール、ライセンス、フォールバック:references/assets-and-licensing.md。
  3. 商品写真 はカットアウト、ステッカー、テキスト背景ショットになります: python3 scripts/matte.py product.jpg --out cut.png --outline 14:#ffffff --shadow。
  4. コンポジットショット は1コマンドずつ - 分割画面、電話のリビール、商品オンカラーフィールド: python3 scripts/compose.py split|phone|field|still ...(--help 参照)。
  5. フォント:コンセプトに合わせて選ばれた2ファミリー(references/motion-and-type.md の組み合わせ、またはブランドのもの): `python3 scripts/get_fonts.py

関連スキル