Slide Images
Images for slides are generated or sourced through the Slides actions and the Assets app. The runtime agent must use the Assets-grounded path described below; the local CLI is only a developer entry point.
Scripts
| Script | Purpose | Example |
|---|---|---|
generate-image |
Local helper for the Assets-grounded generation action | pnpm action generate-image --prompt "hero image" --count 3 |
search-images |
Search Google Images via the configured provider | pnpm action search-images --q "Acme logo transparent" --count 5 |
search-logos |
Resolve company domains and canonical logo URLs | pnpm action search-logos --q "Acme" |
image-gen-status |
Check configured image providers | pnpm action image-gen-status |
Image Generation Flow
For agent or editor generation, call generate-image-api, not a provider or
legacy image action directly:
- Resolve the deck's active design system, its
imageStyle, the current slide role, and any approved Creative Context references. - Call
generate-image-apiwith the prompt plus bounded deck and slide context. Assets chooses the library, preset, style anchors, model, and fallback behavior while preserving provenance. - Show each returned variation as an inline rendered preview using markdown
image syntax (
), not a plain link ([Variation 1](url)) — the chat renders![]()as an actual image but[]()as a bare link. - Preserve the returned
assetId,runId,previewUrl, anddownloadUrl. - For direct insertion, call
generate-image-apiwithinsertIntoSlide: true,deckId, andslideId. Only say the image was added when it returnsinserted: true; a preview URL is not proof of a slide write. - For preview-only variations, place the chosen URL with
update-slide, then re-read the deck withget-deckusingcompact=falseand confirm the persisted HTML contains the image source before reporting success. - For feedback, refine the same asset rather than starting an unrelated run.
Context to pass
The image brief should include the visual role, subject, composition/crop,
format, must-preserve content, and exclusions. Pass deckId, slideId, and
slideContent so Assets can ground the result in the actual slide. Do not use
generic style references to override a linked design system or preset.
search-images and search-logos remain bounded lookup tools for finding
existing media. They are not a substitute for the active design system or a
style-generation brief.
Logo Lookup
Two options for company logos:
Option 1: canonical logo search (uses Logo.dev search when configured and a bounded domain fallback otherwise):
pnpm action search-logos --q "Acme"
Use a returned logoUrl directly. Do not call a second logo-provider action for
each result.
Option 2: Google Image Search (fallback):
pnpm action search-images --q "Acme logo transparent" --count 5
Important Rules
- Use the active design system, library, preset, and approved style anchors for visual consistency; do not invent a second style language in the prompt
- Use
.fmd-img-placeholderdivs in slides before real images are generated - Use one canonical provider action per conceptual search; do not loop legacy provider scripts or manually guess provider URLs
- Never claim image insertion from a generation response alone; require the
verified
inserted: trueresponse, or anupdate-slideplusget-deckcompact=falseverification for preview-only placement