Plan and run campaign-level marketing asset production with genmedia. Use this for launch kits, campaign matrices, paid social variants, landing-page visuals, email and banner imagery, hook/proof/conversion assets, creator ad packages, and channel-specific marketing deliverables.
Use this skill when the user wants a campaign system, not one isolated asset. Load references as needed:
references/campaign-patterns.mdreferences/workflows.mdreferences/examples.mdLoad model-routing alongside this skill for default endpoint choices.
Marketing output should be executable: a brief, asset matrix, genmedia command plan, downloaded files, and clear defects. Do not add fake claims, fake social proof, fake partner logos, fake award badges, or invented legal copy.
Only ask when missing details would change the asset plan.
Start from routed endpoint IDs.
genmedia models --endpoint_id openai/gpt-image-2 --json
genmedia models --endpoint_id fal-ai/nano-banana-pro/edit --json
genmedia models --endpoint_id fal-ai/nano-banana-2 --json
genmedia models --endpoint_id bytedance/seedance-2.0/image-to-video --json
genmedia models --endpoint_id bytedance/seedance-2.0/text-to-video --json
genmedia models --endpoint_id veed/fabric-1.0 --json
Use text search only as fallback discovery for a missing channel role:
genmedia models "marketing banner image typography" --json
genmedia models "social ad video product campaign" --json
genmedia docs "image generation text rendering" --json
Inspect the selected endpoint before planning exact payloads.
genmedia schema <endpoint_id> --json
genmedia pricing <endpoint_id> --json
Upload all source media.
genmedia upload ./product.png --json
genmedia upload ./logo.svg --json
genmedia upload ./screenshot.png --json
genmedia upload ./creator.jpg --json
Build the campaign matrix before generating.
Minimum matrix:
Run still assets synchronously when quick.
genmedia run <endpoint_id> \
--prompt "<marketing asset prompt>" \
--download "./outputs/marketing/{request_id}_{index}.{ext}" \
--json
Run video assets async and download from status.
genmedia run <endpoint_id> \
--prompt "<campaign video prompt>" \
--async \
--json
genmedia status <endpoint_id> <request_id> \
--download "./outputs/marketing/{request_id}_{index}.{ext}" \
--json
Use schema fields exactly. Do not pass guessed flags. Mirror names such as
image_urls, image_url, reference_image_url, aspect_ratio,
duration, quality, seed, prompt, or negative_prompt.
Build the campaign brief before prompts:
Write every asset prompt in this order:
openai/gpt-image-2 at quality=high.openai/gpt-image-2, then
fal-ai/nano-banana-pro, then fal-ai/nano-banana-2.fal-ai/nano-banana-pro/edit, then
openai/gpt-image-2/edit, then
fal-ai/bytedance/seedream/v5/lite/edit.fal-ai/flux-2/klein/9b.bytedance/seedance-2.0/image-to-video.bytedance/seedance-2.0/text-to-video.ugc and use veed/fabric-1.0,
veed/fabric-1.0/text, or fal-ai/creatify/aurora.storytelling.commercial.Before returning:
downloaded_files[].If the campaign feels generic, reduce the asset count and make each role more specific before generating more variants.
skillbazaar install marketing --agent claudeSign in (free) to install skills with the CLI.
Published by