From eachlabs-skills
Generate Meta (Facebook & Instagram) ad creatives using each::sense AI. Create feed ads, stories, reels, carousel images, and video ads optimized for Meta's ad formats and best practices.
npx claudepluginhub joshuarweaver/cascade-content-creation-misc-1 --plugin eachlabs-skillsThis skill uses the workspace's default tool permissions.
Generate high-converting Meta (Facebook & Instagram) ad creatives using each::sense. This skill creates images and videos optimized for Meta's ad placements, formats, and best practices.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Generate high-converting Meta (Facebook & Instagram) ad creatives using each::sense. This skill creates images and videos optimized for Meta's ad placements, formats, and best practices.
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a Facebook feed ad for a fitness app showing someone working out with energetic vibes, include space for headline text"}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
| Placement | Aspect Ratio | Recommended Size | Use Case |
|---|---|---|---|
| Feed (Image) | 1:1 | 1080x1080 | Product ads, brand awareness |
| Feed (Image) | 4:5 | 1080x1350 | More vertical space, higher engagement |
| Feed (Video) | 1:1 or 4:5 | 1080x1080 or 1080x1350 | Product demos, testimonials |
| Stories/Reels | 9:16 | 1080x1920 | Full-screen immersive ads |
| Carousel | 1:1 | 1080x1080 | Product catalogs, features |
| Right Column | 1.91:1 | 1200x628 | Desktop sidebar ads |
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Facebook product ad for wireless earbuds. Show the earbuds on a clean minimal background with lifestyle context - someone at a gym or running. Modern, premium feel. Leave space at top for headline."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 9:16 Instagram Stories ad for a skincare brand. Show a woman with glowing skin, soft natural lighting, minimalist aesthetic. Leave safe zones at top and bottom for UI elements."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 5 second 1:1 video ad for a coffee subscription service. Show steaming coffee being poured, cozy morning vibes, warm color grading. Eye-catching for autoplay without sound."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
# First image
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 carousel ad image 1 of 4 for a furniture store. Show a modern sofa in a stylish living room. Clean, aspirational lifestyle photography style."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "carousel-furniture-001"
}'
# Second image (same session for consistency)
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create carousel image 2 of 4. Show a dining table set in the same style as the previous image. Maintain consistent lighting and aesthetic."}],
"model": "eachsense/beta",
"stream": true,
"session_id": "carousel-furniture-001"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 9:16 vertical video ad for Instagram Reels. Fashion brand summer collection - show a model walking on a beach in a flowing dress, cinematic slow motion, golden hour lighting. 5 seconds."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 4:5 Facebook ad for a meditation app. Show a peaceful person meditating in nature, soft morning light, calming colors (blues and greens). Include visual space for app store badges and CTA button."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Facebook ad for an Italian restaurant. Show a delicious pasta dish with steam rising, rustic table setting, warm inviting atmosphere. Food photography style, make it look appetizing."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Facebook lead gen ad for a B2B SaaS product. Show a professional working on a laptop with data visualizations, modern office environment, confident and productive mood. Corporate but not boring."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a UGC-style 9:16 video ad for a teeth whitening product. Show a young woman doing a selfie-style testimonial, authentic iPhone footage look, bathroom mirror setting, before/after reveal moment. 10 seconds."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max"
}'
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 retargeting ad for sneakers. Show white sneakers prominently with a lifestyle background (urban street scene). Add visual urgency - style that says limited time offer. Clean product focus."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"image_urls": ["https://example.com/product-sneakers.jpg"]
}'
When creating Meta ad creatives, include these details in your prompt:
"Create a [aspect ratio] [placement] ad for [product/service].
Show [visual description] with [mood/style].
Target audience: [demographic].
[Additional requirements like text space, brand colors, etc.]"
Ask your users before generating:
"Do you want fast & cheap, or high quality?"
| Mode | Best For | Speed | Quality |
|---|---|---|---|
max | Final ad creatives, A/B testing winners | Slower | Highest |
eco | Quick drafts, concept exploration, bulk testing | Faster | Good |
Use session_id to iterate on ad creatives:
# Initial creative
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 Facebook ad for a watch brand, luxury feel"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "watch-ad-project"
}'
# Iterate based on feedback
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Make it more dramatic with darker background, add some bokeh lights"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "watch-ad-project"
}'
# Request variation
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create 2 more variations of this ad with different angles"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "watch-ad-project"
}'
Generate multiple variations for testing:
# Variation A - Lifestyle focus
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 ad for protein powder - lifestyle shot with athlete in gym"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco"
}'
# Variation B - Product focus
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 ad for protein powder - clean product shot with ingredients"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco"
}'
# Variation C - Benefit focus
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create a 1:1 ad for protein powder - before/after transformation style"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco"
}'
| Error | Cause | Solution |
|---|---|---|
Failed to create prediction: HTTP 422 | Insufficient balance | Top up at eachlabs.ai |
| Content policy violation | Prohibited content | Adjust prompt to comply with Meta ad policies |
| Timeout | Complex generation | Set client timeout to minimum 10 minutes |
each-sense - Core API documentationgoogle-ad-creative-generation - Google Ads creativestiktok-ad-creative-generation - TikTok ad creativesproduct-photo-generation - E-commerce product shots