CommunityImagegithub.com

photo-paper-editorial

Make editorial photo-and-hand-painted-paper posters, or export standalone illustrations from approved posters with titles retained and serial numbers removed. Preserve original photography; generate a separate recognizable illustration; compose equal panels in Python, with portrait photos left/right and landscape photos top/bottom. Preview three samples before a large batch.

What is photo-paper-editorial?

photo-paper-editorial is a Codex agent skill that make editorial photo-and-hand-painted-paper posters, or export standalone illustrations from approved posters with titles retained and serial numbers removed. Preserve original photography; generate a separate recognizable illustration; compose equal panels in Python, with portrait photos left/right and landscape photos top/bottom. Preview three samples before a large batch.

Works with~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/JayLBean/photo-art-skills/tree/HEAD/skills/photo-paper-editorial

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Photo Paper Editorial

Create a separate poster for each content photo. Use an unchanged photograph beside a newly drawn matte acrylic vignette on warm ivory paper. The illustration must have designed shapes, individual facial features, selective detail, and open paper—not a paint filter and not a faceless icon. Distinguish content photos, style references, and feedback screenshots.

This style was developed and visually evaluated with Codex's built-in image generation tool. Use that tool when available; do not silently substitute a model API. Other agents need a configured image-generation capability, and other generators may produce different results. Python only composes and verifies; it does not generate the illustration. If no generator is available, explain the limitation or reuse a user-approved illustration. Never fake generation with image filters.

Preserve the photograph

After EXIF orientation, let the input be W×H. Portrait H>W: photo left, paper right, output 2W×H. Landscape W>H or square: photo top, paper bottom, output W×2H. Both panels are W×H and occupy exactly 50%. This adaptive workflow does not force every result to 3:4. Follow an explicit current user layout override without silently cropping or redrawing photography.

Use original files, never the photography from an AI-generated poster. Only apply EXIF orientation and ICC conversion to sRGB; this is color management, not grading. Paste the complete native-resolution source at scale 1 with no crop, padding, outpainting, retouching, or filter. Record source SHA-256 and verify the saved PNG's entire photo rectangle against a fresh normalized decode: zero pixel difference. This guarantees the photographic panel, not likeness of the separate drawing.

Plan the illustration before generating

View the content and 1–2 relevant approved examples in style.md. Identify each person's age, face shape, hair, glasses, gaze, mouth, clothing, pose, and important prop ownership. Select a few environment cues and up to four main pigment families from the source. Skin and lip nuance should remain natural; never force lips to red, beige, brown, or gray for palette conformity.

Read framing.md for every photo with a subject touching a frame edge. A photographic crop is not an anatomical endpoint. Record what is cut off versus actually occluded, and choose an illustration framing plan. A slightly cropped full figure may need restrained illustrative completion; an uncertain close-up needs an intentional bust or torso vignette. Do not turn cropped shins into flat-ended legs planted on paper. Do not assume an actual visible anatomical difference is a crop.

Use prompts.md to generate only the illustration, one image per content photo. Label reference roles explicitly. Keep all selected paint marks comfortably inside the generation canvas. Preserve source-visible features and relationships; never borrow identities or props from style examples. Inspect the result before composition. Regenerate locally when anatomy, subject count, framing, natural lip color, or the established paint style fails.

Compose precisely

Follow layout.md using scripts/compose_adaptive.py. Mark an art-box containing all painted marks, excluding lettering and paper. Select a clean blank paper patch. Place the full art box at a target 27% of the paper panel's area, scaling uniformly. This is bounding-box area, not painted-pixel area. If margins cannot fit it, shrink and record the actual ratio; never crop or stretch the artwork.

By default, design one short, content-based title beneath the vignette, centered in a small serif face with generous letter spacing. Python typesets it with --title; do not ask the image generator to draw letters. Use one line only, with no visible sequence number, date, year, subtitle, or other second line unless the user explicitly requests it. Do not invent a location. To reuse approved lettering, --caption-box must contain only the title and surrounding blank paper, excluding any old number; it cannot be combined with --title. See the layout guide for the bundled font and spacing.

Do not blend over the art-box interior or change illustration colors while arranging it. The source's incomplete photographic frame and the generated artwork's own safe margins are different issues: solve the former semantically before generation; preserve the latter during composition.

Three samples before a large batch

For a new batch requiring more than three new illustrations, first make three complete representative posters, covering different subject counts, scenes, orientations, and a cropped subject when present. Deliver those samples and wait for the user's confirmation before generating the rest. A previous batch's approval anchors style but does not replace the new batch's sample review. Once the user approves the current samples and says continue, finish the remaining items without repeating the gate. A user-specified test subset takes precedence. Reflowing already approved art does not need fresh generation approval.

Review and delivery

For standalone illustration requests, use export.md and scripts/export_illustration.py. Extract approved paper panels without new generation or resizing; retain the title and remove only visually confirmed serial labels with a small blank-paper patch. Respect batch exclusions and verify that all pixels outside the repair remain unchanged. Existing-art export does not trigger the new-generation sample gate.

Check layout, source hash, native dimensions, equal panels, and saved photo pixels with the script. Also visually inspect the complete poster: drawing style, individual likeness cues, subject/limb counts, pose and prop relationships, coherent framing, natural lips, safe margins, and title spacing. Confirm the single title is legible and that no unwanted number or second line remains. A numerical pixel check cannot judge the illustration's anatomy.

Deliver numbered PNG filenames such as 01.png and, when requested, an image-only ZIP. File numbering organizes delivery; it is not printed on the poster. Keep sources, art, prompts, framing plans, checks, and rejected versions in a separate work directory. Preserve previously approved results unless the user requests a revision. Never publish a person's private photos as examples without explicit permission.

Related Skills