Communitygithub.com

ouxxyy/codex-gif-video

動作記述、絵コンテ、またはナレーションのテキストから、字幕・BGM・ナレーションなしのGIF/動画素材を作成します。GPT Image ネイティブGIFを使用し、69種類のスタイル資料に従ってキャラクターと画風を統一。ユーザーは単一の長尺GIFまたは無音MP4を選択でき、元の短尺GIFとソースリストも保持します。

codex-gif-video とは?

このスキル(Codex GIF Video)は、動画編集やプレゼンテーションでそのまま使える、純粋なビジュアル素材を提供することに特化しています。ユーザーは、動作説明や絵コンテのテキストを入力するだけで、字幕、BGM、ナレーション、テキスト、透かしなどが一切含まれないGIFまたはMP4素材を生成できます。出力形式は、個別の短尺GIF、それらを連結した1つの長尺GIF、または無音MP4(H.264)から選択可能で、同時に両方の出力も可能です。内部ではOpenAIの公式APIまたはCodexのネイティブGIFツールを利用し、69に及ぶ詳細なスタイルガイド(素材、配色、人物など)に基づいてキャラクターと画風の一貫性を保ちます。出力品質は厳格にチェックされ、技術的要件(フォーマット、サイズ、フレーム数など)に加えて、実際の動きの自然さや意図したスタイルとの一致が確認されてから最終出力されます。MP4はH.264コーデックでビデオストリームのみ、GIFはループせずに1回だけ再生され、全素材にソース情報が添付されるため、トレーサビリティも確保されています。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/ouxxyy/codex-gif-video/tree/HEAD/codex-gif-video

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

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

ドキュメント

Codex GIF Video

用途と出力選択

このスキルは、後続の編集で使用できるビジュアル素材を専門に作成します。字幕、タイトル、テキストラベル、透かし、BGM、ナレーション、効果音は一切追加しません。ナレーションのテキストは動作の理解とショット分割のためにのみ使用され、字幕や音声に変換されることはありません。上流のスタイル資料に含まれる音声、字幕、長尺映像の作成要件は、このスキルの実行指示ではありません。

ユーザーは以下を選択できます:

  • 元の短尺GIF:各ショットについて、サービスが返した元のバイトデータとリストを保持します。
  • 1つの長尺GIF:複数の適格なショットを順番に連結して単一の.gifファイルにします。ループは埋め込まず、1回だけ完全に再生します。
  • 動画形式:.mp4(H.264/yuv420p)として保存します。ビデオストリームのみで、無音、字幕なし。
  • 両方:同じショットを再利用して長尺GIFとMP4の両方をエクスポートします。ショットを重複して生成することはありません。

ユーザーの明確な選択に従います。「GIFを作成」と言われればGIFを、「動画形式」と言われればMP4を提供します。指定がない場合、デフォルトでGIF素材とし、MP4が選択可能であることを説明します。目標の長さが単一ショットの能力を超える場合は、まず複数のショットに分割し、その後1つの長尺ファイルにエクスポートします。断片的な素材だけを提供することはできません。呼び出し方法についてはエクスポートワークフローを参照してください。

生成の境界とエントリーポイント

動画像ソースは、モデルがネイティブに返すことを許可されているGIFのみを受け付けます。Codexセッションのネイティブツール、またはユーザーが既に選択した公式OpenAI Image APIを使用します。サードパーティのプロキシ、他の画像/動画モデル、静的なフレーム結合、コードアニメーション、I2V、またはフレーム補間による疑似ネイティブアニメーションは使用しません。元のGIFと各リクエストの証跡を保持し、速度変更、ループ、またはフレーム停止で時間を稼ぐことはしません。

長尺GIFの連結、MP4エンコード、およびアスペクト比を維持したリサイズは派生エクスポートであり、モデルによる1回のネイティブ生成とは呼ばず、実際のモーションフレームを増やすこともありません。GIFの再エンコードではパレットが変化する可能性があるため、可能な限り元のサイズを優先します。長いコンテンツの場合は、ファイルサイズを抑えるためにMP4を選択することもできます。

エントリーポイントの優先順位:現在のセッションでの明確な指示 → プロジェクトプライベートな codex-gif-video.config.json の preferred_entry → Codexセッション。保存された選択を引き継ぎます。ネイティブエントリが失敗した場合、自動的に有料APIに切り替えません。credential_file と budget_file はプロジェクトルートからの相対パスで、キーはスキル、プロンプト、またはログに含めません。

公式APIは最初に official-api.md を読み、official_api.py を使用します。Codexのgifスイッチチェックはスキップします。Codexモードの場合は、まず native_gif.py doctor を実行し、現在のセッションの実際のツールスキーマを確認します:gif フィールドが必須であり、プロンプトオンリーのスタティックプローブを送信せず、パラメータを推測しません。診断は native-entry.md を参照してください。モデルとGIFの機能は、アカウントおよびサーバー側の開放範囲によって制限されます。

同じ認証バッチは予算を共有し、デフォルトで最大8回のGIFリクエスト、3回の参照リクエストが可能で、失敗とタイムアウトもカウントされます。新しいタスクまたは明示的なリメイクの場合は、独立した台帳を作成し、計画数を記録して古い台帳を保持します。失敗を回避するために割り当てをクリアすることはできません。新しい試行は明示的にリトライする必要があり、プロンプト、パラメータ、参照が変更された場合は新しいバンドルを作成する必要があります。

要件からショットへ

  1. 呼び出しプロトコルを読み、目標をshotsに分割します。各ショットには「初期状態 → 動作 → 完了状態」を明確に定義します。ナレーションは原文を保持し、音声タイムスタンプを捏造しません。重複するセグメントは文字位置を提供します。
  2. 出力形式、アスペクト比、および総時間を決定します。prepare はアスペクト比をピクセル値に変換します:デフォルトでは9:16→288×512、16:9→512×288、1:1→512×512。これはローカルでの控えめなデフォルトであり、サービスの上限ではありません。16の倍数であり、サービスのピクセル制限内であるサイズを明示的に指定できます。
  3. デフォルトで正確な時間を設定します。frame_count を省略した場合、自動的に目標時間を割り切れる2〜16フレームのオプションを選択します。明示されたフレーム数が互換性がない場合は、生成前にエラーを報告します。近似が明示的に受け入れられた場合のみ duration_policy:quantize を設定し、誤差を開示します。15秒は5セグメント×3秒×15フレーム(各200ms)として計画できます。16フレーム×310msを5秒と呼ぶことはできません。低フレームレートは単純な動作に適しており、映画のような滑らかさは保証しません。
  4. スタイルを推奨した後、候補を比較し、style_router.py guide --style ID を実行して、選択されたスタイルの完全な原文を読み込みます。素材、人物、配色、動作、カメラ、およびビジュアルタブーを確認します。上流の字幕、音声、コードエンジンの要件は無視します。styles.mdを参照してください。
  5. ショット間で人物の一貫性が必要だが、ユーザーのメイン参照がない場合、style_router.py reference-prompt --style ID --subject-file FILE を使用してメイン参照プロンプト計画を生成し、モデルを呼び出します。まず実際のメイン参照を確認し、その後各ショットでそれを再利用して人物の特徴と style_lock を固定します。ドリフトした結果をメイン参照に置き換えることはしません。
  6. リクエストJSONを作成します。prepare はプロンプト、サイズ、時間計画、スタイル原文のハッシュ、および参照を凍結します。生成前にパラメータと総時間を確認します。リクエストが変更された場合は新しいディレクトリを使用し、古い結果を上書きしません。

生成とソースの証拠

公式モード:prepare → official_api.py generate、native-request は呼び出さず、重複予約を避けます。最初のショットが実際のマルチフレームGIFを受信し、技術パラメータが適合し、ソースの証拠が十分であることを確認してから続行します。サイズ、フレーム数、またはフォーマットのエラーは最初に特定し、グループ全体を盲目的にリトライしません。

Codexモード:prepare → native-request → 実際のスキーマに従いネイティブツールを呼び出し(gif を保持)→ import-native。ファイルがない場合は finish-attempt で失敗または不明を記録します。公開されていない model/size/output_format をツールフィールドとして扱うことはできません。

  • model_evidence.reported_model はサービスの実際の返信のみを記録し、欠落している場合はnullを保持し、モデルを推測しません。
  • 公式リクエストは、固定された公式HTTPSエンドポイント、明示的に許可されたモデル、リダイレクトなし、200レスポンス、リクエストIDとリクエストハッシュで構成される official_request_evidence を使用できます。これは公式リクエストのソースを証明しますが、サービスが自己申告する実行モデルと等価ではありません。
  • Codexのソースが不明、公式の受領証が不完全、モデルレポートが矛盾する場合でも、合格させることはできません。履歴のunknown/unverifiedを自動的に書き換えることはしません。

チェックとデリバリー

quality.mdを読んでください。技術チェックはフォーマット、サイズ、フレーム数、遅延、デコード、およびピクセル変化のみを証明します。動作の自然さを証明するものではありません。実際のチェックでは、全フレームを通常速度で完全に再生し、アイデンティティ、スタイル、構造、モーション、セマンティクス、ループ、clean_visual(字幕とテキストオーバーレイなし)をそれぞれ記録します。Jevが利用可能な場合は、実際のフレーム抽出とメイン参照を使用します。静的フレーム抽出と完全再生範囲は別々に記録します。

review は元のファイルのハッシュをバインドします。すべての品質要件が満たされた後にのみ export して ready_gif_assets とします。派生エクスポートはデフォルトで ready パッケージのみを消費します。技術とソースが合格しているが完全な再生チェックが不足している場合は、明示的に --review-copy を使用してレビュー待ちファイルを作成し、rendered_pending_review と不足項目を保持します。明確なビジュアル失敗は、レビュー待ちモードで通過させることはできません。

ユーザーの選択に従って compose_movie.py --out assets.gif または --out assets.mp4 を呼び出します。単一バンドルまたは複数バンドルのショットリストをサポートします。各ショットは1サイクルのみ使用し、元の速度を維持します。字幕や音声は追加しません。MP4エクスポートは強制的に単一ビデオストリームのみとします。長尺GIFは実際の総遅延、サイズ、順序、および単回再生を確認します。どちらも実際の画面をチェックする必要があり、ストリームチェックでは画面に焼き付けられたテキストを発見できません。

選択されたファイル、元のGIF、リスト、レンダリング受領証、および残りの検証範囲を提供します。履歴結果と修正版をトレース可能に保ちます。インストールパスがシンボリックリンクの場合は元のディレクトリを更新します。パッケージ化の際はキーと実行成果物を除外します。

関連スキル