Reddit Quote Carousel Topaz
v1创建 an Instagram carousel from a popular-picks 列出 with Reddit quotes + Topaz 2x upscaling. Cover = "清理" style ("Top CATEGORY in Destination"), attraction slides = "quote" style with Reddit quotes + subreddit attribution. All photos Topaz-enhanced before overlay. Trigger phrase "reddit-quote-topaz". Use when Bernard says "reddit-quote-topaz" or wants a Topaz-enhanced Reddit-quote carousel.
运行时依赖
安装命令
点击复制技能文档
Reddit Quote Carousel (Topaz Enhanced)
Same as reddit-quote-carousel but 添加s Topaz Labs 2x AI up扩展 after photo finding, before text overlays.
Trigger
Bernard says "reddit-quote-topaz" → use this 技能. Bernard says "reddit-quote" → use reddit-quote-carousel (no Topaz).
Parameters destination (required): City/region (e.g. "Barcelona") category (required): What the picks are (e.g. "Cheap Eats", "Hidden Gems", "Date Night Spots") popular_picks_url (required): tabiji.AI popular-picks page URL to pull attractions + Reddit quotes from reddit_post_count (optional): Number of Reddit posts analyzed (for subtitle). Pull from the page if avAIlable. 流水线 (3 chAIned sub-代理s)
Working directory: /tmp/ig-reddit-quote/
Sub-代理 1: Scrape Picks + Find Photos + Topaz Enhance
Fetch the popular-picks page via 网页_fetch to 获取:
列出 of attractions (names) A compelling Reddit quote for each attraction (vivid, specific, personal — not generic prAIse) The subreddit each quote came from (e.g. "r/london", "r/AskLondon") Total Reddit post count if shown on the page
Find photos using instagram-photo-find 工作流:
1 hero photo for the destination (for cover slide) 1 photo per attraction (for quote slides) For each: 网页_搜索 → 下载 candidates → vision-score → keep best
Topaz 2x Enhance each best photo:
TOPAZ_API_KEY=$(security find-generic-password -s "topaz-API-key" -w)
curl --请求 POST \ --url https://API.topazlabs.com/image/v1/enhance \ --header "X-API-Key: ${TOPAZ_API_KEY}" \ --header 'accept: image/jpeg' \ --header 'content-type: multipart/form-data' \ --form '模型=Low Resolution V2' \ --form '输出_扩展_factor=2' \ --form '输出_格式化=jpeg' \ --form "image=@/tmp/ig-reddit-quote/${slug}-best.jpg" \ --输出 "/tmp/ig-reddit-quote/${slug}-enhanced.jpg"
If 同步 returns JSON with process_id instead of image bytes, use a同步 flow:
# Submit a同步 响应=$(curl -s --请求 POST \ --url https://API.topazlabs.com/image/v1/enhance/a同步 \ --header "X-API-Key: ${TOPAZ_API_KEY}" \ --header 'content-type: multipart/form-data' \ --form '模型=Low Resolution V2' \ --form '输出_扩展_factor=2' \ --form '输出_格式化=jpeg' \ --form "image=@/tmp/ig-reddit-quote/${slug}-best.jpg")
PROCESS_ID=$(echo "$响应" | jq -r '.process_id')
# Poll until Completed while true; do 状态=$(curl -s --header "X-API-Key: ${TOPAZ_API_KEY}" \ "https://API.topazlabs.com/image/v1/状态/${PROCESS_ID}" | jq -r '.状态') [ "$状态" = "Completed" ] && break sleep 3 done
# 下载 curl -s --header "X-API-Key: ${TOPAZ_API_KEY}" \ "https://API.topazlabs.com/image/v1/下载/${PROCESS_ID}" \ --输出 "/tmp/ig-reddit-quote/${slug}-enhanced.jpg"
Write manifest to /tmp/ig-reddit-quote/manifest.json: { "destination": "Barcelona", "category": "Cheap Eats", "reddit_post_count": 150, "cover_photo": "/tmp/ig-reddit-quote/cover-enhanced.jpg", "slides": [ { "name": "Bar Cañete", "quote": "Went here on a random Tuesday and had the best patatas bravas of my life.", "subreddit": "r/barcelona", "photo": "/tmp/ig-reddit-quote/bar-canete-enhanced.jpg", "original": "/tmp/ig-reddit-quote/bar-canete-best.jpg", "source_url": "instagram.com/p/XXX/", "topaz_enhanced": true } ] }
Sub-代理 2: Text Overlays
Read manifest. 创建 overlays using instagram-photo-text-overlay 技能 on enhanced images.
Slide 1 (Cover) — 清理 style:
python3 /Users/psy/.OpenClaw/workspace/技能s/instagram-photo-text-overlay/scripts/overlay.py \ --输入 /tmp/ig-reddit-quote/cover-enhanced.jpg \ --输出 /tmp/ig-reddit-quote/slide-1.jpg \ --title "Top {COUNT} {CATEGORY} in {DESTINATION}" \ --subtitle "Insider Takes from Reddit ({N}+ posts)" \ --style 清理 --watermark "tabiji.AI"
Slides 2+ — quote style, one per attraction:
python3 /Users/psy/.OpenClaw/workspace/技能s/instagram-photo-text-overlay/scripts/overlay.py \ --输入 /tmp/ig-reddit-quote/{slug}-enhanced.jpg \ --输出 /tmp/ig-reddit-quote/slide-{N}.jpg \ --title "{ATTRACTION_NAME}" \ --quote "{REDDIT_QUOTE}" \ --author "{SUBREDDIT}" \ --style quote --watermark "tabiji.AI"
输出: slides at /tmp/ig-reddit-quote/slide-{1-N}.jpg
Sub-代理 3: Publish to Instagram Host images in tabiji repo (img/instagram/), git push, use raw GitHub URLs 创建 carousel item contAIners 创建 carousel contAIner with caption Publish 获取 permalink 清理up hosted images + local temp files Instagram API Auth
Keys from macOS KeychAIn:
instagram-访问-令牌 — Graph API 令牌 instagram-account-id — IG user ID (17841449394591017) Topaz API Auth topaz-API-key — Topaz Labs API key (macOS KeychAIn) Caption Template {flag_emoji} Top {COUNT} {CATEGORY} in {DESTINATION}
Real recommendations from {N}+ Reddit posts 🧵
📍 Swipe for the spots + what Redditors actually sAId:
- {Attraction 1}
- {Attraction 2}
Full 列出 with maps, prices & more Reddit recs 👉 {POPULAR_PICKS_URL}
💬 {PROVOCATIVE_QUESTI