CommunityImagegithub.com

Military Aesthetic

Transform real-world photos into Soviet constructivist military propaganda posters or generate new images from scratch in the 'military constructivist' style.

What is Military Aesthetic?

The Military Aesthetic skill converts user-supplied photographs into posters that mimic the visual language of Soviet constructivist military propaganda. It supports both photo-to-poster transformation (mode A) and scratch generation (mode B) for military-themed illustrations. The style uses a strict five-color palette (cream paper, vermilion red, deep black, ochre gold, and occasional cobalt blue), hard-edged flat color blocks, bold black outlines, diagonal wedges, stepped terraces, industrial skyline silhouettes, parallel hatch lines, and halftone offset-print texture. A critical constraint is the absolute prohibition of any radiating sunburst or fan-shaped light motifs to avoid resembling the Japanese rising-sun flag; all backgrounds must use approved geometric constructs like diagonal color blocks, stepped terraces, industrial silhouettes, parallel line bundles, or perspective grids. The workflow includes loading an ImageGen tool, informing the user about credit costs, assembling a detailed prompt from templates that cover subject description, background selection, and three mandatory prohibition clauses, then generating images at specified sizes (landscape 1536x1024, portrait 1024x1536, square 1024x1024). After generation, the skill mandates quality checks for subject integrity, sunburst prohibition, background geometry, style fidelity, colors, print texture, text contamination, and watermarks. Results are delivered via `present_files` without extra files. Batch processing is supported, consolidating identical style prompts and outputting a contact sheet for easy review.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yingjun-zheng/military_aesthetic/tree/HEAD

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

Military Aesthetic · Photo to Military Poster

Transform real-world photos into a "Soviet Constructivist × Military Propaganda Poster" style, or generate military equipment illustrations in this style from scratch.

Style specifications and color values can be found in references/style-spec.md; subject-specific prompt templates are in references/prompt-templates.md; failure modes and fixes are in references/troubleshooting.md.

When to Use

  • User provides a photo and asks to "turn it into that composition/style," make it a poster, or make it a propaganda poster.
  • User mentions 军构美学, constructivism, military propaganda poster, Soviet poster, retro military print.
  • User wants to batch-convert a set of photos into the same style.
  • User wants to generate military-themed illustrations from scratch in this style.

Workflow

Step 1: Determine Mode

ModeConditionimage1 Parameter
A. Photo to PosterUser provides a photo pathPass absolute photo path, input_fidelity: "high"
B. From ScratchUser wants finished pieces in this style onlyDo not pass image1, use plain text prompt

Mode A is the primary use case; prioritize preserving the photo content.

Step 2: Load Tool

ToolSearch(tool_names: ["ImageGen"])

ImageGen is a lazy-loaded tool; calling it directly before its schema is loaded will result in an InputValidationError. After loading, invoke via DeferExecuteTool.

Step 3: Notify Credit Cost

Before calling ImageGen, inform the user of the single-generation credit cost (approx. 5–10 credits per image) and the expected number of images for this batch. Obtain user approval before generating; if the user does not request a batch, produce one image at a time.

Step 4: Assemble Prompt

prompt = corresponding template from references/prompt-templates.md + subject description.

For Mode A, the subject description must cover:

  • What the subject is, its quantity, and relative positions
  • Each subject's posture (especially gestures and orientation)
  • Scene elements (deck/ground/foreground objects)
  • Surfaces to simplify (numbers, markings → solid color blocks)

The subject description should not describe what the sky/background looks like — the sky is uniformly handled by the background scheme.

Step 4.5: Select Background Scheme (Not Skipable)

From the background scheme library in references/prompt-templates.md (BG-1 Urban Industrial Silhouette / BG-2 Diagonal Color Blocks & Stepped Terraces / BG-3 Parallel Diagonal Line Bundles & Geometric Hills / BG-4 Perspective Grid Ground), select one and insert it into the prompt to replace the entire sky or cluttered background of the original photo.

Soviet constructivist background language consists of diagonal cuts, stepped terraces, silhouettes, and parallel line bundles, not radial patterns. The background scheme is the foundation of this style and the fundamental method to avoid the rising-sun flag — merely providing a prohibition without positive alternatives will still cause the model to gravitate toward fan-shaped light motifs.

Step 4.6: Include Three Prohibition Clauses

Each generation must verbatim include (see references/prompt-templates.md):

no text, no lettering, no numbers, no characters, no symbols,
no writing of any kind on any surface, no watermark, no signature, no border frame,
no patches, no badges, no uniform markings, no chest lettering, no insignia
No sunburst, no radiating rays, no rays from a single point, no fan of light,
no sun, no circular emblem, no badge, no rising-sun motif, no radial composition.
The background contains no radiating or fan-shaped light pattern of any kind.
All background geometry stays entirely behind the subject and never overlaps it.
The background elements are thin lines and hard-edged slabs placed in the upper left
and lower right areas, leaving open cream paper around the subject.

Omitting the anti-sunburst prohibition clause will cause the background to degrade into a rising-sun flag — this is the one-veto item for this style. Omitting the third clause will cause background color blocks to overlap the subject, making the equipment look incorrectly drawn.

Step 5: Invoke

Mode A:

{
  "image1": "<absolute photo path>",
  "input_fidelity": "high",
  "prompt": "<assembled prompt>",
  "quality": "high",
  "size": "1536x1024",
  "output_dir": "<workspace>/generated-images/military-aesthetic"
}

Mode B: Omit image1 and input_fidelity; the rest is the same.

Sizes: landscape 1536x1024; portrait 1024x1536; square 1024x1024.

Do not force a landscape photo into a square size — it is better to let the model recompose the composition, otherwise the subject will be cropped out.

Step 6: Quality Check

For each output, call ViewImage and check:

  1. Subject Integrity — Are the subject count, posture, gestures, and structure consistent with the original photo?
  2. Rising-Sun Flag Check (Veto) — Is there any fan-shaped radiating light, sun motif, circular radiating emblem, or any line structure emanating from a single point? If yes, regenerate regardless of other merits.
  3. Background Language — Is it diagonal color blocks / stepped terraces / industrial silhouettes / parallel line bundles / perspective grids of the Soviet geometric type, rather than radial patterns or realistic sky?
  4. Style Fidelity — Is it flat, hard-edged color blocks with thick black outlines? Any gradients, shadows, or realistic remnants?
  5. Color Palette — Is it locked within five colors (cream white background / vermilion red / black / ochre gold / a small amount of cobalt blue)?
  6. Print Texture — Halftone dots, paper grain, misregistration?
  7. Text Contamination — Are there garbled characters on the fuselage/equipment? (Most common failure point)
  8. Watermarks — The platform AI identifier in the bottom-right corner belongs to the tool layer and cannot be removed via prompt.

If any item fails, adjust the prompt per references/troubleshooting.md and regenerate.

Step 7: Deliver

Use present_files to deliver the generated images. Deliver only the image files themselves at one time. Do not include prompt templates, reference documents, or intermediate files.

In the response, explain: the extent of restoration, what issues occurred, and possible directions for further adjustments.

Batch Processing

  1. Collect all photo paths, process each according to Steps 4–6.
  2. Keep the style description segment of the prompt completely identical across the batch, only replacing the subject description segment — otherwise the style will drift across batch outputs.
  3. After batch generation, use scripts/contact_sheet.py to create a comparison image for easy selection:
python scripts/contact_sheet.py <image directory> -o <output collage path> --cols 3 --labels

Requires Pillow. Available interpreter on this machine (WorkBuddy's built-in Python does not have Pillow):

/c/Users/zhengyingjun/AppData/Local/Programs/Python/Python313/python.exe scripts/contact_sheet.py ...

Hard Constraints

  • No Rising-Sun Flag Language: Any radial lines spreading outward from a single point, fan-shaped light, sun motif, circular radiating emblem are strictly forbidden. Backgrounds must use diagonal color blocks / stepped terraces / industrial silhouettes / parallel line bundles / perspective grids. This takes precedence over any stylistic pursuit.
  • Do not add decorative elements (seals, corner marks, watermark-style markers, "Produced by" stamps) to the image. If the reference image does not have them, do not add them.
  • Do not generate any text, slogans, or numbers. Process the numbers on the original photo into solid color blocks instead of trying to reproduce them.
  • Do not downgrade "restore the photo content" to "redraw a similar scene" just because image-to-image results are suboptimal. The user wants his photo's composition.

Related Skills