travel-photo-abstraction について
ユーザー提供の旅行写真を、上段の未加工写真と下段の新しい抽象パネルから成る作品に仕上げるスキルです。写真由来の構成、均一な背景、微細文字、検証手順を定めています。
主な機能
- 01写真の関係性に基づく抽象構成
- 02元写真のピクセルを保持
- 03参照画像に基づく下段のマーク
- 04均一なアイボリー背景の指定
- 05微細文字の追加と最終検証
活用シーン
- 01旅行写真に抽象パネルを添える作品制作
- 02写真と抽象画を組み合わせた編集的な構成
- 03元画像を保持した作品の修正
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ evianis/ travel-photo-abstraction --skill travel-photo-abstractionインストール後、Claude Code で/travel-photo-abstractionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/analysis-method.mdrun-log-template.mdstructural-reference-index.mdstyle-guide.mdscripts/check_installation.pycompose_artwork.pyfinalize_artwork.pyvalidate_output.py詳細
旅行写真の抽象化
このタスクは、分解、抽象化/抽出、再構成という3つの意図的な操作として扱います。下部のパネルは、上部の写真から抽出した関係性をもとに作る、新しい視覚的構成です。写真を縮小して描き直したものでも、スタイルを変換したコピーでもありません。下部パネルの根拠となる要素はすべて元の写真から導き、バンドルされた参考画像からは描画表現だけを取り入れてください。元の写真に参考画像のスタイルを適用してはいけません。
入力の役割を固定する
USER_PHOTOは、現在のリクエストでユーザーが添付またはアップロードした写真と定義します。分析の前に、正確なローカルパスを記録してください。STYLE_REFSは、assets/style-references/から選んだファイルと定義します。これらは生成する下部パネルだけをガイドします。GENERATED_PANELは、下半分に配置するために生成した新しい抽象画像と定義します。- 最終合成画像には、上部に
USER_PHOTO、下部にGENERATED_PANELを、それぞれ過不足なく配置してください。写真の位置に、スタイル参考画像、以前の出力、スクリーンショット、生成した派生画像を置いてはいけません。 - 視覚分析、メタデータ/日付の確認、配色の根拠、
finalize_artwork.py、検証には、同じ固定済みのUSER_PHOTOパスを使用してください。パスが利用できなくなった場合は、別の画像で代用せずに停止してください。
必ず守る納品条件
- 画像生成の結果は、一時的な抽象パネルの素材として扱ってください。ユーザーに表示または返却してはいけません。
- 未加工の元画像と生成した抽象パネルについて、実際に存在するローカルファイルシステムのパスを取得してください。どちらかのパスが利用できない場合は、停止し、作品を返却しないでください。
- 納品物の作成には
scripts/finalize_artwork.pyだけを使用してください。最終納品のために、コンポジターとバリデーターを別々に実行してはいけません。 - ファイナライザーが
DELIVERY PASSを出力した後に限り、画像を返却してください。返すのは出力パスだけとし、生成したパネルのパスは返さないでください。 - 生成、ローカルへの保存、合成、検証のいずれかに失敗した場合、画像は返さず、失敗した段階を明記してください。元画像のない抽象パネルは、常に中間段階での失敗です。
USER_PHOTOは、抽象化の上部に、元の幅、高さ、向き、RGB ピクセル値を一切変えずに配置してください。縦横比を保つ場合も含め、サイズを変更してはいけません。
分解・抽出・再構成の条件
- 分解: 元画像を、支配的なかたまり、軸、境界、数、間隔、方向、重なり、奥行きの順序、色の役割、非対称性、意味のある余白といった、情報量の高い根拠に分けます。
- 抽象化と抽出: 写真的な表面、具体的な物体の輪郭、質感、遠近法の細部、重要度の低い物体、重複する根拠を取り除きます。残す事実はそれぞれ、適切な最小限の描画要素または面に置き換えます。
- 再構成: 抽出した描画要素を、新たな非具象的な配置にまとめます。場面の配置をそのまま再現せずに、元画像の関係性を示す個性と空間のリズムを保ちます。
- 相対的な優位性、左右または上下の順序、方向の流れ、数のまとまり、すき間、集まり方、重なり、奥行きの階層といった関係性の不変要素を保ちます。正確な座標や元画像の縦横比は、根拠であってトレース用のテンプレートではありません。
- 抽出した関係性が明確になる場合に限り、位置の移動、圧縮、分離、重なり、拡大縮小を許可します。根拠なしに配置を変えたり、装飾を加えたりしてはいけません。
- 結果は、一般的な主題アイコン、ミニチュアのイラスト、ベクター化した場面、フィルター加工した写真、スタイル変換ではなく、この特定の写真を抽象的に想起させるものにしてください。
- 再構成したモチーフは、周囲にすっきりと詩的な余白がある、画面サイズに応じて調整可能な領域内に収めます。周囲に枠を描いてはいけません。
下部パネルのテキスト仕様
- 完成した下部パネルには、次の周辺部の極小文字要素を厳密に3つ含めます。連番形式の
NO. 00X、事実に基づくDD MON YYYY、画像から着想を得た1~4語の英語大文字フレーズです。 - 番号は下部領域の右上に配置します。日付とフレーズは、別の空いている隅にそれぞれ独立した行として配置します。
- 抽象アートワークはテキストなしで生成し、その後
finalize_artwork.pyを使って3つの要素をすべて決定論的に追加します。テキストなしで生成するルールは、一時的に生成するアートワークのみに適用され、完成した下部パネルには適用されません。 - テキストの欠落、重複、誤記、形式不備、追加を却下の対象とします。
- 再構成時は、正確な座標ではなく関係性の不変条件を保ちます。根拠に基づく位置ずれ、圧縮、分離、重なり、拡大縮小を許容し、元画像の構図をトレース用テンプレートとして使用しないでください。
再構成モチーフのスケール仕様
- 既存の視覚、分析、テキスト、ソースの完全性、構図に関するすべてのルールを変更せず、再構成モチーフ全体のスケールのみを調整します。
- 再構成したモチーフ全体が下部パネルの幅の約30~42%を占め、高さは28%以下になるようにします。
- 下部パネルの約75~88%を視覚的に空けておきます。広く確保した余白は、意図的な詩的空間として扱います。
- モチーフはひとまとまりのグループとして拡大縮小します。縮小しても、内部のサイズ比、間隔、方向、重なり、階層、非対称性をすべて保ちます。
- モチーフは下部中央付近、または参照画像に根拠のある非対称な位置に保ちます。補うために個々の要素を拡大したり、パネル全体に散らしたり、モチーフを小さな汎用アイコンにしたりしないでください。
背景全体を均一にする仕様
- 生成する下部パネル全体で、目標色を
#F3F0E8とする、完全に均一な中間的アイボリーの背景を途切れなく使用します。 - 背景は雰囲気を表現するものではなく、単一の平坦な色面として扱います。色の変化は、ソースに基づいて再構成したマークの内部のみ許可します。
- グラデーション、照明の減衰、グロー、影、ビネット、縁の暗色化、横帯または縦帯、斑点、継ぎ目、紙の色調、キャンバスのテクスチャ、ノイズ、粒状感、まだら、かすみ、ブルーム、染み、圧縮による色むらに似たものを追加しないでください。
- 番号の背後に明るい帯を置いたり、日付とフレーズの背後に異なる色面を置いたりしないでください。モチーフと3つの極小文字要素はすべて、同じ途切れのない背景色の上に配置します。
- 中央、四辺、四隅の空白部分を通常の表示サイズで確認し、RGB値もサンプリングします。空白部分の色がパネル全体で目視または測定によって変化している場合は、パネルを却下して再生成します。
必須ワークフロー
scripts/check_installation.pyを実行します。失敗した場合は作業を中止し、インストールが完了していないことを報告します。- 組み込みの画像生成ツールを呼び出せることを確認します。ツールが存在しない、利用できない、拒否される、または失敗する場合は、作業を中止してユーザーに伝えます。プログラムによるツールは、決定論的な合成、精密なマイクロタイポグラフィ、検証にのみ使用します。抽象的なモチーフの描画には決して使用しません。
- このリクエストでユーザーがアップロードした写真の正確なパスを
USER_PHOTOとして固定し、それだけをコンテンツソースとして確認します。references/analysis-method.md、references/style-guide.md、references/structural-reference-index.md、references/run-log-template.md を読みます。バンドルされた参考画像、以前のアップロード、過去の成果物、スクリーンショット、再圧縮された書き出し画像で、黙って置き換えることは決してしません。 structural-reference-index.mdを使って、バンドルされた19枚の画像から3~4枚を選び、確認します。下部パネルに、関連性のある抽象化の文法、空間の密度、マークの表現、抑制された配色、余白の詩的な使い方がある参考画像を選びます。スタイルライブラリの候補として19枚すべてを使用します。- 主役となる要素の識別情報、形状、数、正規化した位置、相対的な大きさ、色、方向、奥行きを記録します。意味のある間隔、隙間、重なり、まとまり、反復を含む構造軸を1つ特定します。抑制した強調に使える、ソースに由来する明確な色の役割を特定します。
analysis-method.mdの抽象化プラン用ワークシートを完成させます。提案するすべてのマークを、名前を付けたソースの事実に対応付け、装飾的なマークは削除します。- 主となるモチーフのファミリーは1つ、補助的なファミリーは最大2つにします。見た目ではなく関係性を表現します。写真の細部は捨てながら、数、座標、サイズ比、方向、間隔、非対称性、遮蔽、ネガティブスペースの分布を保ちます。選んだ参考画像の下部パネルの表現語彙――フラットまたは柔らかく有機的なマス、極細線、点、バー、単独のシルエット、抑制した色面、計測された非対称性――を通じて、これらの事実を表現します。ただし、特定の参考画像の構図を模倣してはいけません。
- 必ず上下の構成にします。
USER_PHOTOを、ネイティブのピクセル幅と高さのまま、リサイズ、クロップ、再サンプリング、レタッチ、生成編集を加えずに上部へ配置します。下部パネルは縦横比を合わせて生成し、写真の幅に合わせて縦横比を維持したまま拡大縮小し、全体をクロップせずに保持します。選んだ参考画像のモチーフのスケールと、詩的なネガティブスペースに従います。 - 生成前にアーカイブ番号を決定します。最初に完成する作品には
NO. 001を使用し、それ以降は完成済みの最も大きな番号の次を使用します。番号は選定した最終作品のみに割り当てます。 - アーカイブ用の行をちょうど2行用意します。1行目は
DD MON YYYYとし、確認済みの撮影日を使用します。確認できない場合は作品の作成日を使用します。2行目は、画像から着想した具体的で静かな英語のフレーズとし、1~3語の大文字表記にします。 - 固定した
USER_PHOTOと、選んだバンドル済み参考画像3~4枚を、1回の生成呼び出しで画像ツールに渡します(ツールが受け付ける画像は合計5枚までです)。役割を明示してラベル付けします:Image 1 = USER-UPLOADED CONTENT SOURCE ONLY;Images 2–N = BUNDLED LOWER-PANEL STYLE REFERENCES ONLY。GENERATED_PANELのみを生成します。ローカルに保存し、スタイル参考画像や Image 1 を生成結果として扱ってはいけません。 - 選んだ参考画像の詩的な抑制を取り入れた CLEAN モードのみを使用します。下部パネルのバランス、静かなエディトリアル調、簡潔な階層、変化を持たせたマークのスケール、さりげない有機的形状、ソースに由来する色のアクセントの適切な制御を合わせます。質感が目立つ参考画像の表現は、クリーンなマット仕上げに置き換えます。
#F3F0E8に近い、中立的なアイボリーの背景を、途切れのない完全に均一な状態に保ちます。グラデーション、照明の変化、帯、パッチ、継ぎ目、紙のテクスチャ、水彩のにじみ、かすみ、しみ、ビネット、異なるテキスト領域の背景は一切許可しません。 - 下部パネルが、スタイル変換された写真、認識可能な場面のイラスト、簡略化したトレース、ポスタリゼーション、物体の描き直しに見える場合は、却下して再生成します。また、ソースとの対応がないマークがある、余白が75~88%の範囲外である、モチーフが規定の範囲を超えている、テキストが表示されている、またはサンプリングした背景の余白部分で色に視認可能もしくは測定可能な差がある場合も、却下します。
scripts/finalize_artwork.py USER_PHOTO GENERATED_PANEL FINAL --number "NO. 00X" --date "DD MON YYYY" --phrase "WORDS"を実行します。最初の位置引数が、手順3で固定した同じユーザーアップロードのパスであることを確認します。その位置にバンドル済み参考画像や以前の出力を決して指定しません。- 最終出力に含まれるテキストが、
NO. 00X、DD MON YYYY、1~3語の大文字フレーズのちょうど3項目であることを確認します。その他のメタデータ、カラースウォッチ、キャプション、地名、カメラデータ、GPS、FRAME、STUDYの文字を追加してはいけません。 - 最終出力とオリジナルを並べて確認します。上部の写真の幅、高さ、向き、ピクセル、クロップ、階調、色、シャープネス、内容、粒子、露出のいずれかに差があれば却下します。
- 修正のたびに、元の分析に基づいて下部パネルのみを再生成します。最終合成画像を繰り返し編集してはいけません。
finalize_artwork.pyからDELIVERY PASSが出ることを必須とします。このスクリプトはオリジナルを使って検証を実行し、失敗時には候補を削除します。出力がない、合格メッセージがない、または写真のピクセルが一致しない場合は、却下として扱います。references/run-log-template.mdに従って、実際のモデル、画像ツール、生成パネル、合成コマンドを含む実行ログを完成させます。確認できないツールやモデルを使用したと主張してはいけません。- 説明的で、既存ファイルを上書きしないファイル名を付け、完成度の高い結果を1点保存します。最終版を保存した後にのみ、連番を進めます。
生成プロンプトのひな形
Use case: visual distillation
Asset type: abstract lower panel only, for later deterministic composition
Input image: Image 1 is the photograph uploaded by the user in the current request. It is the sole content source, never an edit target. Generate no photographic panel and do not reproduce Image 1.
Style references: Images 2–N are bundled lower-panel style references only. They are not the original photograph and must never appear in the final upper panel. Match only their abstraction vocabulary, spatial balance, restrained palette, quiet editorial tone, and poetic negative space.
Core method: DECONSTRUCT, ABSTRACT/DISTILL, RECONSTRUCT — NEVER STYLE TRANSFER. First separate Image 1 into dominant masses, axes, boundaries, counts, color roles, directions, overlaps, intervals, depth, asymmetry, and meaningful voids. Then remove photographic detail and literal outlines. Finally rebuild only the retained relationships as a new nonliteral system of minimal marks. Preserve relational identity and spatial rhythm, not the exact scene or pixel geometry.
Layout: portrait lower panel planned for an untouched full-frame photograph above it. Create one compact sparse reconstructed motif occupying about 30–42% of panel width and at most 28% of panel height, leaving 75–88% visually empty. Scale the motif down as one coherent group while preserving its internal hierarchy and relationships. Allow measured displacement, compression, separation, overlap, and scale change when these make the source relationships clearer. Do not place the abstraction inside a miniature scene frame, reproduce the source aspect ratio as a visible composition, scatter marks to fill space, or collapse it into one generic centered icon.
Surface mode: CLEAN ONLY with poetic negative space. Use one perfectly uniform, uninterrupted flat field at or near #F3F0E8 across every background pixel. The center, edges, corners, number area, and date/phrase area must share the same background color. Create atmosphere only through sparse placement, pauses, distance, asymmetry, and silence—never through surface effects. Use clean matte marks with subtly organic contours when structurally justified. Add no gradient, light falloff, glow, shadow, edge darkening, band, patch, seam, grain, noise, paper texture, fibers, watercolor bloom, haze, vignette, stains, faded color, or grading.
Color emphasis: slightly prefer several distinct accent roles sampled from `USER_PHOTO` when they clarify different source facts. Preserve their original saturation, luminance hierarchy, and approximate dominance. Do not force extra colors into a monochrome source.
Text: generate no text of any kind. The deterministic compositor adds the exact archive number, date, and phrase later.
Core visual evidence:
- Primary element: [identity, shape, count, position, scale, color, direction]
- Structural axis: [horizon, vertical, curve, or diagonal and normalized location]
- Spatial rhythm: [intervals, clusters, gaps, depth, overlap, or repetition]
- Secondary evidence: [at most two supporting relationships]
Deconstruction and reconstruction mapping:
- [source fact] -> [minimal mark + relative placement + relative size]
- [source fact] -> [minimal mark]
- [source fact] -> [minimal mark]
Removal decision: omit [textures, background detail, or low-information objects].
Constraints: preserve source relationships before likeness; every abstract mark needs source justification; one primary motif family and at most two supporting families; quiet, isolated, sparse, restrained.
Avoid: photograph, scene reconstruction, recognizable object redraw, generic style transfer, stylization, vectorization, posterization, literal tracing, complete illustration, decorative filler, regularized spacing, invented symmetry, invented content, any text, numbers, captions, color swatches, watermark, gradient background, uneven background, lighting falloff, background bands or seams, visible grain, dirty paper, yellow cast, gray veil, watercolor, haze, or texture.
出力ルール
- デフォルトでは、結果を1つ生成し、CLEAN モードにします。
- アイデンティティに関わる被写体と既存の遮蔽を保持します。隠された顔、身体、構造を再構成しないでください。
- 任意のカラーテーマではなく、異なる有効なソースの根拠または記号の対応付けを通じて、抽象度に変化を付けます。
- ソース由来のアクセントカラーは、装飾的に色を塗り替えるのではなく、控えめに差別化します。
- 下部パネルを、ソースの根拠からマークへの短いリストとして説明できない場合、または単に上部のシーンを別のビジュアルスタイルで表現したように見える場合は、修正します。
- スタイルを転写したシーンと、選択した参照画像のビジュアル言語を無視した汎用的な図の両極端を避けます。
- 最終テキストは
NO. 00X、日付、フレーズのみに限定し、いずれも決定論的な最終処理で追加します。 - 新たに加わった写真の粒子感、色調のずれ、色かぶり、ぼけはすべて、許容される雰囲気ではなく、出力の失敗として扱います。
- 下部パネルの空白の背景に不均一な部分があれば、出力の失敗として扱います。モチーフ、番号、日付、フレーズの背後には、途切れのない単一色の CLEAN 背景を求めます。
DELIVERY PASSを受けたファイルのみを返します。一時的な抽象パネルは決して返さないでください。
コメント
Markdown 対応