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
| Mode | Condition | image1 Parameter |
|---|---|---|
| A. Photo to Poster | User provides a photo path | Pass absolute photo path, input_fidelity: "high" |
| B. From Scratch | User wants finished pieces in this style only | Do 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:
- Subject Integrity — Are the subject count, posture, gestures, and structure consistent with the original photo?
- 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.
- 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?
- Style Fidelity — Is it flat, hard-edged color blocks with thick black outlines? Any gradients, shadows, or realistic remnants?
- Color Palette — Is it locked within five colors (cream white background / vermilion red / black / ochre gold / a small amount of cobalt blue)?
- Print Texture — Halftone dots, paper grain, misregistration?
- Text Contamination — Are there garbled characters on the fuselage/equipment? (Most common failure point)
- 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
- Collect all photo paths, process each according to Steps 4–6.
- 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.
- After batch generation, use
scripts/contact_sheet.pyto 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.