clone-carousel
The full pipeline for cloning a winning Instagram carousel — fetch reference, analyze format, write specs, generate slides with baked typography, host on a CDN, caption, and publish.
When to invoke
- The user has a specific Instagram carousel URL they want to clone the format of for their own account
- They want every slide generated by one image model (gpt-image-2) including the typography — no Photoshop, no Figma, no overlay step
- The reference is a public Instagram post URL with at least 2 slides (single-image posts are out of scope; use a different skill)
- They have a connected Instagram account in Zernio and are ready to publish or push to drafts
This is the carousel sibling of clone-ad. It clones format, not photos. If the user wants original work researched from scratch in a niche, use generate-carousel instead.
Required environment variables
SCRAPE_CREATORS_API — required. Used to pull the reference Instagram post and download every carousel slide.
WAVESPEED_API_KEY — required. Image generation via gpt-image-2.
VIDJUTSU_API_KEY — required. CDN hosting via vidjutsu upload for stable public slide URLs the publisher can fetch.
ZERNIO_API_KEY — required. Publishes the carousel to the user's connected Instagram account.
The skill checks all four before any provider call. If a key is missing it stops with a signup link.
The pipeline (6 steps)
Read each recipe in order. Every recipe is a self-contained markdown file under recipes/.
- Fetch the reference post →
recipes/01-fetch-reference.md — Scrape Creators → caption + carousel children → download every slide locally
- Analyze the format →
recipes/02-analyze-format.md — read slides, write the format rules: cover does X, middle slides hold Y, closer does Z
- Write slide specs for the brand →
recipes/03-write-slide-specs.md — same format, fresh scenes, structured JSON one per slide
- Generate slides →
recipes/04-generate-slides.md — Wavespeed gpt-image-2 in parallel with safety-flag retry handling
- Host on a CDN →
recipes/05-host-slides.md — vidjutsu upload → stable cdn.vidjutsu.ai URLs
- Caption and publish →
recipes/06-caption-and-publish.md — Zernio create-post with publishNow: true and mediaType: CAROUSEL_ALBUM
Working directory layout
Outputs land in CWD/clone-carousel-<timestamp>/. See references/folder-structure.md.
Schema and endpoint references
references/folder-structure.md — canonical project layout
references/scrapecreators-instagram.md — the post-fetch endpoint and carousel-children parsing
references/format-rules.md — how to read a reference carousel and write the format rules an LLM can act on
references/slide-spec.md — JSON schema for a single slide (subject, environment, camera, lighting, typography string)
references/typography-rules.md — how to bake type into a gpt-image-2 prompt so headline, logo lockup, and CTA pill render in-image without garbling
references/wavespeed-gpt-image-2.md — endpoint, params, parallelism, content-moderation retry pattern
references/vidjutsu-cdn.md — uploading PNGs for a stable public URL
references/zernio-publish.md — create-post payload, the publishNow gotcha, draft vs. immediate publish, regenerating a single slide on a draft
Style guardrails
- One image model for everything. gpt-image-2 generates the photograph AND the typography in a single pass. No overlay step, no Photoshop, no Figma.
- Clone the format, not the photos. The reference is for structure (cover rule, middle-slide rule, closer rule). Substitute scenes for the user's brand. Never reproduce a reference image.
- Aspect ratio: 4:5 portrait at 2K. Native Instagram carousel size.
- Typography continuity across slides. Same color, same weight system, same single-italic-word motif if the reference uses one. Variation comes from the photograph, not the type.
- Caption mirrors the reference's structure, not its words. Same hook shape, same payoff length, same CTA mechanic — fresh content.
- Confirm before publishing. Surface the Zernio request body for user approval before firing the create-post call. Default to draft (far-future
scheduledFor) if the user hasn't said go.
Cost and time expectations
- Scrape Creators: ~$0.01 per reference fetch
- Wavespeed gpt-image-2 at 2K, 4:5: ~$0.02 per slide
- VidJutsu CDN upload: free per file
- Zernio publish: free per post
A 7-slide clone end-to-end: ~$0.15 in API costs, ~5–10 min wall time including a single regeneration loop on one slide.
Budget for one re-render if a slide gets flagged by gpt-image-2's safety filter (rewrite the spec with safer wording and resubmit) or if typography on the cover or closer renders garbled. Both are cheap and quick.
1---2name: clone-carousel3description: Clone a winning Instagram carousel end-to-end. Drop a reference post URL plus a brand or niche, and the skill scrapes the carousel with Scrape Creators, analyzes the format (cover rule, middle-slide rule, closer rule, caption pattern), writes fresh slide specs that hold the format but swap the scenes, generates every slide with Wavespeed gpt-image-2 (typography baked into the photograph in one pass), uploads to a public CDN, drafts a caption modeled on the reference, and publishes to Instagram via Zernio. Use when the user has seen a carousel that works and wants to ship a same-format carousel for their own brand without opening a design tool.4---56# clone-carousel78The full pipeline for cloning a winning Instagram carousel — fetch reference, analyze format, write specs, generate slides with baked typography, host on a CDN, caption, and publish.910## When to invoke1112- The user has a specific Instagram carousel URL they want to clone the format of for their own account13- They want every slide generated by one image model (gpt-image-2) including the typography — no Photoshop, no Figma, no overlay step14- The reference is a public Instagram post URL with at least 2 slides (single-image posts are out of scope; use a different skill)15- They have a connected Instagram account in Zernio and are ready to publish or push to drafts1617This is the carousel sibling of `clone-ad`. It clones format, not photos. If the user wants original work researched from scratch in a niche, use `generate-carousel` instead.1819## Required environment variables2021- `SCRAPE_CREATORS_API` — required. Used to pull the reference Instagram post and download every carousel slide.22- `WAVESPEED_API_KEY` — required. Image generation via gpt-image-2.23- `VIDJUTSU_API_KEY` — required. CDN hosting via `vidjutsu upload` for stable public slide URLs the publisher can fetch.24- `ZERNIO_API_KEY` — required. Publishes the carousel to the user's connected Instagram account.2526The skill checks all four before any provider call. If a key is missing it stops with a signup link.2728## The pipeline (6 steps)2930Read each recipe in order. Every recipe is a self-contained markdown file under `recipes/`.31321. **Fetch the reference post** → `recipes/01-fetch-reference.md` — Scrape Creators → caption + carousel children → download every slide locally332. **Analyze the format** → `recipes/02-analyze-format.md` — read slides, write the format rules: cover does X, middle slides hold Y, closer does Z343. **Write slide specs for the brand** → `recipes/03-write-slide-specs.md` — same format, fresh scenes, structured JSON one per slide354. **Generate slides** → `recipes/04-generate-slides.md` — Wavespeed gpt-image-2 in parallel with safety-flag retry handling365. **Host on a CDN** → `recipes/05-host-slides.md` — vidjutsu upload → stable cdn.vidjutsu.ai URLs376. **Caption and publish** → `recipes/06-caption-and-publish.md` — Zernio create-post with `publishNow: true` and `mediaType: CAROUSEL_ALBUM`3839## Working directory layout4041Outputs land in `CWD/clone-carousel-<timestamp>/`. See `references/folder-structure.md`.4243## Schema and endpoint references4445- `references/folder-structure.md` — canonical project layout46- `references/scrapecreators-instagram.md` — the post-fetch endpoint and carousel-children parsing47- `references/format-rules.md` — how to read a reference carousel and write the format rules an LLM can act on48- `references/slide-spec.md` — JSON schema for a single slide (subject, environment, camera, lighting, typography string)49- `references/typography-rules.md` — how to bake type into a gpt-image-2 prompt so headline, logo lockup, and CTA pill render in-image without garbling50- `references/wavespeed-gpt-image-2.md` — endpoint, params, parallelism, content-moderation retry pattern51- `references/vidjutsu-cdn.md` — uploading PNGs for a stable public URL52- `references/zernio-publish.md` — create-post payload, the `publishNow` gotcha, draft vs. immediate publish, regenerating a single slide on a draft5354## Style guardrails5556- **One image model for everything.** gpt-image-2 generates the photograph AND the typography in a single pass. No overlay step, no Photoshop, no Figma.57- **Clone the format, not the photos.** The reference is for structure (cover rule, middle-slide rule, closer rule). Substitute scenes for the user's brand. Never reproduce a reference image.58- **Aspect ratio:** 4:5 portrait at 2K. Native Instagram carousel size.59- **Typography continuity across slides.** Same color, same weight system, same single-italic-word motif if the reference uses one. Variation comes from the photograph, not the type.60- **Caption mirrors the reference's structure**, not its words. Same hook shape, same payoff length, same CTA mechanic — fresh content.61- **Confirm before publishing.** Surface the Zernio request body for user approval before firing the create-post call. Default to draft (far-future `scheduledFor`) if the user hasn't said go.6263## Cost and time expectations6465- Scrape Creators: ~$0.01 per reference fetch66- Wavespeed gpt-image-2 at 2K, 4:5: ~$0.02 per slide67- VidJutsu CDN upload: free per file68- Zernio publish: free per post6970A 7-slide clone end-to-end: ~$0.15 in API costs, ~5–10 min wall time including a single regeneration loop on one slide.7172Budget for one re-render if a slide gets flagged by gpt-image-2's safety filter (rewrite the spec with safer wording and resubmit) or if typography on the cover or closer renders garbled. Both are cheap and quick.