TikTok Photo Mode & Instagram Slideshow Generator
Step 0. Steer Weak Prompts Out of AI Poster Slop (Mandatory First Gate)
TikTok and Instagram users spot Midjourney/ChatGPT slop in under half a second: waxy HDR food with fake volumetric steam, golden-hour bokeh lanterns, screaming ALL-CAPS YouTube-thumbnail text, red paint-brush splatters behind prices ($9 / $45), neon glowing text, slanted sport ribbons, and "The secret isn't X — it's Y" hooks.
Before planning slides, read references/anti-slop.md and lock one clean, human-grade visual system:
- Editorial Print & 35mm Film (Kinfolk, Cereal, Monocle): matte warm paper
#F5F3EE, carbon ink#141413, 1 restrained accent (#C83E2Bvermilion or#1D4ED8cobalt), clean sentence-case typography set in a solid paper band above or beside natural, unretouched 35mm documentary photography. (Food, travel, lifestyle, culture, books) - Minimal Product & App Frame (Linear, Apple, Cash App): flat
#0B0C0Ecarbon or#F7F7F8cool stone,1pxsubtle border, real pixel-exact app/website screenshots composited viaplaceImages(cover: true), sentence-case neo-grotesque type. (Apps, SaaS, tools, tutorials, ad creative) - Clean Studio Object (Dieter Rams, Glossier, Teenage Engineering): seamless matte neutral or single-hue studio backdrop (
#ECEAE4stone or official brand hex), one real tactile object with natural studio shadows, crisp sentence-case type,>= 40%negative space. (Products, hardware, e-commerce)
Three Hard Restraint Invariants
- Max 3 elements per slide +
>= 35%open breathing room: (1) tiny plain-text index (01 / 06without a pill box), (2) sentence-case headline (<= 7words on Slide 1;<= 16words on interior slides) set on a clean solid band or quiet negative space — never plastered over busy photo detail, and (3) one real photo, crisp UI crop, or studio object. - Real photography & exact UI pixels — never waxy AI CGI:
What is this slide about? ├── An app, site, pricing page, or product page with a public URL │ → screenshotUrl = that URL inside a clean 1px frame (no cartoon window chrome). │ Paste exact untouched pixels afterward with genppt_revise_slides(placeImages, cover: true). ├── A real person (founder, creator, public figure) │ → imageUrl = Wikimedia Commons or official press portrait on this slide only. ├── A place, city, street, dish, or physical setting │ → imageUrl of a real unretouched photo, else unsplashQuery for real places/environments │ (concrete noun phrase <=120 chars). Never ask for CGI steam, bokeh, or HDR food. └── A number or before/after comparison → flat 2D comparison card or clean split of two real photos/screenshots, stating each figure once. - Copy & visual anti-slop blocklist:
- Copy: Zero em dashes (
—) or spaced en dashes (–). Ban"isn't X, it's Y","The secret isn't...","Hits Harder","3 tools that feel illegal to know","The Real X:", and"Brutal Truths". State the concrete fact directly. - Visuals: Ban ALL-CAPS condensed thumbnail shouting, paint-brush price splatters, slanted ribbons, comic sticker tape, neon glowing text, HUD telemetry bars, echoed stat pills, dark edge vignettes, and waxy HDR CGI food/faces.
- Copy: Zero em dashes (
Step 1. Pick Aspect Ratio & Safe Zone by Surface
Which surface is this slideshow targeting?
├── TikTok Photo Mode / Instagram Stories / Reels Slide Sequence
│ ├── Aspect ratio → 9:16 (1080×1920)
│ ├── Slide count → 5–8 slides (default 6)
│ └── Mandatory UI Safe Zone:
│ • Top 15% clear (FYP tabs / Story progress bars)
│ • Right 20% clear on TikTok & Reels (avatar, like, comment, save, share stack)
│ • Bottom 28% clear (handle, caption, audio ticker, Story reply bar)
│ • Place all text, logos, and UI frames strictly inside x 6–78%, y 16–70%.
└── Instagram Feed Carousel (or Meta 4:5 Carousel Ad)
├── Aspect ratio → 4:5 (1080×1350)
├── Slide count → 6–10 slides (up to 10 via Graph API; up to 20 manual)
└── Safe Zone → 56px all-around margin; top-right clear of "1/10" pill
Step 2. Sequence the Swipe Loop
- Slide 1 (Specific Hook,
<= 7words): Clean sentence-case claim naming the concrete price, place, or mechanism ("Why $9 Tokyo tonkotsu coats like ragu") paired with the strongest unretouched photo or real UI frame. - Slide 2 (Concrete Proof,
<= 16words): 1 real screenshot, receipt, or side-by-side comparison backing Slide 1. - Slides 3 to N−1 (One Idea Per Swipe,
<= 16words): Plain01,02,03numerals, one distinct visual per frame, zero repeated layouts back-to-back. - Slide N (Clean Save Card): Compact recap checklist or itinerary table on matte paper that earns saves on merit (no
"smash follow"filler).
Step 3. Gather Visual Assets & Write Restrained artDirection
- Verify every
websiteUrls/screenshotUrlloads logged out without cookie/login walls; scope portraits strictly toslides[].imageUrland deck-wide logos toreferenceImageUrls. - Write
artDirectionwith exact Step 0 surface/ink/accent hexes, sentence-case type, safe-zone bounds (x 6–78%, y 16–70%on9:16or56pxmargin on4:5), and explicit bans on ALL-CAPS shouting, paint-brush price splatters, slanted ribbons, neon glow, HUD bars, vignettes, and waxy HDR/steam/bokeh.
Step 4. Render, Run Anti-Slop QA & Paste Real Pixels (placeImages)
- Call
genppt_create_slideshow(https://genppt.com/mcp) withaspectRatio,title,slides,websiteUrls,referenceImageUrls,artDirection, andautoRender: true, thengenppt_get_deck(waitSeconds: 45) untilphase === "ready". - Inspect every rendered
slideImageUrlsframe:- If any webpage/app screenshot was redrawn into cartoon UI or any real photo turned waxy, call
genppt_revise_slideswithplaceImages(cover: true, inside safe-zone coordinates such as{ x: 0.07, y: 0.34, width: 0.68, height: 0.36, cover: true }on9:16) to paste exact pixels synchronously. - Revise any slide with visual/copy slop, echoed stat badges, em dashes, or safe-zone collisions (max 2 rounds).
- If any webpage/app screenshot was redrawn into cartoon UI or any real photo turned waxy, call
Step 5. Caption & Publish
- TikTok:
<= 2short sentences with natural search keywords,0em dashes. - Instagram: First line
<= 120chars (before"more"fold) + clean bullet recap,0em dashes. - Stage as draft by default via connected social MCP/API (or publish live only when autonomous brand publishing was explicitly requested); otherwise display slides inline with ordered URLs and
studioUrl.