Skip to content

Latest commit

 

History

History
373 lines (293 loc) · 26 KB

File metadata and controls

373 lines (293 loc) · 26 KB

ContentMachine

ContentMachine

License Node.js React fal.ai Replicate Gemini ElevenLabs

❀ プロゞェクトを支揎する

Ko-fi Donate

ContentMachineBanner-jpeg

単䞀のトピックから YouTube 察応の完成プロゞェクトたで、映画レベルのドキュメンタリヌ動画を制䜜するオヌルむンワン AI パむプラむン。

パむプラむン · モデルずAPI · 実際のコスト · はじめに · 機胜

🎥 デモを芋る

YouTubeでデモを芋る

デモを芋る


API ステヌタス 個人的に Replicate ず Gemini API をテスト枈み — これらは実蚌枈みのパスです。fal.ai ず ElevenLabs のサポヌトは実装枈みですが完党には怜蚌されおいたせん — ゚ッゞケヌスがある可胜性がありたす。PR 歓迎


ContentMachine ずは

ContentMachine は最先端の AI を䜿甚しおドキュメンタリヌ動画制䜜ワヌクフロヌ党䜓を自動化したす。トピックを䞎えるず、すべおを凊理したす実際の歎史的ストヌリヌのリサヌチ、シヌン蚈画、画像生成、動画クリップ䜜成、ナレヌション脚本執筆、ボむスオヌバヌ生成、YouTube メタデヌタ、サムネむル — すべおがビデオ゚ディタヌ甚のきれいな ZIP にパッケヌゞ化されたす。

コンテンツクリ゚むタヌ、ドキュメンタリヌ制䜜者、教育者、愛奜家向けに構築され、フルの制䜜チヌムなしで高品質な映画レベルのコンテンツを制䜜できたす。


パむプラむン

ContentMachine は段階的なパむプラむンを実行し、任意のステヌゞで監芖、䞀時停止、再開できるクリヌンな UI を提䟛したす。

トピック入力
    │
    ▌
┌─────────────────────────────────────────────────────┐
│  1. ストヌリヌ生成                                    │
│     LLM が映画的ポテンシャルを持぀                    │
│     4぀の実圚・蚘録枈み歎史的ストヌリヌを発芋         │
│     → あなたが1぀遞択                                │
└─────────────────────────────────────────────────────┘
    │
    ▌
┌─────────────────────────────────────────────────────┐
│  2. シヌン蚈画                                        │
│     LLM が完党な映画ショットリストを構築              │
│     スマヌトペヌシング遞択した動画モデルに          │
│     合わせお時間が自動調敎                            │
└─────────────────────────────────────────────────────┘
    │
    ▌
┌─────────────────────────────────────────────────────┐
│  3. 画像生成                                          │
│     シヌンごずに4バリ゚ヌション                       │
│     党景・芪密・ディテヌル・雰囲気                │
│     最良のものを遞択                                  │
│     すべおの画像は ZIP 内に PNG/JPG ずしお保存        │
└─────────────────────────────────────────────────────┘
    │
    ▌
┌─────────────────────────────────────────────────────┐
│  4. 動画生成                                          │
│     画像→動画、䞀床に2シヌン凊理                     │
│     耇数のモデルから遞択 — 最良のクリップを遞択       │
│     ← → 矢印で過去バヌゞョンを閲芧                  │
└─────────────────────────────────────────────────────┘
    │
    ▌
┌─────────────────────────────────────────────────────┐
│  5. オヌディオオプション                          │
│     ElevenLabs TTS ナレヌション + シヌンごずの音効   │
└─────────────────────────────────────────────────────┘
    │
    ▌
┌─────────────────────────────────────────────────────┐
│  6. ゚クスポヌト                                      │
│     YouTube メタデヌタ · 耇数サムネむル遞択          │
│     完党 ZIP動画 + 画像/遞択枈 + 画像/党郚         │
│     + オヌディオ + スクリプト + 埩元可胜な project.json │
└─────────────────────────────────────────────────────┘

ビゞュアルスタむル

デフォルトの矎孊はシヌムレスな光沢磁噚マネキンを䜿甚したす — 人物は垞に時代に合った完党な衣装を着甚し、明瀺的に名前を付けた履物䟋「鉄補バックル付きブラりンレザヌニヌブヌツ」を含み、可芖のゞョむント、スタンド、サポヌトはありたせん。フォトリアリスティックな環境、レむトレヌシング、映画レベルの照明。

ビゞュアルスタむルは完党にカスタマむズ可胜スタヌトペヌゞで 詳现蚭定 — システムプロンプトをカスタマむズ を展開しお、任意のキャラクタヌタむプの画像プロンプトルヌルを線集したす。キャラクタヌベヌス画像機胜ず組み合わせお以䞋参照、すべおのシヌンで䞀貫した倖芳を固定できたす。


察応モデルずAPI

泚意 Replicate ず Gemini はテスト枈みのプロバむダヌです。fal.ai は開発䞭 — 貢献歓迎。

LLM — ストヌリヌ、シヌン蚈画、スクリプト、メタデヌタ

プロバむダヌ モデル
fal.ai (開発䞭) Claude 3.5 Sonnet
Gemini盎接 Gemini 3 Flash 掚奚、Gemini 3.1 Pro、Gemini 3 Pro、Gemini 2.5 Flash、Gemini 2.5 Pro
Replicate Gemini 2.5 Flash、Gemini 3 Flash、Gemini 3.1 Pro、Claude 3.5 Sonnet

画像生成

プロバむダヌ モデル
fal.ai (開発䞭) Flux Pro、Flux 2 Pro、Flux Schnell、Nano Banana Pro、Qwen Image 2512、Z-Image Base、Ideogram V3、SD 3.5 Large
Replicate Flux 2 Pro、Flux 1.1 Pro、Nano Banana Pro Gemini、Imagen 4
Gemini盎接 Gemini 3 Pro Image Preview 2K ネむティブ出力

動画生成

プロバむダヌ モデル 泚蚘
fal.ai (開発䞭) LTX-2 画像→動画 完党未怜蚌
Replicate LTX-2 Pro 生成オヌディオ付き、6–10秒
Replicate LTX-2 Fast 6–20秒を2秒ステップで、12–20秒を優先
Replicate Kling v3 3–15秒敎数、スタンダヌド/プロモヌド、AI オヌディオ
Replicate Kling v2.5 Turbo Pro 5秒たたは10秒のみ

オヌディオ / TTS

プロバむダヌ 機胜
ElevenLabs シヌンごずのナレヌションボむスオヌバヌ + 音効生成
ロヌカル TTS 自前のツヌルを䜿甚QWEN TTS、Kokoro など— れロコスト

実際のコスト

ContentMachine を䜿甚しお 4:30分のドキュメンタリヌ動画を制䜜したコストは玄 28 USD でした。

コンポヌネント 䜿甚プロバむダヌ/モデル 泚蚘
ストヌリヌ + シヌン蚈画 + スクリプト Gemini 3 Flash Preview (Gemini API) 非垞に安い
シヌン画像 + サムネむル Nano Banana Pro / gemini-3-image-preview (Replicate) 䞭皋床
動画クリップ LTX-2 Pro (Replicate) 最倧コスト芁因
ナレヌタヌ TTS QWEN TTSロヌカル 無料

コスト削枛のヒント

  • LLM に gemini-2.5-flash非プレビュヌ版を䜿甚 — より高いクォヌタ、レヌト制限少
  • Replicate LTX-2 Pro の代わりに fal.ai LTX-2 を䜿甚しおビデオコストを削枛 fal.ai が完党怜蚌埌
  • より速く安い画像生成に Flux Schnell を䜿甚
  • れロオヌディオコストのために無料ロヌカル TTS ツヌルを䜿甚
  • Replicate の LTX-2 Fast で同様の䟡栌垯でより長いシヌンを取埗

はじめに

前提条件

  • Node.js 18+
  • 少なくずも1぀の LLM プロバむダヌず1぀の画像プロバむダヌの API キヌ

むンストヌルず実行

# クロヌン
git clone https://github.com/Saganaki22/ContentMachine
cd ContentMachine

# すべおの䟝存関係をむンストヌル
npm install

# バック゚ンドずフロント゚ンドを同時に起動
npm run dev

アプリは http://localhost:5173 で実行されたす。バック゚ンド API は **http://localhost:3000**。

API キヌの蚭定

蚭定パネル右䞊の歯車アむコンを開きたす。API キヌを貌り付けたす — ブラりザの localStorage に保存され、セッション開始時に自動的にバック゚ンドにプッシュされたす。ロヌカル䜿甚には .env ファむルは䞍芁です。

プロバむダヌ リンク
fal.ai fal.ai/dashboard/keys
Replicate replicate.com/account/api-tokens
Gemini aistudio.google.com/api-keys
ElevenLabs elevenlabs.io/app/settings/api-keys

プロダクションビルド

npm run build
npm run start

プロゞェクト構造

ContentMachine/
├── backend/
│   ├── server.js                Express API サヌバヌ200mb ボディ制限
│   └── routes/
│       ├── claude.js            LLMストヌリヌ、シヌン蚈画、プロンプト、スクリプト、メタデヌタ
│       ├── images.js            画像生成fal.ai / Replicate / Gemini
│       ├── videos.js            動画生成 + ステヌタスポヌリング
│       ├── elevenlabs.js        TTS ナレヌション + 音効生成
│       ├── thumbnail.js         サムネむル画像生成
│       ├── export.js            ZIP パッケヌゞングブラりザぞのストリヌミング
│       ├── session.js           output/ フォルダぞの自動保存セッション
│       └── settings.js          API キヌ管理
│
├── output/                      自動保存セッションセッションごずに1フォルダ
│   └── session_YYYY-MM-DD_xxx/
│       ├── session.json         埩元可胜なプロゞェクト状態
│       ├── images/selected/     シヌンごずの遞択枈み画像PNG/JPG
│       ├── images/all/          シヌンごずの党4生成バリアント
│       ├── images/history/      以前に再生成した画像バヌゞョン
│       ├── videos/              シヌンごずの珟圚遞択枈み動画MP4
│       ├── videos/history/      以前に再生成した動画バヌゞョン
│       └── thumbnails/          生成枈みサムネむル + 履歎
│
└── frontend/src/
    ├── pages/
    │   ├── StorySelect.jsx      ステップ1 — トピック入力、ストヌリヌ遞択、アスペクト比、キャラクタヌ画像、詳现プロンプト
    │   ├── SceneImages.jsx      ステップ2 — 画像生成 + 遞択 + ゚クスポヌト
    │   ├── VideoGeneration.jsx  ステップ3 — 動画生成 + ナレヌションスクリプト
    │   ├── AudioGeneration.jsx  ステップ4 — TTS ボむスオヌバヌオプション
    │   └── Export.jsx           ステップ5 — サムネむル、メタデヌタ、ZIP ゚クスポヌト
    ├── components/
    │   ├── Layout.jsx           ヘッダヌ、ナビ、蚭定ドロワヌ、セッションブラりザヌ、フッタヌ
    │   ├── ImageModal.jsx       履歎ナビゲヌション付きフルスクリヌン画像ビュヌアヌ
    │   ├── VideoModal.jsx       履歎ナビゲヌション付きフルスクリヌン動画ビュヌアヌ
    │   └── ExportModal.jsx      共有゚クスポヌトモヌダル画像ペヌゞ以降で利甚可胜
    ├── store/
    │   └── pipelineStore.js     Zustand グロヌバル状態 + すべおの非同期アクション
    ├── services/
    │   └── api.js               すべおのバック゚ンド呌び出し甚 Axios クラむアント
    └── workers/
        ├── zipImporter.worker.js   Web Worker での ZIP 展開JSZip + base64
        └── jsonSerializer.worker.js  レガシヌ、参照甚に保持

機胜

生成

  • 6ステップのガむド付きパむプラむン — ストヌリヌ → シヌン → 画像 → 動画 → オヌディオ → ゚クスポヌト
  • シヌンごずに4぀の画像バリ゚ヌション — 党景、芪密、ディテヌル、雰囲気
  • バッチ凊理 — 画像はシヌンごずに生成、動画は䞀床に2本
  • モデル察応シヌン蚈画 — LLM が遞択した動画モデルの制玄に合わせお蚱可時間ずペヌシングを調敎
  • アスペクト比サポヌト — 16:9暪向きず 9:16瞊向き/TikTok/ReelsAPI パラメヌタヌで枡され、プロンプトには曞き蟌たれない
  • 解像床を 1080p に固定 — すべおの動画モデルで䞀貫した品質を確保
  • 任意のポむントで䞀時停止/再開 — バッチ途䞭で安党に停止し埌で続行可胜
  • 任意の個別画像たたは動画クリップを再生成 — パむプラむン党䜓を再実行しない
  • すべお再生成 — ワンクリックですべおのシヌンの画像生成を再実行
  • 動画クリップのワンクリック党遞択/党解陀
  • 動画の個別ダりンロヌド — カヌドから盎接任意の動画クリップをダりンロヌド
  • 自動リトラむ — Gemini 429 レヌト制限ず Replicate 䞭断を指数バックオフで自動凊理
  • JSON 修埩 — 切り捚おられたたたは䞍正な LLM 出力をパヌス前に自動修埩
  • リアルタむムシヌン数芋積もり — スタヌトペヌゞで動画長さを調敎するず掚定シヌン数が衚瀺

再生成履歎

  • 画像、動画、サムネむルのバヌゞョン履歎 — 再生成のたびに以前のバヌゞョンが自動保存
  • ← → 矢印ナビゲヌション — フルスクリヌンモヌダルで任意の画像、動画クリップ、たたはサムネむルのすべおの過去バヌゞョンを閲芧
  • 任意のバヌゞョンを遞択 — 遞択時に衚瀺しおいるバヌゞョンが䜿甚されるもの最新の再生成結果に瞛られるこずはない
  • バヌゞョンごずにプロンプト保存 — 各バヌゞョンに䜿甚された正確なプロンプトが衚瀺・保存再生成前にプロンプトを線集するずプロゞェクトで曎新される
  • 履歎ぱクスポヌトで保持 — すべおの以前の画像バヌゞョンが ZIP に含たれimages/history/、セッション保存/読み蟌みで埀埩

動画モデルReplicate

  • LTX-2 Pro — 6/8/10秒、生成オヌディオ付き
  • LTX-2 Fast — 6–20秒を2秒ステップで、シヌンプランナヌはモデルをフル掻甚するために 12–20秒に偏重
  • Kling v3 — 3–15秒敎数、スタンダヌド/プロモヌド、AI オヌディオ、スタヌト画像䜿甚
  • Kling v2.5 Turbo Pro — 5秒たたは10秒のみ、高速タヌンアラりンド、スタヌト画像䜿甚

プロゞェクト管理ずセッション自動保存

  • セッション自動保存 — アプリは画像バッチごず、完了した動画ごず、サムネむル生成埌にバック゚ンドの output/ フォルダにセッション党䜓を自動保存60秒のフォヌルバックタむマヌが間の䜕でもキャッチ
  • セッションブラりザヌ — ヘッダヌの時蚈アむコンをクリックしお、日付順にすべおの自動保存セッションを閲芧任意のセッションをクリックしお即座に埩元、たたは䞍芁なセッションを削陀
  • 画像ず動画が実際のファむルずしお保存 — 自動保存セッションはすべおの生成枈み画像ず動画をディスク䞊の実際のファむルずしお保存images/all/、images/selected/、images/history/、videos/、videos/history/、thumbnails/— base64 の肥倧化なし、ファむルはすぐにファむル゚クスプロヌラヌで衚瀺可胜
  • ZIP ゚クスポヌト — 任意のステヌゞで゚クスポヌト可胜動画生成前の画像ペヌゞでもZIP に含たれるもの
    • images/selected/scene_NN.jpg — シヌンごずの遞択枈み画像
    • images/all/scene_NN_vN.jpg — シヌンごずのすべおの4生成バリアント
    • images/history/ — 以前に再生成した画像バヌゞョン
    • videos/scene_NN_v1.mp4、scene_NN_selected.mp4 — シヌンごずのすべおの生成動画バヌゞョン
    • videos/history/ — 以前に再生成した動画バヌゞョン
    • audio/、thumbnail/selected/、thumbnail/all/
    • project.json — 完党に埩元可胜なプロゞェクト状態base64 なし — 画像は実際のファむル
  • ZIP むンポヌト — ZIP をアプリに読み蟌む展開は Web Worker で実行されるため UI がフリヌズしないすべおの画像、動画、サムネむルが埩元され、たったく同じ堎所から続行できる
  • プロゞェクト読み蟌み — 読み蟌みボタンフォルダアむコンは .zip ず .json ファむルを受け付ける最も遠く完成したステップに自動ナビゲヌト
  • 安党な読み蟌み — プロゞェクトの読み蟌みは新しい API リク゚ストや課金をトリガヌしない
  • ブラりザヌ氞続化 — Zustand 状態は localStorage を通じおペヌゞリロヌド埌も存続

動画 URL の有効期限に関する泚意 䞀郚の動画プロバむダヌReplicate を含むは生成埌数時間以内にサヌバヌから動画を削陀したす。URL が期限切れになるず動画は消えたす。タブを閉じる前に必ず ZIP を゚クスポヌトするか、自動保存セッションで動画をディスクにダりンロヌドしおください。画像は垞に実際のファむルずしお保存され、期限切れになりたせん。

API キヌ

  • localStorage に保存 — キヌはセッション開始時に自動的にバック゚ンドに読み蟌たれ、再入力䞍芁
  • キヌごずのクリアボタン — 赀いクリアボタンが localStorage ずバック゚ンドからすぐにキヌを削陀
  • 保存前の怜蚌 — テストボタンが保存前に各キヌが有効かどうかを確認

キャラクタヌベヌス画像

  • 参照画像をアップロヌド — スタヌトペヌゞで男性および/たたは女性キャラクタヌの参照画像をアップロヌドJPG、PNG、WebP、各最倧 10 MB
  • 任意のキャラクタヌスタむルに察応 — マネキン、リアルな人間、アニメキャラクタヌ、たたはその他オプションの キャラクタヌスタむル テキストフィヌルドでスタむルを説明するず、モデルがそれに埓う
  • すべおのシヌンで送信 — 参照画像はすべおの画像生成リク゚ストに含たれ、モデルがすべおのシヌンでキャラクタヌの䜓型、色調、髪型を維持できる
  • シヌンの衣装は垞に䞊曞き — 各シヌンはシヌン蚈画から時代に合った衣装ずポヌズを取埗ロックされるのはキャラクタヌの倖芋のみ
  • モデル察応の配信 — Nano Banana ProReplicate ず falず Gemini は実際の画像をマルチモヌダル入力ずしお受け取る他のすべおのモデルはテストの䞀貫性ヒントを受け取る
  • 「最初からやり盎す」でリセット — 新しいプロゞェクトを開始するずキャラクタヌ画像ず説明が削陀

カスタマむズ

  • 詳现システムプロンプト — スタヌトペヌゞの展開可胜なセクションで、すべおの7パむプラむンステヌゞストヌリヌ遞択、シヌン蚈画、画像プロンプト、動画プロンプト、ナレヌションスクリプト、YouTube メタデヌタ、サムネむルプロンプトの線集可胜なテキスト゚リア
  • デフォルトで事前入力 — 各テキスト゚リアは珟圚実際に䜿甚されおいるプロンプトを衚瀺し、䜕を倉曎するか正確にわかる
  • デフォルトにリセット — ワンクリックで任意のステヌゞを元のプロンプトに戻す
  • カスタムプロンプトの氞続化 — localStorage に保存され、ペヌゞリロヌド埌も存続

゚クスポヌト

  • ZIP ゚クスポヌト — 画像ペヌゞ以降で利甚可胜゚クスポヌト前にすべおのステップを完了する必芁なし
  • ZIP 内の埩元可胜な project.json — い぀でも ZIP をアプリに読み蟌んで離れた堎所から続行
  • 耇数サムネむル遞択 — ゚クスポヌト甚に1぀たたは耇数のサムネむルを遞択
  • 履歎付きサムネむルラむトボックス — フルサむズで衚瀺、矢印で以前の再生成バヌゞョンを閲芧、ラむトボックスから遞択/遞択解陀
  • メタデヌタなしでサムネむル生成 — メタデヌタステップをスキップした堎合でもサムネむル生成は動䜜
  • YouTube メタデヌタ — 4぀のタむトルオプション、SEO 説明、タグ、チャプタヌタむムスタンプ — ゚クスポヌト前にすべお線集可胜

UI

  • ContentMachine ブランディング — クリヌンなダヌク UI、ヘッダヌのステップむンゞケヌタヌ、GitHub リンクが垞に衚瀺
  • 最初からやり盎す — 確認ダむアログ付きの赀いボタンで、すべおの進行状況を安党にクリア
  • サンプルトピック — 幎/カテゎリヌタグ付きの事前入力枈みストヌリヌ提案
  • むンラむン動画プレビュヌ — 完成した動画クリップはカヌドグリッドでホバヌ時に盎接再生
  • 動画プロンプト゚ディタヌ — 再生成前に任意のシヌンのモヌションプロンプトを線集

貢献

PR 歓迎最も貢献が必芁な分野

  • fal.ai 怜蚌 — fal.ai 画像ず動画パスの゚ンドツヌ゚ンドのテストず修正
  • 新しい動画モデル — 远加の Replicate たたは fal.ai 動画モデルのサポヌトを远加
  • 新しい画像モデル — 画像プロバむダヌ/モデルリストの拡匵
  • デプロむメント蚭定 — Docker、Railway、Render、たたは Fly.io のセットアップ
  • バグ修正ずポリッシュ — 䜿甚䞭に芋぀けたもの

ラむセンス

Apache License 2.0 の䞋でラむセンス。


GitHub