itinerary-carousel-post-topaz
Create and publish an Instagram carousel post from a tabiji.ai itinerary, with Topaz Labs AI image enhancement. Same as itinerary-carousel-post but adds a Topaz upscale/enhance step after photo finding and before text overlays. Use when asked to create an Instagram carousel with Topaz enhancement.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/psyduckler/itinerary-carousel-post-topazCreate Instagram Carousel Post (Topaz Enhanced)
End-to-end pipeline: itinerary URL → photo sourcing → Topaz AI enhance → text overlays → Instagram carousel publish.
Identical to itinerary-carousel-post except Sub-agent 1 includes a Topaz enhancement step after selecting the best photo for each subject.
Parameters
- itinerary_url (required): tabiji.ai itinerary URL (e.g.
https://tabiji.ai/i/thaw-dome/) - destination (required): City/region name (e.g. "Kuala Lumpur")
- attractions (required): List of 5 attraction names + short descriptions
- caption (optional): Custom caption. If omitted, generate one with destination name, attraction list, CTA to link in bio, and relevant hashtags.
Pipeline (3 chained sub-agents recommended)
Split into 3 sub-agents for reliability. Each writes outputs to /tmp/ig-carousel/.
Sub-agent 1: Photo Finding + Topaz Enhancement
Use the instagram-photo-find skill workflow for each subject (1 destination + 5 attractions = 6 total).
For each subject:
web_search:site:instagram.com/p/ "{subject}" photo(10 results)- Download top 5 candidates:
curl -s -L -o /tmp/ig-carousel/raw-{slug}-{n}.jpg "https://www.instagram.com/p/{shortcode}/media/?size=l" - Vision-score each with: "Rate 1-10 as hero destination photo for {subject}. Description + score only."
- Keep best per subject →
/tmp/ig-carousel/{slug}-best.jpg
5. Topaz Enhance each best image:
TOPAZ_API_KEY=$(security find-generic-password -s "topaz-api-key" -w)
curl --request 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 'model=Low Resolution V2' \
--form 'output_scale_factor=2' \
--form 'output_format=jpeg' \
--form "image=@/tmp/ig-carousel/${slug}-best.jpg" \
--output "/tmp/ig-carousel/${slug}-enhanced.jpg"
If the sync endpoint times out or returns a process_id instead of image bytes, use the async flow:
# Async: submit
RESPONSE=$(curl -s --request POST \
--url https://api.topazlabs.com/image/v1/enhance/async \
--header "X-API-Key: ${TOPAZ_API_KEY}" \
--header 'content-type: multipart/form-data' \
--form 'model=Low Resolution V2' \
--form 'output_scale_factor=2' \
--form 'output_format=jpeg' \
--form "image=@/tmp/ig-carousel/${slug}-best.jpg")
PROCESS_ID=$(echo "$RESPONSE" | jq -r '.process_id')
# Poll status until Completed
while true; do
STATUS=$(curl -s --header "X-API-Key: ${TOPAZ_API_KEY}" \
"https://api.topazlabs.com/image/v1/status/${PROCESS_ID}" | jq -r '.status')
[ "$STATUS" = "Completed" ] && break
sleep 3
done
# Download result
curl -s --header "X-API-Key: ${TOPAZ_API_KEY}" \
"https://api.topazlabs.com/image/v1/download/${PROCESS_ID}" \
--output "/tmp/ig-carousel/${slug}-enhanced.jpg"
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-psyduckler-itinerary-carousel-post-topaz": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
aeo-content-free
Create or refresh AEO-optimized content that gets cited by AI assistants (Gemini, ChatGPT, Perplexity) using only free tools. Two modes: CREATE new content targeting a specific prompt, or REFRESH existing content to improve AI citation-worthiness. Researches what AI models currently cite, builds a competitive brief, and produces citation-worthy content. Use when a user wants to: write content optimized for AI citations, create articles that show up in AI answers, refresh/update existing content for better AI visibility, build authority content for answer engines, or produce AEO content without paid tools. No API keys required — uses web_fetch, web_search (free tier), and LLM reasoning only. Pairs with aeo-prompt-research-free (which identifies WHAT to write about; this skill handles HOW to write or refresh it).
lead-scorer
Score leads 0-100 by analyzing a domain's website, DNS, sitemap, and social presence. Uses customizable JSON scoring profiles so users can define what signals matter for their brand. Use when qualifying leads, prioritizing outreach lists, or evaluating potential partners. Supports single domains, multiple domains, and CSV batch mode.
reddit-quote-topaz
Create an Instagram carousel from a popular-picks list with Reddit quotes + Topaz 2x upscaling. Cover = "clean" 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.
instagram-photo-text-overlay
Overlay text on photos for Instagram posts. Generates portrait (4:5) images with gradient overlays, titles, and optional numbered lists. Use when creating Instagram content that needs text on top of a photo — destination itineraries, top-5 lists, travel highlights, or any branded social image with text overlay.
email-verifier
Verify email address deliverability via SMTP without sending mail. Checks MX records, performs RCPT TO verification, and detects catch-all domains. Use when validating email lists, checking if an email address exists before sending, cleaning lead lists, or verifying contact information. Supports single emails, batch verification, and CSV input.