Identity-preserving youth-culture, fashion, music, idol, and editorial portrait posters from a required uploaded portrait. Built for AI image agents (Codex, Claude, etc.) that compose production-grade generation prompts.
| Version | Skill | Behavior |
|---|---|---|
| v1.0 | $portrait-trend-poster |
Overlay palette, typography, material, composition on a supplied portrait. No identity change. |
| v2.0 | $portrait-trend-poster-glam |
Optional celebrity-level transformation on top of v1: editorial wardrobe, studio lighting, controlled environment, editorial makeup. Identity preserved. |
The parent agent decides which to invoke based on user keywords and consent.
Any of these in the user prompt routes to glam mode (after consent check):
明星级, 明星海报, glam, celebrity, magazine cover, 棚拍大片, fashion cover, editorial portrait
Explicit mode: glam always wins. Explicit mode: preserve always overrides glam keywords.
Glam stages 2 (styling) and 3 (makeup) require explicit opt-in. Stages 1 (source prep) and 4 (style overlay) are on by default. Without consent, glam mode stops and asks for acknowledgment.
glam.consent: yes
glam.wardrobe: on
glam.makeup: off
Hard refusals (no generation, stops):
- non-consented glam
- identity replacement request
- ethnicity alteration
- celebrity impersonation
- facial anatomy change
- signature accessory invention
portrait-trend-poster/
├── SKILL.md # v1 entry point
├── agents/openai.yaml # v1 invocation metadata
├── design-system/ # 6 catalogs (colors, typography, ...)
├── evals/ # 12 v1 behavioral cases
├── scripts/ # v1 validators
├── examples/ # 4 v1 recipe + render pairs
└── glam/ # v2.0 subskill
├── SKILL.md
├── agents/openai.yaml
├── design-system/
│ ├── stylings.json # wardrobes, lightings, environments, makeup
│ └── glam-consent.json # stages, keywords, hard refusals
├── evals/ # 8 glam cases
├── scripts/ # glam validators
└── examples/ # 4 glam recipes
python portrait-trend-poster/scripts/validate_design_system.py
python portrait-trend-poster/scripts/validate_evals.py
python portrait-trend-poster/glam/scripts/validate_glam.py
python portrait-trend-poster/glam/scripts/validate_glam_evals.py
python -m unittest discover -s tests -vAll four scripts and the 63-test worktree-root suite must pass. Tests enforce byte-identical v1 SKILL.md, byte-reproducible release archive, and locked catalog contracts.
dist/portrait-trend-poster-v0.1.zip is the byte-reproducible archive built from git archive --format=zip --mtime=@1798912800 HEAD portrait-trend-poster with SOURCE_DATE_EPOCH=1798912800.
The skill produces prompts, not images. Pair it with an image-generation model (GPT-Image, Flux, Midjourney, Stable Diffusion, Codex ImageGen) to render the final raster.
v2.0. Glam is best-effort: image-model faithfulness for wardrobe / environment / makeup swap is not guaranteed. Identity preservation is enforced by must_not_glam in every glam eval case.