skills/team-group-photo/SKILL.md
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.
npx skillsauth add b-open-io/gemskills team-group-photoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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--inputdevelopment
This skill should be used when the user asks to "plan a workflow", "diagram an agent system", "visualize an architecture", "map out a pipeline", "create a flow diagram", "draw agent connections", "design a multi-agent system", "show how agents interact", "make a system diagram", "visualize a data pipeline", "map out a process", "diagram my workflow", "create an architecture diagram", "plan agent orchestration", "brainstorm a system design", "show the flow between components", "interactive workflow diagram", "workflow canvas", "visual-planner", "open in tldraw", or "plan this project visually". Produces tldraw .tldr diagrams natively — the standard infinite canvas format. Includes a thin playground wrapper with planning-specific UI (phase controls, agent assignment, KPI bar, agent callback bridge) and an "Open in tldraw" button for standalone editing.
data-ai
This skill should be used when the user asks to "upscale an image", "increase image resolution", "make image bigger", "enlarge image", or "enhance image resolution". Requires Vertex AI credentials.
development
This skill should be used when the user asks to "add a new style", "create a style", "add an art style", "new aesthetic", "custom style", "make a style for", or needs to add a new art style to the gemskills style library. Guides the complete workflow from defining the style to generating and optimizing the reference tile.
data-ai
This skill should be used when the user asks to "segment an image", "identify objects", "extract objects", "generate masks", "find objects in image", or needs AI-powered image segmentation.