トラックのカバーアート(ジャケット画像)を生成する。歌詞とキャラクター設定を読み込み、対話的にシーンを決めて、Gemini 3.1 Flash Image Previewで画像を生成する。カバーアート、ジャケット、アートワーク、サムネイル画像の生成に使う。
トラック $ARGUMENTS のカバーアートを生成する。
<トラック>/source/lyrics.txt — 歌詞
<トラック>/artwork/ — 生成した画像を保存
content/artists/<キャラ>/images/reference.jpg — キャラクター参照画像
content/artists/<キャラ>/images/base-prompt.md — キャラクターのベースプロンプト
content/artists/<キャラ>/images/graffiti_symbol.jpg — グラフィティシンボル
claude-code/ 配下のトラック → content/artists/claude-code/codex/ 配下のトラック → content/artists/codex/source/lyrics.txt を読むcontent/artists/<キャラ>/images/base-prompt.md を読むcontent/artists/<キャラ>/profile.md(設定シート)を読むまず composition-reference.md を読み、構図テクニックとアンチパターンを把握すること。
歌詞のテーマ、ムード、キーフレーズを分析し、カバーアートのシーン案を3つ提案する。
各案には以下を含める:
既存のカバーアートとの差別化を必ず確認する。 他トラックのカバーアートを読み込み、構図・色味・ロケーションが被らないようにする。
ユーザーが案を選ぶか、方向性をフィードバックしたら、それに基づいてプロンプトを作成する。
A photorealistic [ショットタイプ] of this person, [アクション/表情],
set in [環境の視覚的描写]. Illuminated by [ライティング],
creating [ムード] atmosphere. [カメラ/レンズの指定].
No text, no watermarks.
写真用語を使うと精密にコントロールできる:
テック要素(ターミナル、コード、モニター)を直接見せない。ラッパーの世界観に翻訳する:
以下はシリーズの基本トーンだが、曲の方向性に合わせて大胆に変えてよい。ユーザーに確認して決める。
歌詞に出てくる場所やオブジェクトをさりげなく配置する。直接的でなく、わかる人にはわかるレベルで。
SpotifyやXでは小さく表示される。シンプルな構図、コントラストの強い配色を意識する。
中間ファイルはすべて artwork/drafts/ に保存する。 最終ディレクトリを散らかさないため。
mkdir -p <トラック>/artwork/drafts
scripts/generate-cover.ts を使う。マルチターン会話、thought_signature、グラウンディングを自動処理する。
bun scripts/generate-cover.ts <character> "<シーンプロンプト>" <出力パス>
例:
bun scripts/generate-cover.ts claude-code \
"This person standing in a dark narrow alley at night, body facing forward. Hard split lighting, half face lit, half in shadow. Monochrome. Graffiti on wall." \
claude_code/02_ターミナルの誇り/artwork/drafts/01.jpg
generate-image.ts で直接生成する場合(キャラなし等)bun scripts/generate-image.ts "<プロンプト>" <トラック>/artwork/drafts/01.jpg --aspect-ratio 1:1
bun scripts/generate-cover.ts <character> --edit "<編集指示>" <画像パス>
例:
bun scripts/generate-cover.ts claude-code \
--edit "Apply extreme split lighting. Only left half of face lit." \
claude_code/02_ターミナルの誇り/artwork/drafts/01.jpg
01.jpg, 02.jpg, ... と名前をつける01_wide.jpg, 02_wide.jpg, ...content/artists/<キャラ>/images/drafts/ を使うまず outpaint を試し、顔が歪んだらマルチターンで再生成する。
generate-image.ts --input でスクエア版を入力し、左右を拡張する。同じ画像をベースにするため構図の一貫性が高い。
bun scripts/generate-image.ts \
"Outpaint this image to 16:9 widescreen by adding more environment on the left and right sides only. Do not stretch, resize, or modify the original image content in any way. The person's face and body proportions must remain exactly as they are. [環境の描写]. Match the existing lighting and atmosphere." \
<トラック>/artwork/drafts/01_wide.jpg \
--aspect-ratio 16:9 \
--input <トラック>/artwork/cover.jpg
スクエア版と同じプロンプトをベースに、最初から16:9で生成する。顔の一貫性は高いが、構図が変わる。
bun scripts/generate-cover.ts <character> "<シーンプロンプト>" <出力パス> --aspect-ratio 16:9
generate-cover.ts --edit でのアスペクト比変更 — editモードはアスペクト比がハードコードされており変更できない--aspect-ratio 16:9 でワイド指定可能画像を生成したら、ユーザーに見せる前に自分で客観的に評価する。 以下のチェックリストを使い、問題点を正直に伝えること。良い点だけ挙げて問題を隠さない。
画像を Read ツールで表示し、以下を確認してからユーザーに所見を伝える:
評価テンプレート:
[良い点] ○○が効いている
[問題点] ○○が意図と違う / ○○が物理的におかしい / ○○に見えない
[判定] このまま進める / 修正が必要 / 作り直し
問題があるなら「いい感じ」とは言わない。問題を先に伝えてからユーザーに判断を仰ぐ。
open コマンドで画像を自動的に開くartwork/drafts/ から artwork/cover.jpg にコピーartwork/cover_wide.jpg にコピーartwork/prompt.txt に保存artwork/drafts/ ディレクトリを削除してクリーンアップする既存の artwork/cover.* がある場合、ユーザーにバックアップが必要か確認する。必要なら artwork/cover_backup.* として保存してから差し替える。