This skill should be used when the user asks to "create team photo", "generate group portrait", "make team banner", "team image in any style", "group shot with multiple people", or needs a composite image featuring multiple team members arranged together in any art style.
From gemskillsnpx claudepluginhub b-open-io/claude-plugins --plugin gemskillsThis skill uses the workspace's default tool permissions.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
Generate team group portraits by first creating individual styled portraits, then compositing them into a group scene. Supports any art style from the 169 style library.
Do not skip steps. Prompt the user for anything not provided.
Ask the user for the following. Do not proceed until all required inputs are collected:
If the user hasn't provided headshots, ask for them. Do not use previously styled/generated images as source material - always start from original photos.
Launch the interactive style picker so the user can choose a style for individual portraits:
STYLE_JSON=$(bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/scripts/preview_server.ts --pick --port=3456)
The picker opens a browser. The user clicks a style and STYLE_JSON receives:
{
"id": "sci-fi-pulp",
"shortName": "sfpl",
"name": "Sci-Fi Pulp",
"promptHints": "retro science fiction, chrome spaceships..."
}
If the user already specified a style (e.g. "make it in pixel art"), skip the picker and use --style <id> directly.
For each team member, generate an individual portrait using the selected style. Use the generate-image script with each person's original headshot as input:
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts \
"[Style name] portrait of [Name]. Transfer exact likeness from the reference photo. [Style-specific details]. No text. No border." \
--style <style-id> \
--input /path/to/original-headshot.png \
--size 1K \
--output /path/to/output/name-styled.png
Repeat for each team member. Show each result to the user for approval before continuing.
Ask the user: "Use the same style for the group photo, or pick a different one?"
Use all individual styled portraits as inputs along with the background:
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts \
"[Style name] team group portrait. Arrange left to right: [Name1], [Name2], [etc]. Transfer exact likeness from each input reference. [Background instruction]. Uniform [style] style. No text. No border." \
--style <style-id> \
--input /path/to/name1-styled.png \
--input /path/to/name2-styled.png \
--input /path/to/name3-styled.png \
--input /path/to/background.png \
--aspect 16:9 --size 2K \
--output /path/to/output/team-group.png
If the user provided a background image, include it as --input and say "Use the background image exactly" in the prompt. If no background image, describe the scene in the prompt instead.
Run the optimize-images script on all generated outputs. Save both original and optimized copies:
IMAGES_DIR=/path/to/output bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/optimize-images/scripts/optimize-images.ts
Report file sizes before and after optimization.
Do not read generated images back into context. Scripts output only file paths. Ask the user to visually inspect individual portraits and group composites before proceeding to the next step. To inspect programmatically, optimize images first (via Step 6). Reading multiple uncompressed portrait and group images will quickly exhaust the context window.
DO NOT describe faces in the prompt. The more facial features are described, the more the model GENERATES new faces instead of TRANSFERRING likeness from input images.
--input flagsBAD - Describing faces:
1. **KURT** - Bald head, brown beard, navy suit, friendly smile
2. **LUKE** - Dark curly hair, beard, pink shirt
GOOD - Simple transfer instruction:
"Transfer exact likeness from each input reference"
For theme-aware websites, generate both variants by running Step 5 twice:
Same individual portraits, different background input.
--style <id> - Art style from the style library (pixel-art, simpsons, studio-ghibli, etc.)--input <path> - Reference image (up to 14 total)--aspect <ratio> - 1:1, 16:9, 9:16, 4:3, 3:4, 21:9--size <1K|2K|4K> - Image resolution--output <path> - Output file path--input