ray-cover について
ray-coverは、完成した原稿からプラットフォーム別のカバー画像を作るスキルです。コピーとスタイルの選定、画像プロンプトの作成、生成物の確認を進め、代替案や確認事項とともに納品します。
主な機能
- 01カバー制作前に完成原稿を読む
- 02階層的なカバーコピーと代替案の作成
- 03スタイル選定とプラットフォーム別プロンプト作成
- 04OpenAI Images APIまたはCodex CLIで画像生成
- 05文字・色・可読性・セーフエリアの確認
- 06部分編集とバージョン保存
活用シーン
- 01完成した記事のプラットフォーム別カバー制作
- 02指定の手順による縦型・横型動画カバーの作成
- 03既存の構図を保ったカバーの修正
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ imraywang/ rayskills --skill ray-coverインストール後、Claude Code で/ray-coverを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/punk/LICENSENOTICE.mdassets/punk/punk-cover/PUNK-COVER.mdassets/punk/punk-cover/references/cover-prompt-blueprint.mdstyle-catalog.mdassets/punk/styles/anthropic-research-style/META.mdSTYLE.mdassets/punk/styles/avant-retro-architecture-poster/META.mdSTYLE.mdassets/punk/styles/black-midcentury-modernist-cover/META.mdSTYLE.mdassets/punk/styles/black-red-silhouette/META.mdSTYLE.mdassets/punk/styles/black-white-etching-editorial-cover/META.mdSTYLE.mdassets/punk/styles/black-white-gray-avant-geometry/META.mdSTYLE.mdassets/punk/styles/black-white-minimal-concept/META.mdSTYLE.mdassets/punk/styles/block-world/META.mdSTYLE.mdassets/punk/styles/brand-collaboration-connection/META.mdSTYLE.mdassets/punk/styles/brick-world/META.mdSTYLE.mdassets/punk/styles/business-magazine-front-page/META.mdSTYLE.mdassets/punk/styles/color-neo-constructivist-megastructure-poster/META.mdSTYLE.md詳細
Ray Cover
完成した原稿の内容を、フィード上で一目で見分けられる1枚のカバーにまとめます。Claude が内容を読み、カバーの文案を書き、スタイルを選び、各プラットフォーム用の完全なプロンプトを作成し、仕上がりを確認します。生成にはデフォルトで OpenAI Images API(gpt-image-2.5-sunburst、約 40 秒、1枚 $0.07)を使用します。キーがない場合、または --backend codex を指定した場合は、Codex CLI から Image 2 を呼び出します。画像と中国語テキストは画像生成モデルで一度に生成し、文字なしの背景画像を作ってから文字を載せることはしません。
スタイルライブラリは Adrian Punk の Punk Skill MIT 版(assets/punk/)に基づいています。出典とライセンスの適用範囲については assets/punk/NOTICE.md を参照してください。以降の新版は有料の商用ライセンスのため、取り込みません。
$SK はこの skill のディレクトリを指します。
動画カバー(抖音、视频号、小红书の縦型カバー、および YouTube、视频号/抖音の横型動画用 16:9 カバー)は、実写写真+大見出しという別の方式を使用します。video-cover.md を参照してください。デフォルトは 3:4(xhs)のみで、デフォルトのスタイルは小Lin風Aです。9:16 は Ray から明確な指定があった場合のみ作成します。各比率のセーフエリアは同じファイルを参照してください。
以下の手順 5~7 の生成、確認、納品はそのまま適用します。次の手順は video-cover.md のルールに置き換えます。
- 手順 2 の文案は video-cover.md の「文案」に置き換えます。小Lin風A は大きなキーワード+中国語1行+小さな英語1行です。それ以外のスタイルは、デフォルトでメインタイトル2行のみです。手順 3~4 のスタイル選択とプロンプト作成も video-cover.md のルールに置き換えます。1行だけ修正する場合は
scripts/erase_text.pyを使い、再生成しません。
1. 内容を読む
本文全体を読みます。完成原稿一式がある場合は、一文での判断、中心的な対立、拡散用のフレーズも読みます。動画カバーの場合は、該当回の口播用マスター原稿(vault の 40-发布/50-口播视频/)または ray-explainer プロジェクトの script.json(title、central_judgment、publish)を読みます。どちらか一方で構いません。判断がまだ固まっていない内容は、まず ray-writer に差し戻します。カバー制作で記事の方向性を決めることはしません。
2. カバー文案を書く
cover-copy.md に従って、3層の文案を作ります。メインタイトル(2~8字)、サブタイトル(メインタイトルで伝えていない内容を補足)、小さな文字(確かな事実または肩書きラベル)です。内容の種類に応じて書き方を変え、3層の内容が重複しないようにします。記事タイトルを分割するだけで済ませてはいけません。
デフォルトでは最適な一案を使って画像を生成し、予備の文案を1~2案用意して、納品時に Ray に渡します。Ray が「まず文案を見せて」と明確に依頼した場合のみ、確認を待ちます。
3. スタイルを選ぶ
styles.md に従ってスタイルを1つ選びます。デフォルトでは Anthropic Research、黒白灰の前衛幾何学、紙面のエンボス/デボス加工の3つから内容に応じて選びます。Ray がスタイルを指定した場合はその指定に従います。Ray が「いくつかスタイルを出して見せて」と言った場合は、スタイルごとに公式アカウント向けサイズを1案ずつ作成します。
4. プロンプトを作成する
各プラットフォームにつき1つ作成し、<封面目录>/prompts/<platform>.md に保存します(記事:wechat、x、x-article。動画:vertical、xhs、landscape)。
- 選んだスタイルの
assets/punk/styles/<style-id>/META.mdとSTYLE.md、およびassets/punk/punk-cover/references/cover-prompt-blueprint.mdを読みます。 - ブループリントに従って、完全なカバープロンプトを作成します。スタイルの素材、空間、タイトルの扱い、色、禁止事項を各カバーの判断に反映し、STYLE.md の原文を後ろに貼り付けないでください。
- ip.md の色と禁止事項を「Color, Material, and Texture」「Negative Constraints」の2つの節に記載します。
- 対象の比率とピクセル数、セーフエリア、文字列を一字一句そのまま記載します(platform-output.md を参照)。
- プロンプトに作者名や「xx style」と書かず、視覚的な仕組みのみを説明します。記事本文を貼り付けてはいけません。
5. 生成する
カバーの保存先はデフォルトで <vault>/60-素材/10-图片/10-封面/<YYYY-MM-DD-主题>/ です(<vault> はユーザーが指定したパスまたは .ray-obsidian.json から取得します。ナレッジベースがない場合は、ユーザーが指定した作業ディレクトリに保存します)。
python3 $SK/scripts/gen_cover.py <封面目录> --platforms wechat,x,x-article
スクリプトは各プラットフォーム用の画像を1枚ずつ並行して生成し、raw-<platform>.png を作成します。比率が正しければ、等比で拡大縮小して <platform>-cover.png と幅 420px のサムネイルを作成し、manifest.json を書き込みます。比率が正しくない場合はエラーを報告し、トリミングも引き伸ばしもしません。
- デフォルトは
--backend api(OPENAI_API_KEYが環境変数または~/.zshenvに設定されていれば自動的に使用):OpenAI Images API を使用します。モデルはgpt-image-2.5-sunburstです。--refがある場合は/v1/images/edits、ない場合は/v1/images/generationsを使います。1枚あたり約 30~50 秒、約 $0.07 です。ネイティブサイズが実測済みなのは xhs の 1200×1600 です。ほかの比率を API が受け付けない場合はエラーになるため、そのプラットフォームには--backend codexを使用してください。 --backend codex:Codex CLI から Image 2 を呼び出します。1枚あたり約 1~5 分かかります。codexにログイン済みで、image_generationが有効になっている必要があります(codex features list)。
プラットフォームを1つだけ作成する場合や、別のスタイルを試す場合は、--platforms wechat を指定します。
6. 仕上がりを確認する
Read を使って、各完成画像とサムネイルを確認します。
- 文案が一字一句合っているか:文字抜け、誤字、余分な文字(モデルが独自に加えた標語や英語)がないか確認します。誤字や余分な文字があれば、プロンプトを修正してそのプラットフォームだけ再実行します。モデルが独自に加えた短いラベルは、Ray に判断を仰ぎます。
- 色:黒、白、灰色に墨緑を1か所加えた色だけで、青紫、ネオン、その他の色相がないこと。
- 420px のサムネイルでメインタイトルをはっきり読めること。重要な文字が端に寄りすぎておらず、切れていないこと。
- スタイルが画像にしっかり反映されていること。普通のカバーに質感を少し加えただけになっていないこと。
7. 納品する
SendUserFile で完成画像を送ります。返信には、使用したスタイルと一文での視覚的なメタファー、この文案、予備の文案1~2案、確認時に見つかった問題(モデルが独自に追加した文字、色のずれ)を記載します。Ray が調整を希望する場合は、次の2種類に分けて対応します。
- 一部だけ変更する(小さな物を1つ取り除く、背景を変える、色を1か所変更する):再生成はしません。
prompts/<p>-edit.mdに「変更は1か所だけ:……。それ以外はすべて完全に変更しない」と記載して、gen_cover.py <封面目录> --platforms <p> --editを実行します。スクリプトは古い raw/cover/thumb を-v1、-v2として自動的に保存します。既存のraw-<p>.pngを編集に使うため、構図と顔は変わりません(2026-10-16、ポケモンカバーからピンマイクを取り除き、一度で成功)。 - 人物だけを変更する(本人確認用の写真を差し替え、構図、文字、道具は変更しない):
gen_cover.py <封面目录> --platforms <p> --edit --ref <新照片>を実行します。完成版カバーと新しい写真を一緒に編集 API に送ります。記述方法は video-cover.md の「人物を差し替えて構図を維持」を参照してください。 - 構図を作り直す:まず該当プラットフォームの古いファイル(
raw-<p>.png、<p>-cover.png、<p>-thumb.jpg、api-<p>.log/codex-<p>.log、manifest.json)の名前に-v1、-v2を付けて保存し、プロンプトもprompts/<p>-v1.mdに別途保存します。その後、該当プラットフォームのプロンプトだけを修正して再実行します。スクリプトは同名のファイルを上書きします。
境界
- 公開やプラットフォームへのアップロードは行いません。公式アカウントの下書きに入れる場合は
ray-wechatに、X Articles の管理画面に入れる場合はray-x-articleに渡します(5:2 の完成画像を使用)。 - 記事カバーにはデフォルトで人物を描きません。Ray が希望した場合は ip.md の方法に従って追加します。動画カバーには Ray の実写写真を使います(本人の同意済み)。ほかの人の写真を使う場合は、事前に確認してください。
- 本文中の挿絵や動画の映像は、この skill の対象外です。