Imported from tluy/luy-photo (
SKILL.md). Install upstream withnpx skills add tluy/luy-photo. Copyright stays with the author.
Luy Photo
Treat the task as three deliberate operations: deconstruct, abstract/distill, and reconstruct. The lower panel is a new illustrative flat-design composition made from relationships extracted from the upper photograph. It distills the scene's essential visual facts into clean geometric shapes, flat color blocks, and simplified forms that remain recognizably linked to the source without reproducing it literally. Derive all lower-panel evidence from the source photograph and only the visual grammar from the bundled references. Never apply reference style to the original photograph.
Input role lock
- Define
USER_PHOTOas the photograph attached or uploaded by the user in the current request. Record its exact local path before analysis. - Define
STYLE_REFSas selected files fromassets/style-references/. They guide only the lower generated panel. - Define
GENERATED_PANELas the new illustrative image produced for the lower half. - The final composite must contain exactly
USER_PHOTOabove andGENERATED_PANELbelow. Never place a style reference, prior output, screenshot, or generated derivative in the photographic position. - Use the same locked
USER_PHOTOpath for visual analysis, metadata/date inspection, palette evidence,finalize_artwork.py, and validation. If the path becomes unavailable, stop instead of substituting another image.
Non-negotiable delivery contract
- Treat the image-generation result as a temporary illustrative-panel asset. Never display or return it to the user.
- Obtain real local filesystem paths for the untouched original and generated panel. If either path is unavailable, stop and return no artwork.
- Produce the deliverable only with
scripts/finalize_artwork.py; do not run the compositor and validator separately for final delivery. - Return an image only after the finalizer prints
DELIVERY PASS. Return only its output path, never the generated panel path. - If generation, local saving, composition, or validation fails, return no image and name the failed stage. An illustrative panel without the original is always an intermediate failure.
- Keep
USER_PHOTOabove the illustration at its exact native width, height, orientation, and RGB pixel values. Never resize it, even proportionally.
Deconstruct-distill-reconstruct contract
- Deconstruct: separate the source into high-information evidence: dominant mass, axes, boundaries, counts, intervals, directions, overlaps, depth order, color roles, asymmetry, and meaningful voids.
- Abstract and distill: discard photographic surface texture, fine detail, perspective nuance, minor objects, and redundant evidence. Reduce each retained fact to simplified geometric shapes, flat color blocks, or clean silhouettes that still convey the scene's identity.
- Reconstruct: compose the distilled shapes into a new flat-design illustration that preserves the source's relational identity and spatial rhythm. The result should read as an editorial illustration — recognizable but simplified, not a photographic copy or a purely abstract composition.
- Preserve relational invariants such as relative dominance, left/right or above/below order, directional flow, count groups, gaps, clustering, overlap, and depth hierarchy. Exact coordinates and source aspect ratio are evidence, not a tracing template.
- Permit displacement, compression, separation, overlap, and scale change only when they clarify the extracted relationships. Never rearrange arbitrarily or add decoration without source evidence.
- Require the result to read as a flat-design editorial memory of this exact photograph — simplified, stylized, and illustrative — not a generic icon, a miniature photograph, a vectorized tracing, a filtered photograph, or a pure style transfer.
- Keep the reconstructed illustration within a responsive area surrounded by CLEAN poetic negative space. The illustration should be larger and more present than minimal abstract marks, filling 45–75% of the lower panel's width and 30–50% of its height. Leave 35–55% of the lower panel visually empty.
Lower-panel text contract
- The completed lower panel must contain exactly two text items rendered by
finalize_artwork.py:- A serif title in Title Case, 2–6 words, poetic and evocative, derived from the image's mood and subject (e.g., "Cross at the Snowline", "Golden Peak Above the Town", "The Wall Wears Green").
- An italic serif subtitle in lowercase, 2–5 comma-separated descriptive tags listing the key visual elements (e.g., "chapel opening to winter", "rooftops, snow mountain, morning light", "silver car, white building, green above").
- Place the title and subtitle centered at the bottom of the lower panel, in the empty space below the illustration. Title above, subtitle below.
- Use an elegant serif typeface (Georgia or similar) for both. Title in regular weight; subtitle in italic.
- Generate the illustrative artwork with no text, then add both items deterministically with
finalize_artwork.py. The no-text generation rule applies only to the temporary generated artwork, not to the completed lower panel. - Treat missing, duplicated, misspelled, malformed, or additional text as rejection.
Reconstructed-illustration scale contract
- Keep every existing visual, analytical, text, source-integrity, and composition rule unchanged; adjust only the reconstructed illustration's overall scale.
- Make the complete reconstructed illustration occupy approximately 45–75% of the lower panel's width and 30–50% of its height.
- Leave approximately 35–55% of the lower panel visually empty. Treat the empty field as intentional poetic space.
- Scale the illustration as one coherent group. Preserve all internal size ratios, intervals, directions, overlaps, hierarchy, and asymmetry while sizing it.
- Keep the illustration near the center or a reference-supported asymmetric position, with the title and subtitle below it. Do not enlarge individual elements to fill space, scatter them across the panel, or shrink the illustration into a tiny icon.
Uniform CLEAN-background contract
- Use one continuous, perfectly uniform warm neutral-ivory background across the entire generated lower panel, targeting
#F5F0E8. - Treat the background as a single flat color plane, not as atmosphere. Permit color variation only inside source-derived illustrative marks.
- Add no gradient, lighting falloff, glow, shadow, vignette, edge darkening, horizontal or vertical band, patch, seam, paper tone, canvas texture, noise, grain, mottling, haze, bloom, stain, or compression-like discoloration.
- Do not place a different field behind the title or subtitle. The illustration and both text items must sit on the same uninterrupted background color.
- Inspect empty areas at the center, sides, and corners at normal size and with sampled RGB values. Reject and regenerate the panel if empty-area color visibly or measurably changes across the field.
Illustrative flat-design style contract
- Render the lower panel as a flat-design editorial illustration, not as sparse abstract marks. The style draws from:
- Contemporary minimalist illustration (flat shapes, limited palette, clean edges)
- Mid-century modern graphic design (geometric reduction, purposeful line weight)
- Japanese ma aesthetics (appreciation of negative space and interval)
- Travel-poster heritage (1930s WPA posters, Japanese railway posters)
- Use flat color blocks with no gradients within individual elements. Each shape is a single solid fill.
- Simplify organic forms into clean geometric or softly organic silhouettes. Architecture becomes rectangles; trees become rounded masses; figures become simplified silhouettes.
- Preserve the scene's spatial logic (horizon, foreground/background, left/right weight) while flattening depth into stacked graphic planes.
- Maintain a muted, sophisticated palette of 4–6 colors derived from the source photograph but interpreted emotionally — desaturated, warm-shifted, and editorially restrained.
- The illustration should be immediately recognizable as a stylized version of the scene above, not a non-representational abstraction.
Color contract
- Extract 4–6 color roles from the photograph.
- Mute and warm-shift the palette: source greens become sage/olive; source blues become slate; source reds become terracotta; neutrals warm to cream.
- Preserve relative luminance and dominance relationships from the source.
- Use the warm neutral-ivory background near
#F5F0E8as the unifying ground. - Allow 1–2 restrained accent colors sampled from the source when they clarify different visual facts.
- Avoid invented neon, rainbow palettes, glossy gradients, and global muting.
Required workflow
- Run
scripts/check_installation.py. Stop and report an incomplete installation if it fails. - Confirm that the built-in image generation tool is callable. If it is absent, unavailable, denied, or fails, stop and tell the user. Use programmatic tools only for deterministic composition, exact typography, and validation; never use them to draw the illustrative motif.
- Lock the exact path of the photograph uploaded by the user in this request as
USER_PHOTO, then inspect it as the sole content source. Read references/analysis-method.md, references/style-guide.md, references/structural-reference-index.md, and references/run-log-template.md. Never silently substitute a bundled reference, earlier upload, previous result, screenshot, or recompressed export. - Select and inspect 3–4 of the 9 bundled images using
structural-reference-index.md. Select references whose lower panels offer relevant illustrative grammar, spatial density, palette treatment, and poetic use of empty space. Use all 9 as the eligible style library. - Record the primary element's identity, shape, count, normalized position, relative scale, color, direction, and depth. Identify one structural axis plus meaningful intervals, gaps, overlaps, clusters, or repetitions. Identify distinct source-derived color roles.
- Complete the abstraction-plan worksheet in
analysis-method.md. Map every proposed shape to a named source fact; remove decorative shapes without source justification. - Use one primary illustration family and at most two supporting families. Encode relationships through flat geometric shapes, clean silhouettes, thin lines, color blocks, and simplified forms. Preserve counts, coordinates, size ratios, directions, spacing, asymmetry, occlusion, and negative-space distribution while discarding photographic detail.
- Always use an upper/lower composition. Paste
USER_PHOTOabove at exactly its native pixel width and height, without resize, crop, resampling, retouching, or generative editing. Generate the lower panel at a compatible ratio, scale it proportionally to the photo width, and preserve its complete frame without cropping. - Determine the title and subtitle before generation. The title should be a poetic, evocative phrase of 2–6 words in Title Case. The subtitle should be 2–5 comma-separated descriptive tags in lowercase, listing the key visual elements.
- Supply the image tool with locked
USER_PHOTOplus 3–4 selected bundled references in one generation call (the tool accepts at most five images total). Label roles explicitly:Image 1 = USER-UPLOADED CONTENT SOURCE ONLY;Images 2–N = BUNDLED LOWER-PANEL STYLE REFERENCES ONLY. Generate onlyGENERATED_PANEL. Save it locally; never treat a style reference or Image 1 as generated output. - Use CLEAN illustrative mode only, joined with the selected references' editorial restraint. Match their lower-panel balance, flat-design vocabulary, muted palette, clean typography spacing, and controlled source-derived color accents. Keep one uninterrupted, exactly uniform warm neutral-ivory background near
#F5F0E8; allow no gradient, lighting variation, band, patch, seam, paper texture, watercolor bloom, haze, stain, vignette, or differing text-area field. - Reject and regenerate the lower panel if it resembles a style-transferred photograph, a detailed scene illustration, a simplified tracing, a posterization, or an object redraw. Also reject it if a shape lacks source correspondence, empty space falls outside 35–55%, the illustration exceeds its envelope, any text appears, or sampled empty-background areas differ visibly or measurably in color.
- Run
scripts/finalize_artwork.py USER_PHOTO GENERATED_PANEL FINAL --title "Title Words" --subtitle "descriptive, tags, here". Verify that the first positional argument is the same locked user-upload path from step 3. Never pass a bundled reference or prior output in that position. - Confirm that the final output contains exactly two text items: the serif title and the italic subtitle. Add no other metadata, color swatches, captions, place names, camera data, GPS,
FRAME,STUDY,NO., date, or extra text. - Inspect the final output side by side with the original. Reject it if the upper photo differs in width, height, orientation, pixels, crop, tone, color, sharpness, content, grain, or exposure.
- For every revision, regenerate only the lower panel from the original analysis; never recursively edit the final composite.
- Require
DELIVERY PASSfromfinalize_artwork.py. It runs validation with the original and removes the candidate on failure. Treat a missing output, missing pass message, or photographic pixel mismatch as rejection. - Complete the run log from
references/run-log-template.md, including the actual model, image tool, generated panel, and composition command. - Save one polished result with a descriptive non-overwriting filename.
Generation prompt scaffold
Use case: visual distillation through flat-design editorial illustration
Asset type: illustrative 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 flat-design illustration vocabulary, muted palette, editorial restraint, 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, texture, and literal outlines. Finally rebuild only the retained relationships as a new flat-design editorial illustration using simplified geometric shapes, flat color blocks, and clean silhouettes. Preserve relational identity and spatial rhythm — the result should be recognizable as a stylized version of the source scene, not a non-representational abstraction.
Layout: portrait lower panel planned for an untouched full-frame photograph above it. Create one flat-design illustration occupying about 45–75% of panel width and 30–50% of panel height, leaving 35–55% visually empty. Scale the illustration as one coherent group while preserving its internal hierarchy and relationships. Center the illustration or place it with slight asymmetric offset. Reserve the bottom-center area for title and subtitle (added later by deterministic compositor).
Surface mode: CLEAN ONLY with warm neutral-ivory background. Use one perfectly uniform, uninterrupted flat field at or near #F5F0E8 across every background pixel. The center, edges, corners, and text area must share the same background color. Create depth through layered flat shapes, not through surface effects. Use clean matte flat fills with no gradients within individual shapes. 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: extract 4–6 muted color roles from the source photograph. Warm-shift and desaturate: greens become sage/olive, blues become slate, reds become terracotta, neutrals warm to cream. Preserve relative luminance and dominance. Allow 1–2 restrained accent roles when they clarify different source facts. Do not force extra colors into a monochrome source.
Illustration style: flat-design editorial illustration. Each shape is a single solid fill — no gradients, no shading, no texture. Architecture becomes rectangles and blocks; trees and foliage become rounded organic masses; figures become simplified silhouettes; water becomes flat color planes; sky becomes background or a single flat band. Preserve the scene's spatial logic (horizon, foreground/background, left/right weight) while flattening depth into stacked graphic planes.
Text: generate no text of any kind. The deterministic compositor adds the serif title and italic subtitle 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] -> [flat shape + relative placement + relative size + flat color]
- [source fact] -> [flat shape + relative placement]
- [source fact] -> [flat shape + relative placement]
Removal decision: omit [textures, background detail, or low-information objects].
Constraints: preserve source relationships before likeness; every illustrative shape needs source justification; the result must read as a flat-design editorial illustration of this exact scene, not a generic icon or a photographic filter.