# Deck image generation QA notes

Use these notes when generating images for pitch decks or other user-facing visual artifacts.

## Trigger

- User asks to generate images for a deck/site/visual identity and integrate them into HTML/PDF.
- User complains that previous generations are generic, off-brand, or visually bad.

## Required workflow

1. Generate a small test image first when changing model/provider/style.
2. Run visual QA before scaling up. Do not treat successful generation as acceptable output.
3. Create a contact sheet for batches and inspect every candidate before integration.
4. Classify each image explicitly: `KEEP`, `REJECT`, or `USE ONLY CROPPED/BLURRED`.
5. Reject or regenerate images with:
   - fake text, glyphs, logos, watermarks, bad UI labels
   - generic stock-photo / corporate-headshot feeling when the user requested character specificity
   - bad hands, uncanny faces, awkward mirror/reflection artifacts
   - oversexualized outputs unless explicitly requested
   - off-brand mood for the deck positioning
6. Integrate only the approved set, then render the full deck to screenshots/contact sheet and QA all slides before sharing the URL.

## Prompting lesson from this session

For a premium creator/model deck, generic terms like `luxury digital creator` produce polished but bland imagery. Add character specificity and setting details, e.g. `Venezuelan woman`, `warm olive/tan skin`, `long dark wavy hair`, `subtle gold jewelry`, `Caribbean-Latin warmth`, `Caracas luxury apartment mood`, while still forbidding text/logos and explicit poses.

## Nano Banana 2 lesson

Nano Banana 2 produced more incarnated character images than local SD/Z-Image for this use case. A good pattern was:

- Generate one strong portrait.
- QA it.
- Optionally use it as a reference image for identity inspiration, but abort if partner calls stall or reflections/hands degrade.
- Continue with text-only prompts that include the same character descriptors if reference mode is too slow.

## Team portrait QA (Nano Banana 2)

When generating premium studio portraits from real team member photos:

1. Upload each reference photo with a UNIQUE filename (the upload endpoint does
   not overwrite — see pitfall #19 in SKILL.md).
2. Generate 2-3 variants per person minimum.
3. Send ALL variants to the user via Telegram for visual selection — do not
   assume the first acceptable output is good enough. Identity preservation
   failures are common and the user is the only reliable judge of resemblance.
4. If the user rejects all variants, ask for more reference photos (different
   angles, lighting, contexts) and repeat. 4+ reference photos may be needed.
5. Do NOT auto-integrate a portrait into the deck before the user confirms it
   resembles the person. A wrong face in a team slide undermines credibility.

## Integration pattern

Keep older deck versions intact. Write a new HTML file per major visual direction, for example:

- `*_zimage_deck.html`
- `*_nano_venezolana_deck.html`

This preserves rollback options and lets the user compare directions.

## HTML deck slide management

When adding or removing slides from an HTML deck with slide counters and nav
jumps:

- Update ALL slide counters (e.g., `01 / 10` → `01 / 11`) — use `sed` per slide
  number, not a global replace that might hit aspect ratios like `16 / 9`.
- Update the progress bar formula (`var(--i) / N` where N = total slides - 1).
- Update `data-jump` attributes on navigation buttons for affected slides.
- The catch-all `data-jump` values are 0-indexed slide positions.