# Clone Carousel

> 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.

- Skill: `tfcbot/clone-carousel` (Agent Skill, multi-file: 15 files)
- Install (CLI): `npx skillmds@latest add tfcbot/clone-carousel`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tfcbot/clone-carousel/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Design & Media
- Author: tfcbot (https://skillmd.com/u/tfcbot)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tfcbot/clone-carousel

---


# 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/`.

1. **Fetch the reference post** → `recipes/01-fetch-reference.md` — Scrape Creators → caption + carousel children → download every slide locally
2. **Analyze the format** → `recipes/02-analyze-format.md` — read slides, write the format rules: cover does X, middle slides hold Y, closer does Z
3. **Write slide specs for the brand** → `recipes/03-write-slide-specs.md` — same format, fresh scenes, structured JSON one per slide
4. **Generate slides** → `recipes/04-generate-slides.md` — Wavespeed gpt-image-2 in parallel with safety-flag retry handling
5. **Host on a CDN** → `recipes/05-host-slides.md` — vidjutsu upload → stable cdn.vidjutsu.ai URLs
6. **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.

