dream-to-video について
dream-to-video は、夢の文章を即梦で動画にするスキルです。プロンプト作成からジョブの登録、動画のダウンロード、エフェクト処理までを行います。
主な機能
- 01夢の文章から動画プロンプトを作成
- 02Worker によるジョブキュー処理
- 03ログイン状態とタスク状況の確認
- 04元動画とエフェクト版のダウンロード
- 05楕円状の破砕エフェクト処理
活用シーン
- 01夢の文章を動画にする
- 02複数の夢の素材を個別に登録
- 03動画生成タスクの状況を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mediastormdev/ dream-to-video-skill --skill dream-to-videoインストール後、Claude Code で/dream-to-videoを入力して読み込まれたか確認します。
詳細
Dream-to-Video 夢の素材からの全自動動画生成
ユーザーが提供した夢の文章素材を動画プロンプトに変換し、自動化ツールチェーンを通じて即梦プラットフォームに送信して動画を生成し、ローカルにダウンロードします。ユーザーが渡すのは文章だけで、最終的に動画ファイルを返します。
零、初回の環境設定
ユーザーがこの Skill を初めて使用するときは、以下の手順に沿って環境を自動設定します。各手順の実行後に結果を確認し、すべて完了してから使用を開始できることをユーザーに伝えます。
パスの規約
このドキュメントでは {W} はこのリポジトリの clone 先(つまり、dream_to_video/ ディレクトリの親ディレクトリ)を表します。
- プロジェクトディレクトリ:
{W}/dream_to_video/ - Skill リソースディレクトリ:
{W}/skills/dream-to-video/
コマンドを実行する際は、{W} を実際のパスに置き換えます。
自動実行(ユーザー操作不要)
Step 0-0:プロジェクトリポジトリをクローン プロジェクトをどのディレクトリに配置するかユーザーに尋ねてから、次を実行します:
cd "<用户指定的目录>" && git clone https://github.com/mediastormDev/dream-to-video-skill.git && cd dream-to-video-skill
クローン完了後の dream-to-video-skill ディレクトリが {W} です。
ユーザーが「現在のディレクトリで」と答えた場合は、現在のディレクトリにクローンします。
Step 0-1:Python を確認
python --version
Python ≥ 3.10 が必要です。インストールされていない、またはバージョンが古い場合は、停止してユーザーに案内します:
まず Python 3.10 以降をインストールしてください:https://www.python.org/downloads/ インストール時に「Add Python to PATH」にチェックを入れてください。
Step 0-2:Python 依存関係をインストール
cd "{W}/dream_to_video" && pip install -r requirements.txt
Step 0-3:Playwright ブラウザーをインストール
playwright install chromium
自動で即梦プラットフォームを操作するために、Chromium ブラウザーエンジン(約 150MB)をダウンロードします。
Step 0-4:必要なディレクトリを作成
cd "{W}/dream_to_video" && mkdir -p output data auth/browser_profile reference_images/室内 reference_images/室外
Step 0-5:参照画像素材を配置
リポジトリに同梱されている参照画像は skills/dream-to-video/reference_images/ にあります。プロジェクトの実行ディレクトリに自動でコピーします:
cp -n "{W}/skills/dream-to-video/reference_images/室内/"*.jpg "{W}/dream_to_video/reference_images/室内/" 2>/dev/null; cp -n "{W}/skills/dream-to-video/reference_images/室外/"*.jpg "{W}/dream_to_video/reference_images/室外/" 2>/dev/null; echo "reference images deployed"
-nは既存ファイルを上書きしません。ユーザーが自社環境の写真を持っている場合は、対応するディレクトリに追加で配置できます。
ユーザー操作が必要
Step 0-6:即梦プラットフォームにログイン
cd "{W}/dream_to_video" && python main.py login
実行するとブラウザーで即梦のウェブサイトが開き、ログイン用の QR コードが表示されます。ユーザーに次のように伝えます:
スマートフォンの抖音/即梦アプリで、ブラウザーに表示された QR コードをスキャンしてログインしてください。ログインに成功すると、プログラムが認証情報を自動保存するため、次回以降ログインする必要はありません。
セルフチェックリスト
すべての手順が終わったら、以下のチェックを順に実行します。すべて ✅ になれば設定成功です:
# 检查 1:Python 版本
python --version
# 期望:Python 3.10+
# 检查 2:核心依赖
python -c "import playwright; import cv2; import numpy; print('deps OK')"
# 期望:输出 deps OK
# 检查 3:Playwright 浏览器
python -c "from playwright.sync_api import sync_playwright; b=sync_playwright().start(); br=b.chromium.launch(headless=True); br.close(); b.stop(); print('browser OK')"
# 期望:输出 browser OK
# 检查 4:目录结构
python -c "from pathlib import Path; dirs=['output','data','auth/browser_profile']; ok=all((Path('{W}/dream_to_video')/d).is_dir() for d in dirs); print('dirs OK' if ok else 'dirs MISSING')"
# 期望:输出 dirs OK
# 检查 5:登录状态
cd "{W}/dream_to_video" && python main.py verify
# 期望:显示登录有效
すべて成功したら、ユーザーに次のように伝えます:
環境設定が完了しました!夢の素材を送るだけで、自動的に動画を生成できます。
いずれかの項目が失敗した場合は、修正方法を個別にユーザーに案内し、以降の手順には進みません。
一、全体のワークフロー
用户给梦境素材 → 你按规则转化为 Prompt → 提交到队列 → Worker 自动生成+下载 → 通知用户
素材を受け取るたびに、必ず以下の手順を実行します:
手順 1:Prompt に変換 以下の「二、動画プロンプト生成ルール」に従い、ユーザーの夢の素材を動画プロンプトに変換します。完成した Prompt 全文をそのまま出力します。
- ルール 9(容貌の識別情報)を確認:主役以外に画面に見える人物がいるか。いる場合は識別情報を記載します。
- ルール 10(参照画像の接頭辞)を確認:会社/職場の物理的な環境の描写があるか。ある場合は
参考图中环境;の接頭辞を追加します。
手順 2:キューに送信
cd "{W}/dream_to_video" && python -u main.py add "你生成的完整Prompt"
このコマンドは瞬時に完了し、task_id を返します。
手順 3:Worker が実行中であることを確認 バックグラウンドで実行中の worker タスクがあるか確認します。なければ、次を起動します:
cd "{W}/dream_to_video" && python -u main.py worker
バックグラウンドモード(run_in_background: true)で実行します。Worker は自動的に以下を行います:
- Prompt に
参考图中环境;の接頭辞が付いているか検出します - 付いている場合 → 参照画像を自動で選択し、「全能参考」モードに切り替え、画像をアップロードし、ProseMirror エディターで
@图片1を使って参照画像を指定しながらプロンプトを入力します - 付いていない場合 → textarea に直接プロンプトを入力します
- 生成設定(Seedance 2.0 / 16:9 / 15s)を設定 → 生成をクリック → 進捗を監視 → ダウンロード → エフェクトを後処理
手順 4:ユーザーに伝える
送信済みであることをユーザーに伝えます。動画の生成が完了すると、{W}/dream_to_video/output/ に自動でダウンロードされ、通知音が鳴ります。
状態の確認
ユーザーから進捗を尋ねられた場合は、次を実行します:
cd "{W}/dream_to_video" && python -u main.py status
または状態ファイル {W}/dream_to_video/output/batch_state.json を読み取ります。
二、動画プロンプト生成ルール
最上位の原則
1. 絶対的な写実性(Hardcore Realism)
アニメ、二次元に関する語句は厳禁です。「金色」「唯美」「叙事詩的」「ネオン」「サイバーパンク」など、AI が使いがちな空虚な語句は禁止です。「自然光」「サイド逆光」「35mm レンズ」「感光度ノイズ」「被写界深度のコントロール」など、プロの撮影用語を使用します。
2. 超現実的な表現(Uncanny Dream-Logic)
人を怪物にすることは厳禁です。環境の雰囲気、論理の飛躍、そして常識に反する微細な描写(例:動く山脈、自動で現れる菓子、繰り返される機械的な動作)によって、夢らしさを表現します。
3. 原作への忠実さ(Strict Adherence)
素材に含まれる重要な視覚要素(特定の物、特定の場面、特定の人物の動作など)を必ず含めます。素材にない要素を創作しないでください。
4. 映画的なカメラワーク(Cinematic Camera)
一人称視点に限定しません。全景、クローズアップ、手持ちでの追従、固定カメラなどを使用できます。カメラの物理的な動き(例:カメラの揺れ、フォーカスの切り替え、ゆっくりとした前後移動)を強調し、臨場感を保ちます。魚眼レンズ(Fisheye Lens / Ultra-Wide 12mm)を優先的に使用し、樽型歪曲によって夢の空間の歪みや圧迫感を強めます。特に、人物を近距離で映す場面、廊下、室内などに適しています。
5. 非言語的な語り(Silent Visuals)
台詞の描写は厳禁です。意思疎通はすべて、視線、ジェスチャー、うなずき、指さし、または物を見せることで表現します。
6. 主体に名前を付けない(No Names)
一律に 「主役」(Protagonist) を使用します。世界的な著名人を除き、人名は「仲間」「運転手」「信徒」などに置き換えます。
7. 画面をクリーンに保つ(No Text / No Overlay)
画面内に文字、字幕、ロゴ、透かしを表示することは厳禁です。情報はすべて純粋な視覚要素で伝え、テキストのオーバーレイに頼ってはいけません。
8. 空間と時間(Logic & Timing)
場面転換には物理的なつながり(影に入る、ドアを開けるなど)を持たせるか、「ハードカット(Hard Cut)」 を使用します。合計 15s 以内で、1~6 カットにします。
9. 人物の容貌の識別情報(Character Ethnicity Tagging)
画面に見える主役以外の人物には、容貌の特徴を記載します。主役には記載しません(夢は通常一人称視点で、主役は POV/手元/後ろ姿で登場し、顔は見えません)。
地域の検出:ユーザーの素材から地域/国名のキーワードを探します:
| ユーザー素材のキーワード | Prompt で他の人物に追加する表現 |
|---|---|
| アメリカ、ニューヨーク、ロサンゼルスなど | アメリカ人 |
| 日本、東京、大阪など | 日本人 |
| 韓国、ソウル、釜山など | 韓国人 |
| インド、ムンバイ、デリーなど | インド人 |
| イギリス、ロンドンなど | イギリス人 |
| タイ、バンコクなど | タイ人 |
| ロシア、モスクワなど | ロシア人 |
| その他、判別可能な国/地域 | 対応する国籍の人 |
- デフォルト値:素材に地域/国名の語句が一切ない場合、画面に見える他の人物にはデフォルトで 「東アジア人の容貌」 を追加します
- 記載方法:他の人物が初めて登場する描写に自然に組み込みます。例:「廊下の突き当たりに立つ東アジア人の容貌の仲間」「会場のあちこちに三々五々散らばる数十人の東アジア人の容貌の同僚」
- 他の人物がいない場合:夢の場面に主役しかいない場合(例:一人で残業する、自宅で一人で過ごす)は、容貌の識別情報を追加しません
10. 会社環境の参照画像識別子(Company Environment Reference Prefix)
ユーザー素材が特定の会社/職場の物理的環境を描写している場合、Prompt の最前面に 「参考图中环境;」 のプレフィックスを追加します。Worker は {W}/dream_to_video/reference_images/ から該当する屋内/屋外の参照画像を自動的に選択してアップロードします。
追加が必要(場所/環境を指している場合):
| ユーザー素材の例 | 判定 | 理由 |
|---|---|---|
| 「会社の廊下にいる」 | ✅ 追加 | 「会社」が物理的な場所を指している |
| 「会社の入口に車が停まっている」 | ✅ 追加 | 会社の物理的な出入口を描写している |
| 「何号棟のエレベーターホールに着いた」 | ✅ 追加 | 特定の建物を描写している |
| 「何号棟の照明がすべて点灯している」 | ✅ 追加 | 特定の作業小屋/撮影スタジオを描写している |
| 「オフィスビルの廊下の照明が緑色だ」 | ✅ 追加 | オフィスビルの環境を描写している |
| 「オフィスビルのロビーはとても広々としている」 | ✅ 追加 | オフィスビルの環境を描写している |
| 「工場の作業場はほこりだらけだ」 | ✅ 追加 | 工場の環境を描写している |
| 「会社の年次総会がある会場で、天井から水が漏れている」 | ✅ 追加 | 会場+天井=物理的な建物環境 |
| 「会社で残業していると、オフィスの照明が突然消えた」 | ✅ 追加 | オフィス=物理的な空間 |
追加は不要(人物/社会的関係/会社とは無関係の場面を指している場合):
| ユーザー素材の例 | 判定 | 理由 |
|---|---|---|
| 「会社の同僚にお金を借りたいと言われた」 | ❌ 追加しない | 「会社の」は人物を修飾しており、場所ではない |
| 「会社の人たちと一緒に食事をする」 | ❌ 追加しない | 「会社の人たち」は社会的な関係を指している |
| 「会社の社長が突然現れた」 | ❌ 追加しない | 人物の身分を指している |
| 「ショッピングモールで会社の友人に会った」 | ❌ 追加しない | 場面はショッピングモールであり、会社ではない |
| 「会社のお年玉争奪戦に参加する」 | ❌ 追加しない | 社交イベントであり、物理的な空間の描写がない |
判断の要点:「会社/ビル/棟」が 場所を表す状語(どこで)なのか、人を修飾する連体修飾語(誰の)なのかを見ます。前者なら追加し、後者なら追加しません。同じ素材の中に会社環境の描写と会社関係者の描写の両方がある場合は、会社内部の具体的な場面描写があるかどうかで判断します。廊下、オフィス、エレベーターホール、作業場、会場+天井/壁など、実際の空間の描写があれば追加します。
記述形式:参考图中环境;これは[写実+感情語]な夢です……
出力形式
Prompt はひと続きのテキスト(段落分けや Markdown は不可)で、以下の要素を含める必要があります:
部分 1:スタイルの総括文
これは [写実+感情語] な夢で、カメラには [カメラワーク] を採用しています。
部分 2:視覚的なストーリー(Shot 1-6)
| ショット | 役割 | 描写の要点 |
|---|---|---|
| Shot 1 | 導入とトーン設定 | 環境の出現+自然な光と影+主人公と環境の物理的な関係 |
| Shot 2 | メインストーリーと細部 | 主要な出来事+超現実的な細部+重要な動作の相互作用 |
| Shot 3 | 転換またはジャンプカット | ハードカットまたは物理的なつながり+カメラ位置の変化+不気味な反応 |
| Shot 4-6 | クライマックスと退出 | 視覚的なインパクト+画面端の歪み+物理的な消散または唐突な停止 |
部分 3:環境音
環境音+重要な物理的衝突音+歪んだ機械音/環境音の物理的な反響
部分 4:技術スタイルのベース(必須)
Arri Alexa 撮影、魚眼レンズ(Fisheye 12mm)、画面に明確な樽型歪み。上下に黒帯(2.39:1 Letterbox)、強制的にワイドスクリーン映画の画面比率を適用。ビネット(Heavy Vignette)、画面の四隅を暗くして中央に向かって収束させる。[場面に応じた光と影の描写を記入]、低彩度の寒色系。写真のようなリアリズム。微かなデジタルノイズとVHS風の歪みが画面の端でちらつき、画像は脆く、いつ崩壊してもおかしくないように感じられる。ドリームコア。リミナルスペース。
出力例
これは写実的で不条理な恐怖の夢で、カメラには魚眼広角と手持ち追従を交互に採用しています。Shot 1:魚眼レンズ、リゾート地の広々とした海辺の遊歩道、明るい日差し。遊歩道の片側にある岩場の海岸には、何百頭ものアシカがびっしりと敷き詰められ、湿った皮膚が光を反射しながら、のんびりと折り重なっています。観光客は遊歩道をゆったりと歩き、アシカの群れとの間には低い柵が一本あるだけです。画面は不自然なほど静かです。Shot 2:ハードカット。固定カメラ、超広角。アシカの群れが突然騒ぎ出し、前列のアシカが上半身を起こして口を開き、歯を見せます。次の瞬間、群れ全体が潮のように一斉に柵を越え、何百頭もの滑りやすい体がコンクリートの遊歩道をうごめきながら進んできます。観光客が走り出し、樽型歪みによって逃げる人々の姿が引き伸ばされ、変形します。Shot 3:手持ち追従、激しい揺れ。主人公はざらついたコンクリートの路面を裸足で走り、カメラは足元を低い角度から追います。青いクロッグが人々に踏まれて蹴り飛ばされ、回転しながらアシカに占拠された区域へ落ちていきます。主人公が振り返ると、密集したアシカが遊歩道全体を覆い、湿った皮膚が日差しを受けて脂ぎった光沢を放っています。Shot 4:魚眼レンズ。主人公は裸足で人々の群れを追い、観光地の出口にある鉄門へ向かって押し寄せます。遠く後方では、アシカの群れの黒いシルエットがゆっくりと整然と進み、リゾート地全体を占拠しています。人々に押し込まれた出口の鉄門が、金属が変形する音を立てます。画面の四隅のビネットが強まり、徐々に縮んで完全な黒になります。海辺の風音とアシカの群れの低いうなり声が混ざり合って持続的な轟音となり、何百頭もの滑りやすい体がコンクリートの上を引きずられる摩擦音、人々の乱れた足音と荒い息遣い、鉄門が押し込まれてきしむ金属音が響きます。Arri Alexa 撮影、魚眼レンズ(Fisheye 12mm)、画面に明確な樽型歪み。上下に黒帯(2.39:1 Letterbox)、強制的にワイドスクリーン映画の画面比率を適用。ビネット(Heavy Vignette)、画面の四隅を暗くして中央に向かって収束させる。海辺の強い日差しによる高コントラスト、低彩度の寒色系。写真のようなリアリズム。微かなデジタルノイズとVHS風の歪みが画面の端でちらつき、画像は脆く、いつ崩壊してもおかしくないように感じられる。ドリームコア。リミナルスペース。
三、ログインの説明
Worker の起動時に、即梦プラットフォームのログイン状態が自動的に検出されます。
- 初回利用時/ログイン期限切れ:ブラウザーで即梦のウェブサイトが自動的に開き、QRコードが表示されると同時に、ユーザーに知らせる通知音(長音3回+短音2回)が再生されます。ユーザーがスマートフォンでコードをスキャンしてログインすると、プログラムが自動的に検出して処理を続行します。
- ログイン済み:操作は不要で、そのまま処理を開始します。
- タイムアウト:デフォルトの待機時間は10分です。タイムアウトするとプログラムは終了します。
事前に手動でログインすることもできます:
cd "{W}/dream_to_video" && python main.py login
四、後処理エフェクト(Elliptic Shatter)
Worker は各動画のダウンロード後、楕円形の破砕エッジエフェクトによる後処理を自動的に実行し、最終的に2つのファイルを出力します。
| ファイル | 命名形式 | 説明 |
|---|---|---|
| オリジナル版 | task_XXX_YYYYMMDD_HHMMSS.mp4 | 即梦が生成した元の動画 |
| エフェクト版 | task_XXX_YYYYMMDD_HHMMSS_elliptic-shatter.mp4 | 楕円形の破砕エッジエフェクトを重ねた動画 |
エフェクトの説明:
- 動画中央は鮮明な元の映像を維持します
- 端には割れたガラスのような質感が現れます(破片が散乱し、わずかに回転し、色収差による屈折が生じます)
- 外枠は暗い背景+微かな破片のテクスチャです
- 全体的な効果:黒いテクスチャの枠+楕円形の覗き窓+回転しながら砕ける粒子
エフェクトスクリプトは effects/elliptic_shatter.py にあり、OpenCV + NumPy を使用して処理します。子プロセス内で実行されるため、メインの処理フローを妨げません。
五、重要な注意事項
- Prompt はひと続きのプレーンテキストにしてください。改行、Markdown 形式、段落分けは不可です。文字列として直接
python main.py addに渡してください。 - Worker の起動は1回だけでかまいません。すべてのタスクが完了するまで動作し続けます。複数の素材を連続して add すると、Worker が自動的にキューに追加して処理します。
- 各タスクは2つの動画を
{W}/dream_to_video/output/に出力します:オリジナル版+elliptic-shatter エフェクト版。 - ダウンロードとエフェクト処理の完了後に通知音(短いビープ音3回)が鳴ります。音が聞こえたら動画を受け取れます。
- ユーザーが一度に複数の素材を渡した場合は、それぞれに独立した Prompt を生成して個別に add してください。
- 技術スタイルのベースにある 【光影】 は、具体的な場面に応じて「深夜の人工光源と街灯が混ざり合う冷たい光」「海辺の強い日差しによる高コントラスト」などに置き換えてください。