diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 04d73c5..2364cd2 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -8,9 +8,7 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 20 - - uses: pnpm/action-setup@v4 - with: - version: 10.17.0 + - uses: pnpm/action-setup@v4 - run: pnpm install --frozen-lockfile - run: pnpm run validate:styles - run: pnpm run build:manifest diff --git a/docs/NOTES.md b/docs/NOTES.md new file mode 100644 index 0000000..580a182 --- /dev/null +++ b/docs/NOTES.md @@ -0,0 +1,15 @@ +# MuseoMorph — Engineering Notes + +## 2025-11-12 — Collaboration Scope + Validator Updates + +- Added `style_scope: "collaboration"` alongside existing `"single-artist"` and `"movement"` scopes. +- Validator now only warns on multi-artist `artist` strings when `style_scope` is `"single-artist"`. +- Updated three collaboration cards to use `style_scope: collaboration`: + - `styles/psychedelic_art/mouse_kelley_psychedelic_collage.md` + - `styles/record_covers/hipgnosis_surrealist_staging.md` + - `styles/golden_age_comics/siegel_shuster_foundational_superhero.md` +- Path normalization fix in validator to avoid Windows false positives on group directories. +- Post-change status: + - `pnpm run validate:styles` → All green. + - `pnpm run build:manifest` → Indexed: 211, Skipped: 1, Collections: 32. + diff --git a/docs/PRD.md b/docs/PRD.md index db26dc2..c879377 100644 --- a/docs/PRD.md +++ b/docs/PRD.md @@ -1,121 +1,146 @@ -# MuseoMorph — Product Requirements Document (PRD) - -### 1. Project Overview - -MuseoMorph is a **playful art lab** delivered as a cross-platform desktop app (Windows, macOS, Linux) that transforms a submitted photograph into an artwork rendered in the visual language of a chosen artist, movement, or technique. Unlike generic style-transfer filters, MuseoMorph emphasizes *art-historical authenticity*. It uses structured Markdown prompt frameworks (e.g., Universal Museum-Grade Prompt Framework v4.3) to encode artist-specific characteristics such as pigments, brushwork, medium, palette constraints, and compositional strategies. - -Users supply their own image generation API keys (starting with Google’s NanoBanana/Gemini) to locally generate results. The app presents a **museum-inspired interface** with curated collections, style detail pages, and optional educational blurbs, balancing fun, accessibility, and art appreciation. - ------- - -### 2. Problem Statement - -AI tools like NanoBanana often revert to **generic defaults** (plasticky, digital-looking, “stock filter” results) unless guided with very tight, detailed prompts. Current systems fail to capture the **granular historical authenticity** that makes an artist’s work recognizable beyond surface tropes. - -MuseoMorph addresses this by structuring prompts with explicit anchors (ratios, flags, pigments, techniques, constraints), ensuring outputs feel like genuine interpretations of historical methods rather than shallow imitations. It reframes AI as a **respectful interpreter** of art history — playful, but not cheesy; educational, but not academic. - ------- - -### 3. Goals & Objectives - -- **Authenticity Benchmark:** ≥80% of styles meet internal rubric for palette fidelity, material simulation, and likeness preservation. -- **Style Coverage:** Ship ≥20 styles at launch, organized into collections (Comics, Dutch Golden Age, Impressionism, etc.). Expand iteratively. -- **Frictionless UX:** Casual users can go from photo → result in under 2 minutes. -- **Local-First:** $0 hosting cost; runs fully on desktop with user-supplied API keys. -- **Cross-Platform:** Tauri desktop app builds for Windows, macOS, Linux. -- **Museum-Style UX:** Landing page, curated collections, gallery-style detail pages. -- **Extensibility:** Drop-in Markdown style files with frontmatter; app auto-indexes and surfaces them. - ------- - -### 4. Target Users - -- **Primary:** Casual art enthusiasts and everyday users who want to see themselves in unusual art styles and share playful results. -- **Secondary:** Creative professionals (illustrators, educators, designers) who may use MuseoMorph as inspiration or teaching material. -- **User Characteristics:** Non-technical, curious, value fun and authenticity; drawn to museum-like presentation. - ------- - -### 5. Key Features & Requirements - +# MuseoMorph — Product Requirements Document (PRD) + +### 1. Project Overview + +MuseoMorph is a **playful art lab** delivered as a cross-platform desktop app (Windows, macOS, Linux) that transforms a submitted photograph into an artwork rendered in the visual language of a chosen artist, movement, or technique. Unlike generic style-transfer filters, MuseoMorph emphasizes *art-historical authenticity*. It uses structured Markdown prompt frameworks (e.g., Universal Museum-Grade Prompt Framework v4.4) to encode artist-specific characteristics such as pigments, brushwork, medium, palette constraints, and compositional strategies. + +Users supply their own image generation API keys (starting with Google’s NanoBanana/Gemini) to locally generate results. The app presents a **museum-inspired interface** with curated collections, style detail pages, and optional educational blurbs, balancing fun, accessibility, and art appreciation. + +------ + +### 2. Problem Statement + +AI tools like NanoBanana often revert to **generic defaults** (plasticky, digital-looking, “stock filter” results) unless guided with very tight, detailed prompts. Current systems fail to capture the **granular historical authenticity** that makes an artist’s work recognizable beyond surface tropes. + +MuseoMorph addresses this by structuring prompts with explicit anchors (ratios, flags, pigments, techniques, constraints), ensuring outputs feel like genuine interpretations of historical methods rather than shallow imitations. It reframes AI as a **respectful interpreter** of art history — playful, but not cheesy; educational, but not academic. + +------ + +### 3. Goals & Objectives + +- **Authenticity Benchmark:** ≥80% of styles meet internal rubric for palette fidelity, material simulation, and likeness preservation. +- **Style Coverage:** Ship ≥20 styles at launch, organized into collections (Comics, Dutch Golden Age, Impressionism, etc.). Expand iteratively. +- **Frictionless UX:** Casual users can go from photo → result in under 2 minutes. +- **Local-First:** $0 hosting cost; runs fully on desktop with user-supplied API keys. +- **Cross-Platform:** Tauri desktop app builds for Windows, macOS, Linux. +- **Museum-Style UX:** Landing page, curated collections, gallery-style detail pages. +- **Extensibility:** Drop-in Markdown style files with frontmatter; app auto-indexes and surfaces them. + +------ + +### 4. Target Users + +- **Primary:** Casual art enthusiasts and everyday users who want to see themselves in unusual art styles and share playful results. +- **Secondary:** Creative professionals (illustrators, educators, designers) who may use MuseoMorph as inspiration or teaching material. +- **User Characteristics:** Non-technical, curious, value fun and authenticity; drawn to museum-like presentation. + +------ + +### 5. Key Features & Requirements + - **Markdown-Driven Styles:** Styles loaded from `styles/**/*.md`, parsed into manifest.json. -- **Universal Framework Compliance:** Sections 1–8 enforced with flags, ratios, constraints. -- **Photo Input:** Single or multiple images. -- **Face Detection:** YuNet ONNX (Apache 2.0), CPU-only; manual selection is default, auto available as toggle. -- **Multi-Subject Support:** Selector UI + “Multi-Subject Directive” injection in prompts. -- **Result Viewer:** Display result with option to save; metadata caption styled like museum label. -- **Security:** API keys stored in OS keychain (via Rust); all generation local. -- **Output Handling:** Request best resolution allowed by provider; no size selector in MVP. -- **Museum-Inspired UX:** - - Landing page with curated collections. - - Style detail pages show Markdown scaffold + controls. - - Educational blurbs semi-mandatory (era, context, key figures). -- **Constraints Enforcement:** - - No frames, no signatures/logos, no brand elements. - - Respect age, gender, wardrobe guardrails. - - Auto-regeneration offered as a user option (not default) to avoid wasting provider quota. - ------- - -### 6. User Stories - -- **As an art lover,** I want MuseoMorph’s homepage to feel like the Met or MoMA websites, so I feel immersed in an art experience. -- **As a casual user,** I want to browse curated collections (e.g., Dutch Golden Age, Comics) so I can easily explore without being overwhelmed. -- **As a first-time user,** I want to upload a photo and generate an artwork in one click, so I can enjoy the transformation with no setup. -- **As a group of friends,** we want to upload a photo with multiple faces and have all of us included, so we can generate a shared portrait. -- **As a casual user,** I want to save and share my results, so I can show others how I look in a Vermeer, a Jim Lee comic, or a fashion photo. -- **As a creative pro,** I want to read the style descriptions, so I can learn about techniques and use them for teaching or inspiration. - ------- - -### 7. Success Metrics - -- **Qualitative:** Users feel authenticity, delight, and fun; flows are frictionless; app feels like a playful art lab, not a technical tool. -- **Community Signals:** GitHub stars, style contributions, organic sharing of results. -- **Internal Rubric:** Developers validate authenticity with internal tests; framework evolves (v4.3 → future). -- **No User Burden:** No in-app surveys, ratings, or forced feedback loops. - ------- - -### 8. Assumptions & Constraints - -- **Assumptions:** - - Non-commercial, leisure-focused; cost target = $0. - - Users provide their own API keys; local-first runtime. - - Markdown frameworks (e.g., Universal Prompt v4.3, NanoBanana Edition) serve as prompt source of truth. -- **Technical Constraints:** - - Provider limits resolution, latency, fidelity. - - Face detection = YuNet ONNX, CPU-only; fallback to manual. - - Prompts must enforce framework guardrails; silent validation applies. - - App must run on mid-tier laptops (no GPU required). -- **Operational Constraints:** - - No frames, signatures, or logos in output (disclaimed if provider fails). - - No telemetry beyond minimal error counts. - - Iterative prompt framework updates required for authenticity improvements. - ------- - -### 9. Dependencies & Risks - -- **Dependencies:** - - Provider APIs (NanoBanana/Gemini first). - - YuNet ONNX for face detection. - - Tauri + Rust ecosystem. - - Structured Markdown frameworks. -- **Risks:** - - Provider changes (resolution limits, quotas). - - CPU performance variability. - - Interpretive drift (sometimes feature, sometimes bug). - - IP/cultural concerns if styles aren’t curated carefully. - - User expectation mismatch (thinking results are “real” reproductions). - - Complexity of maintaining prompt frameworks across all styles. - ------- - -### 10. Open Questions (Resolved Directions) - -1. **Educational Layer:** Semi-mandatory. Landing pages show era/context blurbs; artist pages provide deeper “click to know more” details. -2. **Interpretive Drift:** Framed as part of the experiment. Users encouraged to retry or log GitHub issues for prompt refinements. -3. **Face Detection Default:** Manual by default; auto available as toggle. -4. **Signatures/Logos:** Disclaimer in README; no auto-regeneration by default (user decides). -5. **Identity:** MuseoMorph is a **playful art lab** — fun-first, educational-second. +- **Universal Framework Compliance:** Sections 1–8 enforced with flags, ratios, constraints. +- **Photo Input:** Single or multiple images. +- **Face Detection & Subject Selection:** BlazeFace (MediaPipe, Apache 2.0) running on CPU/iGPU; manual face picker is default with optional auto pre-select toggle. Processor crops references to the target ratio before generation. +- **Multi-Subject Support:** Selector UI + “Multi-Subject Directive” injection in prompts. +- **Result Viewer:** Display result with option to save; metadata caption styled like museum label. +- **Security:** API keys stored in OS keychain (via Rust); all generation local. +- **Output Handling:** Request best resolution allowed by provider; no size selector in MVP. +- **Museum-Inspired UX:** + - Landing page with curated collections. + - Style detail pages show Markdown scaffold + controls. + - Educational blurbs semi-mandatory (era, context, key figures). +- **Constraints Enforcement:** + - No frames, no signatures/logos, no brand elements. + - Respect age, gender, wardrobe guardrails. + - Auto-regeneration offered as a user option (not default) to avoid wasting provider quota. + +------ + +### 6. User Stories + +- **As an art lover,** I want MuseoMorph’s homepage to feel like the Met or MoMA websites, so I feel immersed in an art experience. +- **As a casual user,** I want to browse curated collections (e.g., Dutch Golden Age, Comics) so I can easily explore without being overwhelmed. +- **As a first-time user,** I want to upload a photo and generate an artwork in one click, so I can enjoy the transformation with no setup. +- **As a group of friends,** we want to upload a photo with multiple faces and have all of us included, so we can generate a shared portrait. +- **As a casual user,** I want to save and share my results, so I can show others how I look in a Vermeer, a Jim Lee comic, or a fashion photo. +- **As a creative pro,** I want to read the style descriptions, so I can learn about techniques and use them for teaching or inspiration. + +------ + +### 7. Success Metrics + +- **Qualitative:** Users feel authenticity, delight, and fun; flows are frictionless; app feels like a playful art lab, not a technical tool. +- **Community Signals:** GitHub stars, style contributions, organic sharing of results. +- **Internal Rubric:** Developers validate authenticity with internal tests; framework evolves (v4.4 → future). +- **No User Burden:** No in-app surveys, ratings, or forced feedback loops. + +------ + +### 8. Assumptions & Constraints + +- **Assumptions:** + - Non-commercial, leisure-focused; cost target = $0. + - Users provide their own API keys; local-first runtime. + - Markdown frameworks (e.g., Universal Prompt v4.4, NanoBanana Edition) serve as prompt source of truth. +- **Technical Constraints:** + - Provider limits resolution, latency, fidelity. + - Face detection = BlazeFace (MediaPipe), CPU-friendly with manual fallback. + - Prompts must enforce framework guardrails; silent validation applies. + - App must run on mid-tier laptops (no GPU required). +- **Operational Constraints:** + - No frames, signatures, or logos in output (disclaimed if provider fails). + - No telemetry beyond minimal error counts. + - Iterative prompt framework updates required for authenticity improvements. + +------ + +### 9. Dependencies & Risks + +- **Dependencies:** + - Provider APIs (NanoBanana/Gemini first). + - BlazeFace (MediaPipe) for face detection and subject pre-selection. + - Tauri + Rust ecosystem. + - Structured Markdown frameworks. +- **Risks:** + - Provider changes (resolution limits, quotas). + - CPU performance variability. + - Interpretive drift (sometimes feature, sometimes bug). + - IP/cultural concerns if styles aren’t curated carefully. + - User expectation mismatch (thinking results are “real” reproductions). + - Complexity of maintaining prompt frameworks across all styles. + +------ + +### 10. Open Questions (Resolved Directions) + +1. **Educational Layer:** Semi-mandatory. Landing pages show era/context blurbs; artist pages provide deeper “click to know more” details. +2. **Interpretive Drift:** Framed as part of the experiment. Users encouraged to retry or log GitHub issues for prompt refinements. +3. **Face Detection Default:** Manual by default; auto available as toggle. +4. **Signatures/Logos:** Disclaimer in README; no auto-regeneration by default (user decides). +5. **Identity:** MuseoMorph is a **playful art lab** - fun-first, educational-second. + +------ + +### 11. Style Data Model (Frontmatter & Validation) + +MuseoMorph styles are Markdown files with YAML frontmatter. The validator enforces presence and ordering of sections (1–8) and lints frontmatter. Key fields: + +- `id` (slug), `group`, `display_name` +- `artist` (string) and `movement` (string, optional) +- `style_scope`: one of + - `"single-artist"` — individual artist voice; multi-artist names are discouraged and will trigger a validator warning. + - `"movement"` — school/workshop/period styles (e.g., “Morris & Co. Workshop”, “Utagawa School”). Multi-artist strings are allowed. + - `"collaboration"` — intentional duos/studios (e.g., “Mouse & Kelley”, “Hipgnosis”, “Siegel & Shuster”). Multi-artist strings are allowed. +- `ratios` (≤3), `ratios_status` (`"provisional"|"approved"`), `ratios_notes` (explain rationale) +- `modes` (2–3 meaningful toggles) +- `safety_profile` (from policy allowlist) +- `multi_subject` (optional block) +- `about` (2–6 sentence educational blurb) + +Validator behavior updates (2025-11-12): + +- Multi-artist `artist` strings only warn when `style_scope` is `"single-artist"`. +- Windows path normalization in group directory checks prevents false directory warnings. + +Manifest expectations: manifest entries include `artist`, `movement`, and `style_scope` when present, plus `sections_index`, `ratios`, `modes`, and `safety_profile`. diff --git a/scripts/schema.ts b/scripts/schema.ts index 4f985cc..67b5094 100644 --- a/scripts/schema.ts +++ b/scripts/schema.ts @@ -12,13 +12,15 @@ export const AllowedSafety = [ export const ratioPattern = /^[1-9]\d*:[1-9]\d*$/; -export const FrontmatterSchema = z.object({ +export const FrontmatterSchema = z.object({ id: z.string().min(1).regex(/^[a-z0-9_\-]+$/, "id should be lowercase/slug-like"), group: z.string().min(1), display_name: z.string().min(1), artist: z.string().min(1).optional(), movement: z.string().min(1).optional(), - style_scope: z.enum(["single-artist", "movement"]).default("single-artist"), + style_scope: z + .enum(["single-artist", "movement", "collaboration"]) + .default("single-artist"), ratios: z.array(z.string().regex(ratioPattern)).min(1), modes: z.array(z.string().min(1)).min(1), diff --git a/scripts/validate-style.ts b/scripts/validate-style.ts index 4c210b5..45cba43 100644 --- a/scripts/validate-style.ts +++ b/scripts/validate-style.ts @@ -74,6 +74,9 @@ async function main() { process.exit(0); } + // small helper to normalize paths for cross-platform comparisons + const norm = (p: string) => p.replace(/\\/g, "/").replace(/\/+$/, ""); + for (const file of files) { const rel = path.relative(root, file); if (rel.includes(`${path.sep}archive${path.sep}`) || rel.startsWith(`archive${path.sep}`)) { @@ -118,9 +121,10 @@ async function main() { } } - const expectedDir = path.join("styles", slugify(fm.group)); - const actualDir = path.dirname(rel).replace(/\\/g, "/"); - if (!actualDir.startsWith(expectedDir)) { + const expectedDir = norm(path.join("styles", slugify(fm.group))); + const actualDir = norm(path.dirname(rel)); + // Accept exact match or being inside a deeper subfolder under expectedDir + if (actualDir !== expectedDir && !actualDir.startsWith(expectedDir + "/")) { problems.push({ file, message: `Group "${fm.group}" should live under ${expectedDir}/ — found in ${actualDir}/`, @@ -129,10 +133,13 @@ async function main() { if (typeof fm.artist === "string") { const artist = fm.artist.trim(); - if (artist && (artist.includes(",") || /\s(?:and|&|\+|x)\s/i.test(artist))) { + const looksMulti = + artist && (artist.includes(",") || /\s(?:and|&|\+|x)\s/i.test(artist)); + // Only warn for multi-artist strings when the scope claims single-artist + if (fm.style_scope === "single-artist" && looksMulti) { warnings.push({ file, - message: `Frontmatter.artist looks multi-artist ("${artist}"). Split styles per artist to avoid mixing voices.`, + message: `Frontmatter.artist looks multi-artist ("${artist}"). For duos/studios, set style_scope: "collaboration" (or "movement" for schools).`, }); } } diff --git a/styles/golden_age_comics/siegel_shuster_foundational_superhero.md b/styles/golden_age_comics/siegel_shuster_foundational_superhero.md index fcfa44c..3770f1e 100644 --- a/styles/golden_age_comics/siegel_shuster_foundational_superhero.md +++ b/styles/golden_age_comics/siegel_shuster_foundational_superhero.md @@ -4,7 +4,7 @@ group: Golden Age Comics movement: Golden Age Superhero Foundations artist: Jerry Siegel & Joe Shuster display_name: Siegel & Shuster — Foundational Superhero Iconography -style_scope: single-artist +style_scope: collaboration ratios: - '2:3' - '3:4' diff --git a/styles/psychedelic_art/mouse_kelley_psychedelic_collage.md b/styles/psychedelic_art/mouse_kelley_psychedelic_collage.md index b9e90af..1ac1232 100644 --- a/styles/psychedelic_art/mouse_kelley_psychedelic_collage.md +++ b/styles/psychedelic_art/mouse_kelley_psychedelic_collage.md @@ -4,7 +4,7 @@ group: Psychedelic Art movement: Mouse & Kelley Psychedelic Collage artist: Stanley Mouse & Alton Kelley display_name: Mouse & Kelley — Psychedelic Collage Poster -style_scope: single-artist +style_scope: collaboration ratios: - '2:3' ratios_status: provisional @@ -30,7 +30,7 @@ hero_image: null # Stanley Mouse & Alton Kelley -## Renderer-Agnostic Adapter - Mouse & Kelley Specific +## Renderer-Agnostic Adapter - **Constraint precedence:** Sections 1→8 are hard constraints; earlier overrides later - **Canvas Override Mandate:** Always ignore source image dimensions; compose for declared target aspect ratio diff --git a/styles/record_covers/hipgnosis_surrealist_staging.md b/styles/record_covers/hipgnosis_surrealist_staging.md index 226d4a7..6c6f2ae 100644 --- a/styles/record_covers/hipgnosis_surrealist_staging.md +++ b/styles/record_covers/hipgnosis_surrealist_staging.md @@ -4,14 +4,14 @@ group: Record Covers movement: Surrealist Photographic Album Art artist: Hipgnosis (Storm Thorgerson & Aubrey Powell) display_name: Hipgnosis — Surrealist Photographic Staging -style_scope: single-artist +style_scope: collaboration ratios: - '1:1' - - '2:1' + - '16:9' ratios_status: provisional ratios_notes: > - Square 12-inch sleeves carry the core imagery; open to 2:1 only when staging a - full gatefold panorama. + Square 12-inch sleeves carry the core imagery; open to 16:9 when staging a + full gatefold panorama surrogate. modes: - Surreal Tableau - Gatefold Panorama @@ -34,7 +34,7 @@ hero_image: null # Hipgnosis (Storm Thorgerson & Aubrey Powell) — Surrealist Photographic Staging -## 🔧 Renderer-Agnostic Adapter +## Renderer-Agnostic Adapter **Face-Treatment Flags:** `film-grain-triX`, `medium-format-compression`, `silver-halide-grain`, `contact-print-scale` @@ -51,7 +51,7 @@ hero_image: null ------ ## 1) Core Instruction & Likeness Mandate -**CANVAS OVERRIDE:** Recompose to exactly **1:1 ratio** (album cover standard) OR **2:1 ratio** (gatefold) - ignore source image dimensions completely. +**CANVAS OVERRIDE:** Recompose to exactly **1:1 ratio** (album cover standard) OR **16:9 ratio** (gatefold surrogate) - ignore source image dimensions completely. Redraw subject in **Hipgnosis surrealist photographic staging style** for **vinyl LP album cover (12" × 12" or 24" × 12" gatefold)**. @@ -72,14 +72,14 @@ Identity via **recognizable integration into impossible scenarios** - subject be ------ ## 2) Canvas Strategy & Aspect Ratio Control -**MANDATORY RATIO SELECTION:** `1:1` (standard album) OR `2:1` (gatefold panoramic) +**MANDATORY RATIO SELECTION:** `1:1` (standard album) OR `16:9` (gatefold panoramic surrogate) **CANVAS RECOMPOSITION STRATEGY:** - **Reframing Method:** recompose-entirely (create elaborate staged environment) - **Spatial Allocation:** Subject integrated as element within larger surrealist landscape (15-40% of composition) - **Background Treatment:** Vast surreal environments (deserts, oceans, industrial wastelands, barren fields) extending to horizon -- **Format Justification:** Square format for concentrated surreal moments; 2:1 gatefold for epic surrealist panoramas with elaborate staging +- **Format Justification:** Square format for concentrated surreal moments; 16:9 gatefold surrogate for epic surrealist panoramas with elaborate staging ------ ## 3) Style Context & Material Authenticity @@ -136,7 +136,7 @@ Identity via **recognizable integration into impossible scenarios** - subject be **Production Method Anchor:** Dye transfer printing creates color depth impossible with C-prints. Registration accuracy ±0.25mm between cyan, magenta, yellow layers. Paper choice affects final surface (matte vs. glossy receiving papers). -**Canvas Adaptation Anchor:** Square 1:1 format concentrates surreal moment; 2:1 gatefold enables epic panoramic staging with multiple surreal elements across extended vista. +**Canvas Adaptation Anchor:** Square 1:1 format concentrates surreal moment; 16:9 gatefold surrogate enables epic panoramic staging with multiple surreal elements across extended vista. ------ ## 5) Wardrobe, Props & Setting Conventions @@ -191,7 +191,7 @@ hipgnosis_surreal_props: **✅ Canvas Positives:** -- "exactly 1:1 square ratio" OR "exactly 2:1 gatefold ratio" +- "exactly 1:1 square ratio" OR "exactly 16:9 gatefold ratio" - "Hasselblad medium format grain" - "practical staging photography" - "dye transfer color saturation" @@ -216,7 +216,7 @@ hipgnosis_surreal_props: - Subject integrated as scale indicator within landscape - Radial composition for circular impossible objects -**For 2:1 Gatefold:** +**For 16:9 Gatefold Surrogate:** - Panoramic surreal landscape extending across double-width - Multiple surreal elements positioned at mathematical intervals @@ -286,7 +286,6 @@ hipgnosis_surreal_props: ## Roger Dean — Fantasy Landscape Visionary -## 🔧 Renderer-Agnostic Adapter **Face-Treatment Flags:** `watercolor-soft`, `gouache-opaque`, `mixed-media-linear`, `wet-on-wet-bleed` @@ -301,9 +300,8 @@ hipgnosis_surreal_props: **Period Production Authenticity:** 1970s-1980s traditional painting methods with experimental mixed media, organic mark-making, controlled chaos through water/gravity manipulation. ------ -## 1) Core Instruction & Likeness Mandate -**CANVAS OVERRIDE:** Recompose to exactly **1:1 ratio** (album cover) OR **2:1 ratio** (gatefold) - ignore source image dimensions completely. +**CANVAS OVERRIDE:** Recompose to exactly **1:1 ratio** (album cover) OR **16:9 ratio** (gatefold surrogate) - ignore source image dimensions completely. Redraw subject in **Roger Dean's fantasy landscape style** for **progressive rock album artwork**. @@ -322,19 +320,17 @@ Identity via **symbolic mythologization** - subject becomes tiny traveler or mys **Mode Selector:** Album cover (vinyl LP or gatefold format) ------ -## 2) Canvas Strategy & Aspect Ratio Control -**MANDATORY RATIO SELECTION:** `1:1` (standard album) OR `2:1` (gatefold panorama) +**MANDATORY RATIO SELECTION:** `1:1` (standard album) OR `16:9` (gatefold panorama surrogate) **CANVAS RECOMPOSITION STRATEGY:** - **Reframing Method:** adaptive-extend (organic landscape elements flow naturally to fill ratio) - **Spatial Allocation:** Vast cosmic landscape dominates (70-90%), tiny figures positioned as scale indicators (5-10%) - **Background Treatment:** Ethereal skies with luminous color gradients, floating islands, alien vegetation extending to all edges -- **Format Justification:** Square format concentrates cosmic vision; 2:1 gatefold enables epic panoramic alien worlds with elaborate organic architecture +- **Format Justification:** Square format concentrates cosmic vision; 16:9 gatefold surrogate enables epic panoramic alien worlds with elaborate organic architecture ------ -## 3) Style Context & Material Authenticity **Influences:** Surrealism, Art Nouveau organic forms, Chinese/Japanese landscape painting, ecological themes, botanical illustration, visionary art. @@ -357,7 +353,6 @@ Identity via **symbolic mythologization** - subject becomes tiny traveler or mys **Production Era Authenticity:** Traditional watercolor/gouache techniques with experimental material manipulation. No digital enhancement - all luminosity achieved through layered transparent pigments, scratched highlights, controlled water effects. ------ -## 4) Technical Method & Mark-Making **Line work:** Fluid curvilinear contours defining floating islands and organic architecture. Controlled fine linework for rock textures and foliage detail. Exploratory initial marks refined through careful edge definition. @@ -383,10 +378,9 @@ Identity via **symbolic mythologization** - subject becomes tiny traveler or mys **Production Method Anchor:** Original paintings photographed for reproduction. Offset lithography struggles to capture watercolor luminosity - requires careful color separation to approximate transparent wash depth. -**Canvas Adaptation Anchor:** Compositions designed for specific ratios - 1:1 concentrates cosmic moment, 2:1 enables epic journey across alien vista with multiple floating islands and organic structures. +**Canvas Adaptation Anchor:** Compositions designed for specific ratios - 1:1 concentrates cosmic moment, 16:9 enables epic journey across alien vista with multiple floating islands and organic structures. ------ -## 5) Wardrobe, Props & Setting Conventions **Wardrobe Tracks:** @@ -420,7 +414,6 @@ roger_dean_fantasy_props: **Coherence Filter:** All elements must feel ecologically connected within alien world system. Default = floating island in cosmic void with organic architecture. ------ -## 6) Safety & IP Constraints (Hard Rules) **❌ Canvas Negatives:** @@ -437,7 +430,7 @@ roger_dean_fantasy_props: **✅ Canvas Positives:** -- "exactly 1:1 square ratio" OR "exactly 2:1 gatefold ratio" +- "exactly 1:1 square ratio" OR "exactly 16:9 gatefold ratio" - "watercolor granulation texture" - "gouache opacity layers" - "scalpel scratched highlights" @@ -451,7 +444,6 @@ roger_dean_fantasy_props: **Vocabulary Warnings:** Avoid "digital," "rendered," "computer-generated," "vector," "synthetic." Embrace "painted," "organic," "flowing," "luminous," "atmospheric." ------ -## 7) Composition & Lighting Patterns **RATIO-SPECIFIC COMPOSITION:** @@ -462,7 +454,7 @@ roger_dean_fantasy_props: - Equal weight distribution through organic symmetry - Atmospheric depth receding to all four edges -**For 2:1 Gatefold:** +**For 16:9 Gatefold Surrogate:** - Epic panoramic alien landscape extending across width - Multiple floating islands positioned at rhythmic intervals @@ -489,7 +481,6 @@ roger_dean_fantasy_props: **Ratio Enforcement Anchor:** Composition flows organically to fill declared ratio, floating islands and cosmic elements positioned specifically for square or panoramic format. ------ -## 8) Typography & Text Integration (If Historically Present) **Binary:** ALLOW (typography integrated as organic element)