画像生成
このスキルは、投稿のメッセージを各プラットフォームが必要とする正確なサイズの完成画像ファイルに変換します。シーンの選び方、ヘッドラインの画像内への入れ方、実在人物の顔を本物らしく保つ方法、アスペクト比の制御方法、ファイルのチェック方法、代替テキストの書き方など、制作手法全体を担います。ブランド定数(パレット、フォント、ロゴルール、肖像ルール)については brand/brand-profile.md に、ヘッドラインの文言については writing スキルに、動画編集内で作成されるカバーについては video-editing スキルに、出荷前の独立したチェックについては review-loop スキルに委ねます。
権限順位:brand-profile.md がブランド定数とコンプライアンス文言に関して優先されます。このスキルは手法を所有します。
始める前に
- マーケティングワークスペースを見つけてください(デフォルトは
marketing/)。ない場合は、その旨を1行で伝え、brand-setupスキルを実行することを提案してください。ユーザーが続行したい場合は、パレット(2~3つの16進カラーコード)、ヘッドラインフォント、実在人物が画像に登場するかどうかのみを尋ねてください。 brand/brand-profile.mdから以下を読み込んでください:## Visual identity(パレット、フォント、ロゴ使用法、画像スタイル)、## Likeness(参照画像のパスとルール)、## Platforms(画像の公開先)、## Compliance(画像に表示すべきもの、表示してはならないもの)、## Boundaries、## Tools(利用可能な画像モデル)。- ヘッドラインの文言を確定する前に
brand/voice-learnings.mdを読んでください。ヘッドラインはコピーであり、本人らしく聞こえるべきです。 brand/performance-learnings.mdを読んで、アカウントがどの画像がリーチを獲得するかを学習した内容を確認してください。- 作品のフォルダ
content/<yyyy-mm-dd>-<slug>/内で作業してください。画像はそこにあるimages/サブフォルダに保存します。 - 制作前にフォーマットを把握してください:プレーンな静的画像、カルーセル、ショートフォームカバー、ロングフォームカバー、アニメーション静的画像のいずれかです。誰も選択していない場合は、最もシンプルで適切なものを選び、その理由を1行で説明してください。
標準
- ヘッドラインは画像モデルによってシーン内に焼き付けられ、決してコードで後から上に貼り付けられません。 モデルに、ヘッドラインとサブヘッドを画像の一部として、デザイナーが配置するように照明と配置を施してレンダリングするよう依頼してください。理由:後から PIL や Canva 風のオーバーレイ、HTML でテキストを追加すると、写真とは異なる平面に配置され、安っぽいテンプレートのように見えます。これは人々が AI 画像を拒否する最も一般的な理由です。画像モデルは現在、短い表示テキストを適切に処理できるため、任せてください。
- ヘッドラインが主役です。 大きく、太字で、凝縮された書体、表示高さの約40%、最低でも3分の1、2~3行の短い行、アクセントカラーで1つのパンチワードを配置します。キャプションのように読める場合は不合格です。理由:グリッドやフィードはスマートフォンのサムネイルサイズで評価され、大きなヘッドラインだけがその厳しさに耐えられます。
- すべてのテキストはグリッドセーフゾーン内に収まります。 キャンバスの中心に配置された1:1の正方形で、さらに各辺から7〜8%内側にインセットされ、ヘッドラインの上には余白があり、下部12%には重要なものを配置しません。理由:プロフィールグリッド、リンクプレビュー、フィード内のクロップでは端が切り取られます。フォーマットごとの数値については
references/grid-safe-zone.mdを参照してください。 - すべての画像は、そのメッセージのために作られた、明確で現実的なシーンです。 実際の場所で何かをしている人物、または1つの強力な視覚的メタファーを、自然な色で、ブランドのアクセントを控えめに使用して表現します。同じ背景に同じポートレートで言葉だけ変えたものは決して使用しません。唯一の例外は、意図的にレイアウトを繰り返す週刊シリーズです。
- 実在人物は本物のままです。 実在人物が登場する場合、その顔は参照写真から、実際の年齢と体格で作成します。顔を捏造したり、参照写真自体を投稿したりしないでください。
- 正確なサイズで、検証済み。 すべてのファイルは
references/asset-sizes.mdの正確なピクセルサイズに仕上げられ、その寸法は想定ではなくチェックされます。 - コードで形状を無理やり変えないでください。 生成された画像にパディング、レターボックス、ミラーリング、ストレッチ、合成を施してアスペクト比を強制しないでください。代わりにアスペクトアンカーを使用してください(後述)。理由:パディングされた画像には未完成に見えるデッドスペースがあり、一目でわかります。
- 画像ごとに1行の代替テキスト。 シーンと焼き付けられたヘッドラインのプレーンな説明。ハッシュタグ、リンク、販売促進の文言は含めません。
方法
1. 画像を決める(画像ごとに新しく)
- 投稿の単一のコアメッセージを一文で示します。
- 感情を決めます:安心感、賢さ、落ち着き、面白さ、喜び、または穏やかな警告。デフォルトは温かみ。悲観的にはしません。
- それを伝える1つのビジュアルアイデアを考えます:実際の瞬間を捉えた人物(賑やかな通りで電話中、キッチンテーブルでコーヒー、荷解き中)、または読みやすいメタファー(店先の安全ネット、1つのリンクが切れたチェーン、1つの日付が丸で囲まれたカレンダー)。
- ヘッドライン(2~5語が理想的、最大3行の短い行)と、任意の1行サブヘッドを書きます。それが何であるかを明確に示す平易で文字通りの行で始め、より巧妙なフックをラベル付きの代替案として提供します。理由:平易なヘッドラインは明確さと検索において勝ることが多く、選択肢があれば人々はそれを選びます。
- 最初からヘッドライン用の空きゾーンを計画します。通常は、グリッドセーフな正方形内の空、壁、または影の暗い領域です。
2. ヘッドラインを含むシーンを生成する
シーン、照明、フレーミング、テキストを一緒に説明する1つのプロンプトを書きます。ヘッドラインを正確に引用符で囲んで綴り、どの単語がアクセントカラーかを指定し、予約ゾーンに「巨大で、太字で、凝縮された、ポスターサイズの」書体を要求し、サブヘッドは折り返さない程度に短く保ちます。最下部はクリアなままにします。
文字化け防止策(画像モデルは予測可能な方法で失敗するため):
- 折り返すサブヘッドは、折り返し箇所で単語が重複することがよくあります(「最初最初」)。1行に抑えてください。
- 小さな固定テキスト(名前、ハンドル、Webアドレス)はしばしばスペルミスされます。ブランドが小さなネームタグを使用する場合、その要素は後でスタンプします(
scripts/cover_from_frame.py --wordmarkで方法が示されています)。モデルに依頼しないでください。 - 長いヘッドラインは縮小されて文字化けします。単語数を減らし、大きくします。
プロンプト構造、アスペクト比のテクニック、Gemini の実例については references/prompting-and-aspect.md を開いてください。簡潔版:ツールがアスペクト比設定を公開している場合はそれを使用し、正方形しか返さない場合はターゲット比の空白キャンバスに編集します(scripts/aspect_scaffold.py)。決して正方形の参照画像を一緒に渡さないでください。
3. 肖像ロック(実在人物が登場する画像)
セッションで最初の顔中心の画像を生成する前に references/likeness-lock.md を読んでください。簡潔に:
brand/reference-images/の参照写真から構築します。人物を言葉で説明するのではなく、清潔で正面を向いたヘッドショットをシーンに編集し、2~3枚のタイトな顔クロップ(背景がにじむ全身自撮りは避ける)をアイデンティティ参照として提供します。横向きのスマホ写真は事前に回転させてください。- 結果を提供されたカラーの写真と項目ごとにチェックします(髪の色、髪型、顔の毛、顔の形と体格、眼鏡、年齢)。別の AI 画像と照らして類似性を判断しないでください。
- 約3~4回の正直な再生成を見積もってください。それでも似ていない場合は、顔のないシーン(メタファーとヘッドライン)として作品を作り直します。それもうまくいかない場合は、保留してその旨を伝えてください。間違った顔は、画像がないことよりも悪いです。
- 参照写真を直接画像に投稿したり、クロップして使用したりしないでください。それらはアイデンティティ参照としてのみ使用します。
4. 撮影動画用の実際のフレームからのカバー
人物がトーキングヘッド動画を撮影した場合、カバーは生成された肖像ではなく、その映像の実際のフレームから構築されます。顔は本物であり、カバーは動画と一致します。これは、写真にデザインされたヘッドラインオーバーレイが正しい選択となる唯一の場所です。なぜなら、それはサムネイルデザイナーが行うのとまったく同じように、実際の写真にタイトルを付けているからです。
- 候補フレームを取得します(
ffmpeg -ss <t>)。または、スクリプトに時間範囲内で最もシャープな顔フレームを見つけさせ、アイコンタクトがあり、温かい表情(言葉の途中ではない)、シャープなフォーカス、焼き込まれた字幕がないものを選びます。 scripts/cover_from_frame.pyを実行します(--helpを参照)。サイズに合わせてカバークロップし、ソフトスクリムを追加し、グリッドセーフな正方形内にアクセントワードとアンダーラインを付けたヒーローヘッドラインを自動フィットさせ、オプションのサブヘッドリボンとオプションのネームタグを追加し、すべてのテキストボックスがセーフゾーン内にあることをチェックします。- 動画の形状に合わせます。9:16 のショート動画には 9:16 1080x1920 のカバーを、テキストは中央の正方形に配置します。16:9 のロングフォーム動画には 1280x720 のカバーを使用します。
video-editingスキルで編集が行われている場合、そのスキル独自のカバーステップが編集内でこれを処理します。
5. アニメーション静的画像(「オーバーレイ禁止」の唯一の例外)
アニメーション静的画像は、4~6秒のループMP4で、静止スロットを埋め、ほとんどのフィードで動画として扱われます。テキストは動くために別のレイヤーである必要があるため、ここでのみ、デザインされたキネティックタイポグラフィが生成されたシーンの上に配置されます。ただし、同じ基準が適用されます:実際のシーン、ヒーローヘッドライン、ブランドカラー、グリッドセーフな配置、そしてフレーム0ですでに完全なヘッドラインが表示されていること。なぜなら、グリッドは動画を最初のフレームからポスター表示するからです。使用するタイミング、scripts/animate_render.js の設定、オーディオベッドの権利ルール、レビューポイントについては references/animated-statics.md を開いてください。
6. 画像モデルがない場合:HTML ルート
画像モデルが接続されていない場合、または作品が純粋なタイプのレイアウト(逐語引用カード、統計カード、テキストスライドのカルーセル、プロフィールバナー)である場合は、HTML と CSS でデザインし、Playwright でレンダリングします。重要なルール:ビューポートは真の出力サイズにすること、CSS スケール変換は使用しないこと、スクリーンショットの前にフォントを読み込むこと、PNG の寸法を後でチェックすること。references/html-fallback.md を開き、scripts/render_html.js を使用します。引用カードは、証言を一字一句再現する必要がある場合にも適切なルートです。生成されたテキストは逸脱する可能性があるためです。
7. 仕上げ、ファイル保存、説明
- 各出力先の正確なサイズに仕上げます(
references/asset-sizes.md)。4:5 のマスターは通常、Instagram、Facebook、LinkedIn、Threads に対応します。1:1 は、すべてのテキストが中央の正方形内にある場合にのみ中央クロップで作成します。それ以外の場合は、別の正方形を生成します。 python3 scripts/check_image.py <file> --expect WxH --gridを実行して寸法を確認し、グリッドプレビューシート(中央の正方形と3:4クロップをサムネイルサイズで、セーフボックスを描画したもの)を作成します。content/<yyyy-mm-dd>-<slug>/images/に、内容がわかる名前で保存します(例:<slug>-feed-4x5.png、<slug>-cover-9x16.png)。- 画像ごとに1行の代替テキストを作品の
PACKAGE.mdに書き込みます。例:「小麦粉のついたエプロンを着た女性が、パン屋のドアの看板をOPENに裏返している。ヘッドラインは'学校に行く前に開店'が上部に表示されている。」 カルーセルの各スライドには個別の行を設けます。動画カバーには代替テキストは不要です。 - 最終プロンプト(および再生成のメモ)を作品フォルダに保存します。これにより、将来の再生成がうまくいったものから開始できます。
出荷前のチェック(レビューループ)
すべての生成とすべての再生成は新しい画像であるため、ファイルとして保存されたファイルに対して、開いて目視で、プロンプトから判断することなく完全なチェックを実行します。
- ヘッドライン、サブヘッド、スタンプされたタグのすべての単語のスペルが正しいこと。重複した単語がないこと。
- ヘッドラインが優先されること:支配的であり、最初に読まれ、プロフィールグリッドのサムネイルサイズで判読可能であること。
- グリッドセーフであること:すべてのテキストが余白を含む中央の正方形内にあること。端に触れているものがないこと。下部の帯に何もないこと。動画の場合は、最初のフレームで判断すること。
- 肖像(顔中心の作品):提供されたカラーの写真との照合基準。不明な場合は不合格とする。
- 形状:実際の寸法がターゲットと一致していること。パディングやストレッチがないこと。
- ブランド:プロファイルからのパレットとフォント、アクセントは控えめに使用、自然な色。
- 差別化:アカウントの最近のいくつかの画像のほぼコピーではないこと。
- 真実性とコンプライアンス:画像内の数値や主張は出典に遡れること。
## Complianceからの必要なラベルが存在すること。## Boundariesの内容が表示されていないこと。
不合格の場合は、原因を修正して再生成し、新しいファイルを同じ方法で判断します。その後、セットを review-loop スキルに渡して独立したチェックを受けさせます。クリーンな作品が作成できない場合は、プロンプトを保持し、何が失敗したかを伝えて保留します。代わりの顔やテキストを貼り付けたフォールバックを決して出荷しないでください。
適応
- カメラに実在人物が映らない? 肖像ロックをスキップし、シーンとメタファーに重点を置きます。残りの標準は変わりません。
- プロダクトビジネス? 製品を「顔」として扱います。実際の製品写真を参照として使用し、モデルがその形状、ラベル、色を正直に保つようにします。
- 異なる画像モデル? 方法は変わりません。
references/prompting-and-aspect.mdの仕組み(アスペクト比の設定方法、参照画像が受け入れられるかどうか)のみが変わります。 - シリーズ形式(週刊まとめ、今週のヒントなど):シリーズ用に1つの構成レイアウトを固定し、他のすべての要素をシリーズ間で変更します。
- 規制産業:
## Complianceで、画像に表示しなければならないもの、決して表示してはならないもの(数値、保証、証言)を確認します。疑わしい場合は、クレームを画像から除外し、免責事項が記載されるキャプションに残します。 - あなた自身の教訓: ユーザーが画像を拒否または交換した場合、その内容と理由を
brand/performance-learnings.md(ビジュアルの教訓)またはbrand/voice-learnings.md(ヘッドラインの文言)に記録し、次回の画像がより近いものから開始できるようにします。
このスキルのファイル
| ファイル | 開くタイミング |
|---|---|
references/asset-sizes.md | ファイルを仕上げるとき。プラットフォームの現在のサイズを確認するとき。 |
references/grid-safe-zone.md | 任意のフォーマットにテキストを配置するとき。 |
references/prompting-and-aspect.md | プロンプトを書くとき、アスペクト比と格闘するとき、Gemini を使用するとき。 |
references/likeness-lock.md | 実在人物が登場する画像を扱うとき。 |
references/animated-statics.md | 静止スロット用のループMP4を作成するとき。 |
references/html-fallback.md | 画像モデルがない場合、または純粋なタイプレイアウトの場合。 |
scripts/aspect_scaffold.py | 編集ベースのツール用にターゲット比の空白キャンバスを作成するとき。 |
scripts/cover_from_frame.py | 実際の動画フレームからカバーを構築するとき。 |
scripts/animate_render.js | アニメーション静的画像をレンダリングするとき。 |
scripts/render_html.js | HTML フォールバックをレンダリングするとき。 |
scripts/check_image.py | 出力画像の寸法とグリッドセーフゾーンをチェックするとき。 |