Imported from luckdvr/photo-riso-poster (
SKILL.md). Install upstream withnpx skills add luckdvr/photo-riso-poster. Copyright stays with the author.
Photo Riso Poster
Turn the user's input into ONE quiet riso-print poster image, generated by the built-in image generation tool from a text-only prompt. Never attach the source photo or any reference image to the generation call: evidence travels through your written analysis, style through the rules below.
Work autonomously through all steps without asking questions. Stop only if the image generation tool is unavailable — say so and never draw the poster with code.
Input
- Photo: lock its file path, read it visually. If EXIF capture date is readable (e.g. via exiftool or PIL), use it for the date line; otherwise omit the date rather than inventing one.
- Text theme (no photo): distill the theme into one imageable core idea, then invent modest archive facts (a count, a season, a weather feel) consistent with it.
- Aspect: a photo's orientation and ratio decide the poster's — landscape → landscape, portrait → portrait, square → square, nearest ratio the tool supports. A text theme defaults to portrait 3:4 unless the user asks otherwise.
Abstraction level
Default is standard. Switch only when the user asks in plain words (抽象一点 / more abstract → minimal; 具象一点、像一点 / more faithful → faithful):
- faithful — printed-illustration detail: fuller contours and interior texture, like a botanical or object plate from an old book.
- standard — simplified silhouettes: identity readable, detail dropped.
- minimal — identity dissolves: subjects become pure geometric marks (dots, short bars, blocks, arcs, hairlines); only counts, positions, size hierarchy, directions, intervals, and occlusion survive. No recognizable silhouettes at all.
Deconstruct
Record observable facts once, briefly:
- Primary element and up to two secondary relationships: identity, shape, count, normalized position, scale, direction.
- Structure: one dominant axis; rhythm (intervals, clusters, repetition); depth order; occlusion; meaningful empty field.
- Color: the photo's LARGE-AREA temperature (cool: blue/gray sky, snow, water, green field → cool paper; warm: dusk, autumn, earth, indoor light → warm paper), plus 2–3 dominant color roles to become ink colors.
- Archive facts for typography: season, time-of-day or weather feel, a count worth stating.
Map facts to marks and type
- Every visual mark traces to a named fact; delete decorative marks. One primary motif family, at most two supporting.
- Marks are printed-matter forms at the chosen abstraction level — faithful: detailed plate illustration; standard: simplified silhouettes, blocks, hairlines, dots, short bars; minimal: geometric marks only. At every level preserve relational invariants — counts, uneven spacing, size hierarchy, direction, asymmetry, occlusion, reflections and shadows as fainter echoes. Never trace the scene's full layout: the composition is a sparse cluster floating on paper, not a filled scene — no sky region, no ground plane running edge to edge; supporting elements sampled sparsely (3–5 representatives), never a full row.
- Human figures become small anonymous silhouettes; animals featureless silhouettes; never faces.
- Type is also an evidence outlet: a count mark like
x 002(append a noun likex 024 TRUNKSwhen it clarifies; usex 050+when beyond exact counting), a date line, a weather/time note, a 2–4 word poetic English phrase, an archive number. A place name only when recognized with high confidence; otherwise omit.
Generate
Write one compact image prompt — four short paragraphs: canvas+paper / ink layers+cluster / typography / mood+avoids — then call the image generation tool. The prompt must state:
- Canvas: the chosen aspect ratio; full-frame scanned flat matte paper with subtle fibers and faint mottling. Paper color follows the photo's temperature — state it explicitly: cool photo →
pale blue-gray porcelain paperorcool snow-white paper; warm photo →warm pale cream paper. Light, never deep yellow, never stained. No border, mockup, or 3D. - Riso multi-ink system: the poster is a 2–3 color risograph print. Assign each sampled color role to one ink layer — e.g.
deep indigo ink,leaf-green ink,vermilion-orange ink— printed as grainy silhouettes and fields with slight misregistration where layers overlap. Inks stay saturated and visibly colored; the most vivid ink covers the primary element or a substantial field, not a tiny dot. Gray/black hairlines may support. - Attention geometry: 65–85% empty paper; one visual cluster occupying 10–25%, off-center where the source structure suggests; no edge-hugging, no grid alignment, keep the source's uneven spacing.
- Cluster treatment: shapes drawn as printed matter — photocopy softness, fine risograph grain, ink bleed at edges, slight layer misregistration.
- Typography system: small typewriter/serif type around the cluster — the poetic phrase in 2–4 stacked lines pressed near the cluster; a tiny archive block set apart like a margin note, using the fixed vocabulary
ARCHIVE NNNorNO. NNNplus the date and weather/time lines; the count mark; one or two tiny scattered dashes or dots. Type may print in one of the ink colors. Slight drift and misregistration welcome; every word short, simple, correctly spelled. - Mood: quiet, archival, diary-like, indie riso zine, nostalgic but chromatic.
- Avoid: full-bleed scene or landscape painting, sky/ground regions filling the canvas, cartoon or children's-book flatness, commercial poster layout, clean UI white, cinematic light, 3D, neon, photorealism, long clean paragraphs, muddy browns.
Deliver
Return the generated image, then:
**最终 Prompt**
[the exact prompt sent to the tool]
**说明**
- 证据: [2–3 key source facts and where they landed — marks or type]
- 纸色: [cool/warm and why]
- 画幅: [ratio and why]
Before returning, check once: cluster small and off-center on mostly empty paper; every mark and every typographic fact traceable to the source; 2–3 inks visibly colored; paper temperature matches the photo; words spelled correctly. If ink color is washed out, text is garbled, or the layout collapsed into a filled scene, regenerate once with the failing rule stated more forcefully.
Examples
- "用 $photo-riso-poster 把这张照片做成海报" (attach photo)
- "用 $photo-riso-poster 做一张关于夏天傍晚的图" (text theme)