Communitygithub.com

GIF Cinema

マルチシーンアニメーションストーリー、ミニカートゥーン、モーションデザインGIFやMP4を、ストーリービート、キャラクターリファレンス、短い生成テイク、ローカルのアニメーションタイトル、継続性レビューとともに作成します。単なる短いループの延長ではなく、より長いナラティブ編集に使用します。

GIF Cinema とは?

GIF Cinemaは、開発者やAIエージェントユーザー向けに設計されたスキルで、単一のループ生成を超えた、複数シーンのアニメーションGIFやMP4ストーリーの作成を可能にします。ユーザーはストーリーボードを編集し、キャラクターアクションを計画し、既存のGIFや生成されたテイク、ローカルのアニメーションタイトルを組み合わせて、因果関係のある一貫したナラティブを構築できます。このワークフローはClaude CodeやCodexなどのプラットフォームで動作し、PythonベースのCLIツール(gif-cinema)を活用します。このスキルは、生成APIを使用する場合、ユーザー自身のAPIアクセスを必要とし、信頼性とユーザー管理を確保するために、承認されたアセットのみを使用することを強制します。自動アニメーションではなく、レビューと手動選択による著者ガイドのワークフローを重視し、各ショットの継続性を詳細に追跡します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/antropos17/chatgpt-gif-cinema/tree/HEAD/.agents/skills/gif-cinema

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

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

ドキュメント

GIF Cinema は何をしますか?

ブリーフを因果関係のある異なる可視アクションに変換し、レビューされたショットを組み立ててより長いストーリーにします。外観、キャラクターアクション、グラフィックモーション、配信フォーマットを分離します。ユーザーが選択したアートスタイルと承認されたフッテージを保持します。これは自律的なアニメーションモデルではなく、著者ガイドによるワークフローです。

実際の制作ルートを選択する

  • 既存のGIF: 各テイクが実際に何を示しているかを検査し、それらのアクションを中心にストーリーを構築します。バンドルされている例は、APIキーなしでこのルートをテストします。
  • 新しいキャラクターアクション: 生成された短いGIFごとに1つの主要アクションを計画します。利用可能で承認された生成ツール/APIのみを使用します。各結果を検査して受け入れてから、その状態を別のシーンに拡張します。generation.mdを参照してください。
  • モーションデザイン: タイポグラフィとアクセントルールのエントランスのために、同梱のローカルアニメーションタイトレンダラーを使用します。レイヤーキャラクター、可動小道具、マスク、またはリグ付きアクションには、環境で実際に利用可能なコンポジターを使用し、その編集可能なソースを保持します。このパッケージには、一般的なレイヤーアニメーションエンジンは含まれていません。

カメラのドリフト、オーバーレイ、逆再生されたフッテージ、同じクリップへの別のキャプション、またはより長いホールドを新しいキャラクターアクションとしてカウントしないでください。長いカートゥーンには追加のストーリーイベントが必要です。それらの描画が不足しており、生成が利用できない場合は、完成したカートゥーンではなく、正直なアニマティックまたは制作計画を提供してください。

ランタイムとキーなしチェック

Python 3.10以上、Pillow、Git、FFmpeg、ffprobeが必要です。隔離された環境を使用してください。このスキルのヘルパーは、このレビュー済みの不変のパブリックランタイムで動作します。

python -m venv .venv
# シェルに合わせて.venvをアクティベートし、次に:
python -m pip install "gif-cinema @ git+https://github.com/antropos17/chatgpt-gif-cinema.git@fa82b13366a9ae94a4ece730ec6b2d065cd9a060"
python -m gif_cinema --help
ffmpeg -version
ffprobe -version

そのリビジョンの既存のチェックアウト、またはテスト済みの互換性のある新しいランタイムも使用可能です。動作中のプロジェクトを自動的にダウングレードしないでください。ランタイムは同梱のソース利用可能な評価ライセンスを使用します。GIF Factoryの帰属ワークフローの影響には、THIRD_PARTY_NOTICES.mdに独自のMIT通知があります。

ヘルパーとアセットのパスはこのスキルフォルダからの相対パスで解決してください。以下の例は、シェルがそのフォルダにあることを前提としています。他の場所からは、ヘルパーと入力JSONへの絶対パスを使用し、出力はユーザーのプロジェクトに配置し、インストールされたスキルには決して配置しないでください。

python scripts/story_project.py compile assets/example/storyboard.json --out output/story-project
python -m gif_cinema render output/story-project/film.json --dry-run --max-api-calls 0
python -m gif_cinema render output/story-project/film.json --execute --max-api-calls 0 --out output/story-render
python scripts/story_project.py export-gif output/story-render/film.mp4 --out output/story.gif

これは9.68秒のソース編集であり、新しい長編カートゥーンではありません:2秒のローカルアニメーションタイトルと、それに続く3つの既存の2.56秒の宇宙飛行士アクションです。MP4は25 fpsを使用します。ソースキャラクターはテイクあたり16の描画を持ち、毎秒25の新しい描画ではありません。GIFエクスポートのデフォルトは、幅320 px、10 fps、無音、再生1回です。--repeatは結果全体をループします。一部のビューアはGIFのループ動作を上書きします。

コアCLI回帰テストとして、scripts/smoke_test.py --out NEW_DIRECTORYを実行してください。どちらのヘルパーもキーを必要としません。ストーリーヘルパーはプロバイダー呼び出しを行わず、既存の出力プロジェクトを拒否します。story-project.mdには、その正確なスキーマ、コマンド、タイミング、制限が文書化されています。

生成前の直接作業

新しいストーリーまたは実質的な拡張については、storytelling.mdを読んでください。編集可能なストーリーボードを作成します。

  1. 前提と結末、視聴者、目標時間、アスペクト比、言語、サウンド要件(該当する場合)。関連性のない場合は、低リスクのデフォルトを推測し、再度尋ねないでください。
  2. コンパクトなビジュアルバイブル:認識可能なキャラクターアンカー、パレット/マテリアル、コスチューム、小道具の数、所有権、スケール、地理、カメラの慣習。
  3. ビート/ショットリスト:前の状態 → 可視アクション → 後の状態、カメラ、予想時間、ストーリー内での目的。各カットでの手/小道具/接触を追跡します。
  4. ソース/生成マップ:どのアクションが既に存在するか、どのアクションが新しい描画を必要とするか、どのアクションがローカルグラフィックスか。未レンダリングのショットは未レンダリングとしてマークします。

タイマーがブリーフに達するまでフッテージを繰り返すのではなく、意味のあるアクションと結果を追加してストーリーを拡張してください。assets/example/long-story.plan.jsonの長編ストーリー例は、未レンダリングの14アクション制作計画です。コンパイルすると14のワンショット生成入力が準備されますが、それらのアクションはレンダリングされません。

意図的に生成して結合する

ストーリーボードを scripts/story_project.py compile ... でコンパイルします。ソースのみのプロジェクトは実行可能な film.json を持ちます。欠落/生成されたショットがあるプロジェクトは、別々の generation/ID.json 入力と、意図的に不完全な assembly-template.json を持ちます。コンパイラによって有料バッチは実行されません。

キャラクター/メソッドが新しい場合は、1つの代表的なアクションを使用して実現可能性を確立します。新しい生成には、ユーザー自身のAPIアクセスと、合意された制限付き呼び出し上限が必要です。エンドポイントの連続性のために、受け入れられた前の最終フレームを抽出し、それを検査してから、その既存の静止画とクリーンなID参照を次のショット入力に添付します。コンパイラは将来の参照や自動依存関係グラフを作成しません。

別々のテイクフォルダと、受け入れ/拒否された候補の記録を保持してください。リテイクは隣接する両方の結合でレビューする必要があります。選択された各GIFのショットID、パス、SHA-256、レビューノートをテイクマニフェストに記録します。--takes takes.json でコンパイルすると、モードを手動で変更せずに生成されたスロットを埋めることができます。ヘルパーはそれらの正確なバイトをチェックし、実際の遅延を測定し、元のリクエストを保持します。部分的な選択を適用でき、不足しているアクションは明示的に未レンダリングのままになります。

各プロジェクトにはポータブルな storyboard.json が含まれます。新しいテイクマニフェストと新しい出力ディレクトリを使用して、そのファイルから続行します。既存のソースとレンダリングされたタイトルはハッシュピン留めされており、マニフェストによって置き換えることはできません。意図的なリテイクの場合は、元のストーリーボードの編集コピーを作成し、そこで新しいテイクを選択します。以前のプロジェクトは保持し、隣接する両方のカットを再度レビューします。プロジェクトのバージョンをレビューレコードとともに保持します。発信者ノートは自動的な視覚的承認ではありません。正確な選択形式とキーなしの例を参照してください。キーがたまたま設定されていても、ゼロコールのレンダリングを使用します。

モーション、タイミング、エクスポート

タイトルカードは、1回限りのテキスト/ラインエントランスとそれに続くホールドです。文字はローカルでストーリーボードで編集可能であり、生成プロンプトに委ねられません。タイトルは別々のショットであり、オーバーレイではありません。ランタイムのキャプションは別のSRTであり、GIFに焼き付けられません。必要に応じて、--font でライセンスされたローカルフォントを指定し、そのグリフを検査します。

キャラクターのタイミングは、デコードされたソースGIFから取得されます。ソースのリタイミング、トランジション、補間、オーディオ生成、自動アクション合成は、このヘルパーでは提供されません。ピン留めされたランタイムはハードカットを使用し、フィルムスクリプトを通じてオプションのローカルオーディオをインポートできます。GIFにはオーディオがありません。新しい編集ツールを使用する場合は、現在のランタイムヘルプに従ってください。ピン留めされたパッケージにそれらが含まれていると暗示しないでください。

まず検証済みのMP4をエクスポートし、次に小さなGIFまたはチャプターをエクスポートします。GIFパレット変換はグラデーションと細かい輪郭を損傷する可能性があります。実際の最終GIFもレビューしてください。高い再生FPSは新しいモーションを作成しません。review.mdに視覚的および技術的な承認チェックがあります。

実際の結果を提供する

要求されたGIF/MP4ファイルを、実際の時間、寸法、ループ動作、ソース描画ケイデンスとエクスポートFPSの比較、無音/オーディオステータス、既知の視覚的欠陥とともに提供します。要求された場合は編集可能なプロジェクトを含めます。プロジェクトを共有する前に、ソース名、プロンプト、参照、ライセンスをレビューし、プライベートな入力を公開しないでください。技術的検証、あなたの視覚的レビュー、ユーザー承認を区別します。

関連スキル