Overview
This is a skill that generates 13-section emotional journey detail page images and creates them into a vertically composited PNG. Using moai-media:higgsfield-image as the backend, it creates 13 section images with a consistent visual tone per category, and produces a single 1080×12720 composite image with Pillow as the sole dependency.
Trigger Keywords
detail page image, sangpye image, 13-section image, 1080 12720, detail page composite, product detail image, combined.png, sangpye composite, e-commerce image composite
Prerequisites
- Pillow installation:
pip install Pilloworuv pip install Pillow- Python 3.10+ environment
- No other dependencies (NumPy not required)
-
moai-media plugin enabled: use higgsfield-image for 13-section image generation
- Or the user separately prepares 13 section images and provides the folder path
-
1-14 product photos: actual product reference (optional but recommended)
Workflow
Step 1: Collect Input
Secure the following:
- 13-section copy JSON (
detail-page-copyskill output) - Paths to 1-14 product photos
- Category (electronics/fashion/food/beauty/home/supplement/pet/kids/handmade/general)
- ProductDNA (optional,
product-photo-briefskill output) - Output directory (default:
./commerce-output/{job_id}/)
Step 2: Generate 13-Section Image Prompts
Combine each section's copy and the category visual brief to write higgsfield-image prompts.
references/image-prompts.md reference (per-section visual language, composite guide).
Each section has a unique visual language:
- Hero: cinematic_product_portrait — full-bleed + dramatic rim light
- Pain: emotional_photography_no_product — dark tone, no product shown
- Problem: clinical_infographic — clean infographic
- Story: editorial_split_before_after — Before/After left-right split
- Solution: product_beauty_shot — studio beauty shot
- How: illustrated_step_sequence — 3-step illustration
- Proof: magazine_spread — magazine spread
- Authority: portrait_with_quote — portrait + quote
- Benefits: icon_grid_with_lifestyle — icon grid + lifestyle
- Risk: document_with_seal — document·certification style
- Compare: split_screen_vs — 50/50 split comparison
- Filter: checklist_visual — checklist visualization
- CTA: urgent_product_reveal — urgency + price emphasis
Step 3: Image Generation (moai-media:higgsfield-image)
Generation strategy:
- Width of each section: 1080px
- Height per section:
references/sections-spec.mdSee table (Hero 1600-Filter 700) - Inject category visual brief (electronics/fashion/...) into all prompts
- Pass product reference photos to higgsfield-image's image-to-image mode
Save generation results from output_dir/{job_id}/sections/01_hero.png to 13_cta.png .
On generation failure: the corresponding section is filled with a dark placeholder (40,40,40) and compositing proceeds.
Step 4: 1080×12720 compositing (scripts/compose.py)
python scripts/compose.py \
--sections-dir ./commerce-output/{job_id}/sections/ \
--output ./commerce-output/{job_id}/combined.png
Script behavior:
- Load the 13 section PNGs in order
- Resize each section to the standard width of 1080 (preserve aspect ratio + center crop)
- Adjust to the standard height per section
- Stitch vertically to create a single 1080×12720 PNG
- Missing sections are replaced with a
(40,40,40)dark placeholder
For the detailed algorithm, see scripts/compose.py와 scripts/README.md .
Step 5: Output report
{
"job_id": "a1b2c3d4",
"output_dir": "/abs/.../commerce-output/a1b2c3d4",
"combined": "/abs/.../combined.png",
"sections": [
"/abs/.../sections/01_hero.png",
"...",
"/abs/.../sections/13_cta.png"
],
"failed_sections": [],
"elapsed_sec": 0,
"size": "1080x12720"
}
failed_sectionsIf is not empty, guide the user on the following:
- Which sections failed
- Whether it automatically resumes when rerun with the same
--output --job-id(resume is done by the user manually regenerating only that section)
Output file structure
./commerce-output/{job_id}/
├── analysis.json # 13섹션 카피 + 프롬프트 + ProductDNA
├── sections/ # 13장 섹션 (1080×가변)
│ ├── 01_hero.png (1080×1600)
│ ├── 02_pain.png (1080×800)
│ ├── ...
│ └── 13_cta.png (1080×900)
└── combined.png # 1080×12720 세로 합성본
scripts/compose.py usage
For detailed usage, see scripts/README.md . Key commands:
# 13장이 sections/ 폴더에 01_hero.png ~ 13_cta.png로 있을 때
python scripts/compose.py \
--sections-dir ./commerce-output/abc12345/sections/ \
--output ./commerce-output/abc12345/combined.png
Options:
--width INT: Output width (default 1080)--placeholder-color "R,G,B": Missing section placeholder color (default "40,40,40")--quiet: Suppress progress logs
Usage examples
- "Composite a 13-section image with this copy result"
- "Create a 1080 12720 detail page with 5 product photos"
- "electronics category, wireless earbuds detail page image full set"
Related skills
moai-commerce:detail-page-copy— 13-section copy generation (input to this skill)moai-commerce:product-photo-brief— Product photo pre-analysis- 13-section image generation — Higgsfield MCP(Soul·Cinematic Image·Character) direct call
moai-commerce:marketplace-coupang— Image spec guide per channel
When not to use this skill
- When only copy is needed:
detail-page-copyuse standalone - When only a single product shot is needed: Higgsfield MCP direct call
- Video generation: Higgsfield MCP(DOP·Soul) direct call
- shadcn/ui-based web detail page:
moai-content:product-detail
License
MIT.