opencode Skill

muapi-social-media-video

Brand-aware social media video creator. Reads brand-identity.md, ICP.md, and messaging.md to write a post/storyboard, craft an optimized Seedance 2.0 Director prompt, generate reference frames with the best available image model, and produce platform-ready video.

LLM Mart · 0 points · 11 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download samuraigpt-generative-media-skills-library_social_social-media-video-74df8cb.zip · 8 KB
Part of samuraigpt/generative-media-skills — 72 skills

Install

skills CLI npx skills add https://github.com/SamurAIGPT/Generative-Media-Skills/tree/main/library/social/social-media-video
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install samuraigpt-generative-media-skills@llmmart
Git git clone https://github.com/SamurAIGPT/Generative-Media-Skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole samuraigpt/generative-media-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Social Media Video Creator

End-to-end pipeline: Brand Files → Storyboard → Reference Images → Seedance 2.0 Video.

Reads your brand identity, ICP, and messaging documents to produce on-brand social video — fully optimized for Seedance 2.0's instructional prompt grammar and your target platform.


Agent Execution Protocol

Step 1 — Read Brand Files

Before writing anything, the agent MUST read all available brand files. Look for them in the working directory or any brand/ subdirectory:

File What to extract
brand-identity.md Visual style, color palette, tone, logo/product aesthetics, brand personality
ICP.md Target audience — who they are, their pain points, what motivates them
messaging.md Core value props, hooks, CTAs, campaign themes, taglines

If a file is missing, proceed with what's available and note the gap.


Step 2 — Write the Social Post + Storyboard

Use brand context to produce:

Social Post Copy (for caption/copy):

  • Hook line (first 1–2 sentences — must stop the scroll)
  • Body (3–5 sentences: problem → solution → proof → CTA)
  • Hashtags (5–8 relevant tags)
  • CTA (one clear action)

Storyboard (match duration to platform spec):

0–3s:  [Opening scene — hook/visual surprise — camera move]
3–7s:  [Core message — product/subject in action — camera move]
7–10s: [Resolution — brand moment — CTA text on screen]
10–15s: [Logo/tagline hold — background music fade]

Tone must match brand personality. If brand is playful → upbeat transitions, bright grade. If brand is premium → slow reveals, dark luxury aesthetic, moody lighting.


Step 3 — Craft the Seedance 2.0 Director Prompt

Transform the storyboard into a technical Director Brief for Seedance 2.0.

Rules:

  1. Never use vague descriptors ("beautiful", "amazing", "8k"). Use technical cinematography language.
  2. Always specify camera movement, lens type, and lighting physically.
  3. For 10s+ videos, use timecode segments: 0–3s: [...] 3–7s: [...] 7–10s: [...]
  4. Integrate @image1, @image2 reference tags if images are provided.
  5. Always include sound direction (even brief) — Seedance generates audio.
  6. Lead with composition, end with texture and micro-motion.

Director Brief Template:

[SCENE] {environment, lighting, time of day}
[SUBJECT] {product/character/subject with specific detail}
[ACTION] {what happens — fluid, continuous, physically plausible}
[CAMERA] {movement + lens + framing}
[STYLE] {color grade, mood, film reference if helpful}
[SOUND] {music tone, sound effects, ambient}
0–Xs: {if multi-beat}

Step 4 — Generate Reference Images (If Needed)

When to generate reference images:

Scenario Mode Images Needed
Product showcase i2v 1 product shot as first frame
Scene transition first-last 2 images — opening and closing frame
Brand character i2v 1 character reference
Pure concept t2v None — text only
Mood/style anchor i2v 1 style reference image

Image generation — best models by use case:

Use Case Recommended Model Why
Photorealistic product/scene google-imagen4-ultra Highest realism, great lighting
Concept art / stylized flux-kontext-pro-t2i Creative fidelity, style adherence
Fastest turnaround google-imagen4-fast Speed with good quality
Highly detailed/editorial hidream-i1-full Fine detail, editorial quality
Character with identity ideogram-v3-t2i Strong text + character rendering

Reference image prompt format: Write a clean, technical image prompt (not a Seedance prompt). Include:

  • Subject description + key product/brand visual elements
  • Lighting (studio, golden hour, etc.)
  • Shot framing (medium shot, product close-up, etc.)
  • Mood/color palette matching brand identity
  • NO motion language (this is for a still frame)

Execute image generation:

bash core/media/generate-image.sh \
  --model google-imagen4-ultra \
  --prompt "your image prompt" \
  --aspect-ratio 9:16 \
  --view

Step 5 — Generate the Video

Choose mode, tier, and camera based on content type and available assets.

Mode selection:

Situation Mode Command
No reference images t2v default
1 image (first frame) i2v --mode i2v --file ref.jpg
Start + end frames first-last --mode first-last --tier global --file start.jpg --file end.jpg
Multi-ref blend i2v up to 9 images

Invoke the script:

bash library/social/social-media-video/scripts/run-social-video.sh \
  --prompt "your director brief here" \
  --platform instagram \
  --camera drone \
  [--mode t2v|i2v|first-last] \
  [--file ref_image.jpg] \
  [--gen-ref "reference image prompt"] \
  [--tier global] \
  [--quality high] \
  [--view]

Platform Specs

Platform Format Aspect Duration Notes
Instagram Reels Vertical 9:16 10–15s Hook in first 1s
Instagram Feed Square 1:1 10s Static-feel works well
TikTok Vertical 9:16 10–15s High energy, fast cuts
YouTube Shorts Vertical 9:16 15s Max quality
LinkedIn Landscape 16:9 10–15s Professional tone
Twitter/X Landscape 16:9 10s Punchy, direct
YouTube (long) Landscape 16:9 15s Cinematic, slow builds
Pinterest Portrait 4:3 10s Lifestyle-forward

Tier note: Use --tier global or --tier vip for 1:1 and 21:9 formats. Chinese tier supports only 16:9, 9:16, 4:3, 3:4.


Camera Language Reference

Standard Camera Intents (--camera / --intent flags)

Intent Movement Best For
reveal Slow crane up, wide establishing Product launches, brand reveals
epic Dolly in + orbit, low hero angle Brand manifesto, emotional story
product Static macro orbit, precision reveal E-commerce, product demo
narrative Tracking shot, Steadicam Testimonials, story-driven
tense Handheld jitter, dutch angle High-energy, urgency
comedy Reactive handheld, punchy zooms Lighthearted brand content

Specialty Camera Intents (New)

Intent Description Best For
fpv First-person subjective POV — immersive GoPro-style, continuous forward motion, peripheral detail close-ups Action brands, travel, sports, tech demos
drone Aerial cinematic flythrough — smooth gimbal-stabilized, sweeping laterals, descend from high altitude into scene Real estate, luxury, outdoor brands, epic reveals
flythrough Ground-level architectural flythrough — continuous dolly through space, seamless portal transitions Architecture, interior design, venue showcases

FPV Prompt Enrichment:

Immersive first-person POV shot. Camera glides forward through [scene] at eye level.
Slight natural motion stabilization with GoPro-style wide angle.
Peripheral detail rushing past — [details]. Smooth continuous forward motion.
No cuts throughout. [Subject] visible in foreground periphery.

Drone Flythrough Prompt Enrichment:

Cinematic aerial drone shot. Camera descends from 200m altitude toward [subject/scene],
sweeping lateral arc as it descends. Gimbal-stabilized smooth motion.
Golden hour atmosphere, long shadows across [terrain/scene].
Final frame settles into medium establishing shot.
Aerial cinematography, DJI Inspire aesthetic.

Prompt Quality Checklist

Before finalizing the Seedance prompt, verify:

  • Scene environment is physically specific (not "nice background")
  • Camera movement named explicitly (dolly in, orbit, drone flythrough, FPV, etc.)
  • Lighting described technically (volumetric god rays, rim lighting, soft diffused, etc.)
  • Subject/product described with visual specifics from brand-identity.md
  • Sound direction included (even one line)
  • Timecodes used for 10s+ videos
  • @image1 etc. referenced if images are provided
  • Brand CTA or tagline included in final seconds
  • No vague adjectives ("amazing", "beautiful", "stunning") — replaced with technical terms

Example: Full Workflow

User: "Make an Instagram Reel for our cold brew coffee brand, drone shot, premium feel"

Step 1 — Brand read: Read brand-identity.md (minimalist packaging, dark roast, black + gold palette), ICP.md (urban professionals 25–40, values quality), messaging.md ("Precision Brewed. Zero Compromise.")

Step 2 — Storyboard:

0–2s:  Drone descends over rooftop terrace at sunrise, fog below.
2–5s:  Drone swoops down toward coffee cup on white marble, steam rising.
5–9s:  Close-up orbit of bottle, specular gold highlights, ice cubes.
9–11s: Product settles, black screen fades in: "Zero Compromise." + logo
Sound: Minimal lounge beat, coffee pour sound effect at 5s.

Step 3 — Seedance Director Prompt:

0–2s: Cinematic aerial drone shot. Camera descends at 30° angle toward a rooftop terrace at sunrise.
Golden hour atmosphere, San Francisco bay fog below horizon. Gimbal-stabilized smooth descent.
2–5s: Drone rapidly closes toward a glass of cold brew coffee on white marble.
Steam curling upward. Macro lens approach. Caustic light patterns on wet glass surface.
5–9s: Slow precision orbit around cold brew bottle. Black matte label with gold embossed text catching
specular highlights. Ice cubes with subsurface light scattering. Commercial macro aesthetic.
9–11s: Static product hero shot. Letterbox crop, deep focus, black fade in from sides.
Sound: Minimal ambient beat, single piano note, coffee liquid sound effect at 5s mark.
Maintain cinematic color grade — deep blacks, warm gold midtones throughout.

Step 4 — Generate reference: google-imagen4-ultra → cold brew bottle product shot (9:16)

Step 5 — Generate video:

bash library/social/social-media-video/scripts/run-social-video.sh \
  --prompt "0–2s: Cinematic aerial drone shot..." \
  --platform instagram \
  --camera drone \
  --mode i2v \
  --file media_outputs/coldbrew_ref.jpg \
  --duration 11 \
  --tier global \
  --view

Common Mistakes to Avoid

  1. Reading brand files and ignoring them — the storyboard must visually match the brand palette and tone.
  2. Generic prompts — "a nice video of a product" produces generic output. Every token must direct.
  3. Wrong tier for aspect ratio — 1:1 and 21:9 require --tier global or --tier vip.
  4. Forgetting sound — Seedance generates audio. Direct it, or you get random results.
  5. FPV with static subject — FPV requires continuous motion in the scene. Pair with movement-rich environments.
  6. Drone without establishing shot — drone works best when it resolves INTO something (a product, a scene, a subject).
  7. Too many scene changes in 5s — match complexity to duration. 5s = 1 beat. 15s = 3–4 beats.
Files (generative-media-skills)
  • scripts
    • run-social-video.sh 11 KB
      #!/bin/bash
      # Social Media Video Generator — Orchestrator
      #
      # Generates reference images (if requested) then produces a Seedance 2.0 video,
      # all wired to platform-specific defaults (aspect ratio, duration, tier).
      #
      # Usage:
      #   bash run-social-video.sh --prompt "director brief" --platform instagram [options]
      #
      # Requires: bash 3.2+, curl, jq
      
      set -euo pipefail
      
      # ============================================================
      # Locate skills root (works regardless of CWD when invoked)
      # ============================================================
      SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
      SKILLS_ROOT="$(cd "$SCRIPT_DIR/../../../.." && pwd)"
      GENERATE_IMAGE="$SKILLS_ROOT/core/media/generate-image.sh"
      GENERATE_SEEDANCE="$SKILLS_ROOT/library/motion/seedance-2/scripts/generate-seedance.sh"
      
      # Load .env from skills root
      if [ -f "$SKILLS_ROOT/.env" ]; then
          set +u; source "$SKILLS_ROOT/.env" 2>/dev/null || true; set -u
      fi
      
      # ============================================================
      # Defaults
      # ============================================================
      PROMPT=""
      PLATFORM="instagram"
      CAMERA=""
      MODE="t2v"
      TIER="chinese"
      FAST=false
      ASPECT=""
      DURATION=""
      QUALITY="basic"
      VIEW=false
      ASYNC=false
      IMAGE_FILES=()
      
      # Reference image generation
      GEN_REF_FIRST=""      # --gen-ref "prompt"       → generate first frame ref
      GEN_REF_LAST=""       # --gen-ref-last "prompt"  → generate last frame ref
      REF_MODEL="google-imagen4-ultra"
      
      # ============================================================
      # Argument parsing
      # ============================================================
      while [[ $# -gt 0 ]]; do
          case $1 in
              --prompt|-p)        PROMPT="$2";         shift 2 ;;
              --platform)         PLATFORM="$2";       shift 2 ;;
              --camera)           CAMERA="$2";         shift 2 ;;
              --mode)             MODE="$2";           shift 2 ;;
              --tier)             TIER="$2";           shift 2 ;;
              --fast)             FAST=true;           shift   ;;
              --aspect)           ASPECT="$2";         shift 2 ;;
              --duration)         DURATION="$2";       shift 2 ;;
              --quality|-q)       QUALITY="$2";        shift 2 ;;
              --view)             VIEW=true;           shift   ;;
              --async)            ASYNC=true;          shift   ;;
              --file|-f)          IMAGE_FILES+=("$2"); shift 2 ;;
              --gen-ref)          GEN_REF_FIRST="$2";  shift 2 ;;
              --gen-ref-last)     GEN_REF_LAST="$2";   shift 2 ;;
              --ref-model)        REF_MODEL="$2";      shift 2 ;;
              --help|-h)
                  cat <<'HELP'
      Social Media Video Generator
      Usage: bash run-social-video.sh --prompt "director brief" [options]
      
      REQUIRED
        --prompt, -p TEXT     Seedance 2.0 Director Brief (the full cinematic prompt)
      
      PLATFORM (sets aspect/duration defaults)
        --platform NAME       instagram | tiktok | linkedin | youtube | youtube-short |
                              twitter | pinterest | instagram-feed  (default: instagram)
      
      CAMERA STYLE (appends camera directive to prompt)
        --camera TYPE         fpv | drone | flythrough | reveal | epic | product |
                              narrative | tracking | orbit  (default: from --platform)
      
      VIDEO OPTIONS
        --mode MODE           t2v | i2v | first-last | omni  (default: t2v)
        --tier TIER           chinese | global | vip  (default: chinese)
                              Note: first-last requires global or vip
        --fast                Use fast-queue variant (global/vip only)
        --aspect RATIO        Override platform default aspect ratio
        --duration N          Override platform default duration (seconds)
        --quality Q           basic | high  (Chinese tier only; default: basic)
        --view                Download and open output (macOS)
        --async               Return request_id without waiting
      
      REFERENCE IMAGES
        --file, -f PATH       Provide an existing image file (repeatable, up to 9)
        --gen-ref TEXT        Generate a first-frame reference image from this prompt
        --gen-ref-last TEXT   Generate a last-frame reference image (triggers first-last mode)
        --ref-model MODEL     Image model for reference generation
                              (default: google-imagen4-ultra)
                              Options: flux-kontext-pro-t2i | hidream-i1-full |
                                       google-imagen4-fast | ideogram-v3-t2i
      
      EXAMPLES
        # Instagram Reel — drone shot, auto-generate ref image, t2v
        bash run-social-video.sh \
          --prompt "Drone descends over rooftop at sunrise, product reveal..." \
          --platform instagram --camera drone --duration 10
      
        # TikTok — FPV, with generated first frame
        bash run-social-video.sh \
          --prompt "First-person rush through..." \
          --platform tiktok --camera fpv \
          --gen-ref "Hero product on table, soft morning light, close-up" \
          --tier global --view
      
        # LinkedIn landscape — product orbit, existing reference image
        bash run-social-video.sh \
          --prompt "Precision orbit around product, specular highlights..." \
          --platform linkedin --camera product --mode i2v --file product.jpg \
          --quality high --view
      
        # YouTube Short — first-last frame interpolation
        bash run-social-video.sh \
          --prompt "Dramatic reveal from foggy landscape to clear skyline..." \
          --platform youtube-short \
          --gen-ref "Morning fog over mountain valley, sunrise" \
          --gen-ref-last "Clear blue sky, mountain peak, golden hour" \
          --tier global --view
      HELP
                  exit 0 ;;
              *)
                  echo "Warning: Unknown argument '$1' — skipping." >&2
                  shift ;;
          esac
      done
      
      # ============================================================
      # Validate
      # ============================================================
      if [ -z "$PROMPT" ]; then
          echo "Error: --prompt is required. Provide the Seedance Director Brief." >&2
          exit 1
      fi
      if [ -z "${MUAPI_KEY:-}" ]; then
          echo "Error: MUAPI_KEY is not set. Export it or add to $SKILLS_ROOT/.env" >&2
          exit 1
      fi
      
      # ============================================================
      # Platform → aspect ratio + duration defaults
      # ============================================================
      case "$PLATFORM" in
          instagram|tiktok|youtube-short)
              DEFAULT_ASPECT="9:16"; DEFAULT_DURATION=10 ;;
          instagram-feed)
              DEFAULT_ASPECT="1:1";  DEFAULT_DURATION=10 ;;
          linkedin|youtube|twitter)
              DEFAULT_ASPECT="16:9"; DEFAULT_DURATION=10 ;;
          pinterest)
              DEFAULT_ASPECT="4:3";  DEFAULT_DURATION=10 ;;
          *)
              DEFAULT_ASPECT="16:9"; DEFAULT_DURATION=10 ;;
      esac
      
      ASPECT="${ASPECT:-$DEFAULT_ASPECT}"
      DURATION="${DURATION:-$DEFAULT_DURATION}"
      
      # Formats requiring global/vip tier
      if [[ "$ASPECT" == "1:1" || "$ASPECT" == "21:9" ]] && [[ "$TIER" == "chinese" ]]; then
          echo "Note: Aspect ratio $ASPECT requires global or vip tier. Switching to global." >&2
          TIER="global"
      fi
      
      # ============================================================
      # Camera → intent mapping (for generate-seedance.sh --intent)
      # ============================================================
      case "$CAMERA" in
          fpv)                INTENT="fpv" ;;
          drone|flythrough)   INTENT="drone" ;;
          reveal)             INTENT="reveal" ;;
          epic)               INTENT="epic" ;;
          product)            INTENT="product" ;;
          narrative|tracking) INTENT="narrative" ;;
          orbit)              INTENT="epic" ;;
          *)                  INTENT="cinematic" ;;
      esac
      
      # ============================================================
      # Generate reference images if requested
      # ============================================================
      OUTPUT_DIR="$SKILLS_ROOT/media_outputs"
      mkdir -p "$OUTPUT_DIR"
      
      generate_ref_image() {
          local REF_PROMPT="$1"
          local LABEL="$2"
          local OUTPUT_PATH="$OUTPUT_DIR/social_ref_${LABEL}_$(date +%s).jpg"
      
          echo "" >&2
          echo "Generating $LABEL reference image with $REF_MODEL..." >&2
          echo "Prompt: $REF_PROMPT" >&2
      
          local RESULT
          RESULT=$(cd "$SKILLS_ROOT" && bash "$GENERATE_IMAGE" \
              --model "$REF_MODEL" \
              --prompt "$REF_PROMPT" \
              --aspect-ratio "$ASPECT" \
              --json)
      
          local IMG_URL
          IMG_URL=$(echo "$RESULT" | jq -r '.outputs[0] // empty')
      
          if [ -z "$IMG_URL" ]; then
              echo "Error: Failed to generate reference image. Raw response:" >&2
              echo "$RESULT" >&2
              exit 1
          fi
      
          echo "Downloading reference image to $OUTPUT_PATH..." >&2
          curl -s -o "$OUTPUT_PATH" "$IMG_URL"
      
          if [ "$VIEW" = true ] && [[ "$OSTYPE" == "darwin"* ]]; then
              open "$OUTPUT_PATH"
          fi
      
          echo "$OUTPUT_PATH"
      }
      
      # Generate first-frame reference
      if [ -n "$GEN_REF_FIRST" ]; then
          FIRST_REF_PATH=$(generate_ref_image "$GEN_REF_FIRST" "first")
          IMAGE_FILES=("$FIRST_REF_PATH" "${IMAGE_FILES[@]}")
          echo "First-frame reference: $FIRST_REF_PATH" >&2
      fi
      
      # Generate last-frame reference
      LAST_REF_PATH=""
      if [ -n "$GEN_REF_LAST" ]; then
          LAST_REF_PATH=$(generate_ref_image "$GEN_REF_LAST" "last")
          echo "Last-frame reference: $LAST_REF_PATH" >&2
      fi
      
      # ============================================================
      # Determine mode from available images
      # ============================================================
      # If we have a last-frame reference, use first-last mode
      if [ -n "$LAST_REF_PATH" ]; then
          MODE="first-last"
          IMAGE_FILES+=("$LAST_REF_PATH")
          if [ "$TIER" = "chinese" ]; then
              echo "Note: first-last mode requires global/vip tier. Switching to global." >&2
              TIER="global"
          fi
      fi
      
      # If we have images and mode is still t2v, switch to i2v
      if [ ${#IMAGE_FILES[@]} -gt 0 ] && [ "$MODE" = "t2v" ]; then
          MODE="i2v"
      fi
      
      # ============================================================
      # Build generate-seedance.sh command
      # ============================================================
      SEEDANCE_ARGS=(
          --mode "$MODE"
          --tier "$TIER"
          --subject "$PROMPT"
          --intent "$INTENT"
          --aspect "$ASPECT"
          --duration "$DURATION"
      )
      
      # Quality only applies to Chinese tier
      if [ "$TIER" = "chinese" ]; then
          SEEDANCE_ARGS+=(--quality "$QUALITY")
      fi
      
      # Fast flag (global/vip only)
      if [ "$FAST" = true ]; then
          SEEDANCE_ARGS+=(--fast)
      fi
      
      # Attach reference images
      for IMG in "${IMAGE_FILES[@]}"; do
          SEEDANCE_ARGS+=(--file "$IMG")
      done
      
      # Pass-through flags
      [ "$VIEW" = true ]  && SEEDANCE_ARGS+=(--view)
      [ "$ASYNC" = true ] && SEEDANCE_ARGS+=(--async)
      
      # ============================================================
      # Summary
      # ============================================================
      echo "" >&2
      echo "======================================" >&2
      echo " Social Media Video Generator" >&2
      echo "======================================" >&2
      echo " Platform  : $PLATFORM" >&2
      echo " Aspect    : $ASPECT" >&2
      echo " Duration  : ${DURATION}s" >&2
      echo " Mode      : $MODE" >&2
      echo " Tier      : $TIER" >&2
      echo " Camera    : ${CAMERA:-default}" >&2
      echo " Intent    : $INTENT" >&2
      echo " Ref images: ${#IMAGE_FILES[@]}" >&2
      echo " Ref model : $REF_MODEL" >&2
      echo "======================================" >&2
      echo "" >&2
      
      # ============================================================
      # Execute Seedance generation
      # ============================================================
      cd "$SKILLS_ROOT"
      exec bash "$GENERATE_SEEDANCE" "${SEEDANCE_ARGS[@]}"
      
  • SKILL.md 11.2 KB
    ---
    slug: muapi-social-media-video
    name: muapi-social-media-video
    version: "1.0.0"
    description: Brand-aware social media video creator. Reads brand-identity.md, ICP.md, and messaging.md to write a post/storyboard, craft an optimized Seedance 2.0 Director prompt, generate reference frames with the best available image model, and produce platform-ready video.
    acceptLicenseTerms: true
    ---
    
    # Social Media Video Creator
    
    **End-to-end pipeline: Brand Files → Storyboard → Reference Images → Seedance 2.0 Video.**
    
    Reads your brand identity, ICP, and messaging documents to produce on-brand social video — fully optimized for Seedance 2.0's instructional prompt grammar and your target platform.
    
    ---
    
    ## Agent Execution Protocol
    
    ### Step 1 — Read Brand Files
    
    Before writing anything, the agent MUST read all available brand files. Look for them in the working directory or any `brand/` subdirectory:
    
    | File | What to extract |
    |:---|:---|
    | `brand-identity.md` | Visual style, color palette, tone, logo/product aesthetics, brand personality |
    | `ICP.md` | Target audience — who they are, their pain points, what motivates them |
    | `messaging.md` | Core value props, hooks, CTAs, campaign themes, taglines |
    
    If a file is missing, proceed with what's available and note the gap.
    
    ---
    
    ### Step 2 — Write the Social Post + Storyboard
    
    Use brand context to produce:
    
    **Social Post Copy** (for caption/copy):
    - Hook line (first 1–2 sentences — must stop the scroll)
    - Body (3–5 sentences: problem → solution → proof → CTA)
    - Hashtags (5–8 relevant tags)
    - CTA (one clear action)
    
    **Storyboard** (match duration to platform spec):
    ```
    0–3s:  [Opening scene — hook/visual surprise — camera move]
    3–7s:  [Core message — product/subject in action — camera move]
    7–10s: [Resolution — brand moment — CTA text on screen]
    10–15s: [Logo/tagline hold — background music fade]
    ```
    
    Tone must match brand personality. If brand is playful → upbeat transitions, bright grade.
    If brand is premium → slow reveals, dark luxury aesthetic, moody lighting.
    
    ---
    
    ### Step 3 — Craft the Seedance 2.0 Director Prompt
    
    Transform the storyboard into a **technical Director Brief** for Seedance 2.0.
    
    **Rules:**
    1. Never use vague descriptors ("beautiful", "amazing", "8k"). Use technical cinematography language.
    2. Always specify camera movement, lens type, and lighting physically.
    3. For 10s+ videos, use timecode segments: `0–3s: [...] 3–7s: [...] 7–10s: [...]`
    4. Integrate `@image1`, `@image2` reference tags if images are provided.
    5. Always include sound direction (even brief) — Seedance generates audio.
    6. Lead with composition, end with texture and micro-motion.
    
    **Director Brief Template:**
    ```
    [SCENE] {environment, lighting, time of day}
    [SUBJECT] {product/character/subject with specific detail}
    [ACTION] {what happens — fluid, continuous, physically plausible}
    [CAMERA] {movement + lens + framing}
    [STYLE] {color grade, mood, film reference if helpful}
    [SOUND] {music tone, sound effects, ambient}
    0–Xs: {if multi-beat}
    ```
    
    ---
    
    ### Step 4 — Generate Reference Images (If Needed)
    
    **When to generate reference images:**
    
    | Scenario | Mode | Images Needed |
    |:---|:---|:---|
    | Product showcase | `i2v` | 1 product shot as first frame |
    | Scene transition | `first-last` | 2 images — opening and closing frame |
    | Brand character | `i2v` | 1 character reference |
    | Pure concept | `t2v` | None — text only |
    | Mood/style anchor | `i2v` | 1 style reference image |
    
    **Image generation — best models by use case:**
    
    | Use Case | Recommended Model | Why |
    |:---|:---|:---|
    | Photorealistic product/scene | `google-imagen4-ultra` | Highest realism, great lighting |
    | Concept art / stylized | `flux-kontext-pro-t2i` | Creative fidelity, style adherence |
    | Fastest turnaround | `google-imagen4-fast` | Speed with good quality |
    | Highly detailed/editorial | `hidream-i1-full` | Fine detail, editorial quality |
    | Character with identity | `ideogram-v3-t2i` | Strong text + character rendering |
    
    **Reference image prompt format:**
    Write a clean, technical image prompt (not a Seedance prompt). Include:
    - Subject description + key product/brand visual elements
    - Lighting (studio, golden hour, etc.)
    - Shot framing (medium shot, product close-up, etc.)
    - Mood/color palette matching brand identity
    - NO motion language (this is for a still frame)
    
    Execute image generation:
    ```bash
    bash core/media/generate-image.sh \
      --model google-imagen4-ultra \
      --prompt "your image prompt" \
      --aspect-ratio 9:16 \
      --view
    ```
    
    ---
    
    ### Step 5 — Generate the Video
    
    Choose mode, tier, and camera based on content type and available assets.
    
    **Mode selection:**
    
    | Situation | Mode | Command |
    |:---|:---|:---|
    | No reference images | `t2v` | default |
    | 1 image (first frame) | `i2v` | `--mode i2v --file ref.jpg` |
    | Start + end frames | `first-last` | `--mode first-last --tier global --file start.jpg --file end.jpg` |
    | Multi-ref blend | `i2v` | up to 9 images |
    
    **Invoke the script:**
    ```bash
    bash library/social/social-media-video/scripts/run-social-video.sh \
      --prompt "your director brief here" \
      --platform instagram \
      --camera drone \
      [--mode t2v|i2v|first-last] \
      [--file ref_image.jpg] \
      [--gen-ref "reference image prompt"] \
      [--tier global] \
      [--quality high] \
      [--view]
    ```
    
    ---
    
    ## Platform Specs
    
    | Platform | Format | Aspect | Duration | Notes |
    |:---|:---|:---|:---|:---|
    | Instagram Reels | Vertical | 9:16 | 10–15s | Hook in first 1s |
    | Instagram Feed | Square | 1:1 | 10s | Static-feel works well |
    | TikTok | Vertical | 9:16 | 10–15s | High energy, fast cuts |
    | YouTube Shorts | Vertical | 9:16 | 15s | Max quality |
    | LinkedIn | Landscape | 16:9 | 10–15s | Professional tone |
    | Twitter/X | Landscape | 16:9 | 10s | Punchy, direct |
    | YouTube (long) | Landscape | 16:9 | 15s | Cinematic, slow builds |
    | Pinterest | Portrait | 4:3 | 10s | Lifestyle-forward |
    
    > **Tier note:** Use `--tier global` or `--tier vip` for `1:1` and `21:9` formats. Chinese tier supports only 16:9, 9:16, 4:3, 3:4.
    
    ---
    
    ## Camera Language Reference
    
    ### Standard Camera Intents (--camera / --intent flags)
    
    | Intent | Movement | Best For |
    |:---|:---|:---|
    | `reveal` | Slow crane up, wide establishing | Product launches, brand reveals |
    | `epic` | Dolly in + orbit, low hero angle | Brand manifesto, emotional story |
    | `product` | Static macro orbit, precision reveal | E-commerce, product demo |
    | `narrative` | Tracking shot, Steadicam | Testimonials, story-driven |
    | `tense` | Handheld jitter, dutch angle | High-energy, urgency |
    | `comedy` | Reactive handheld, punchy zooms | Lighthearted brand content |
    
    ### Specialty Camera Intents (New)
    
    | Intent | Description | Best For |
    |:---|:---|:---|
    | `fpv` | First-person subjective POV — immersive GoPro-style, continuous forward motion, peripheral detail close-ups | Action brands, travel, sports, tech demos |
    | `drone` | Aerial cinematic flythrough — smooth gimbal-stabilized, sweeping laterals, descend from high altitude into scene | Real estate, luxury, outdoor brands, epic reveals |
    | `flythrough` | Ground-level architectural flythrough — continuous dolly through space, seamless portal transitions | Architecture, interior design, venue showcases |
    
    **FPV Prompt Enrichment:**
    ```
    Immersive first-person POV shot. Camera glides forward through [scene] at eye level.
    Slight natural motion stabilization with GoPro-style wide angle.
    Peripheral detail rushing past — [details]. Smooth continuous forward motion.
    No cuts throughout. [Subject] visible in foreground periphery.
    ```
    
    **Drone Flythrough Prompt Enrichment:**
    ```
    Cinematic aerial drone shot. Camera descends from 200m altitude toward [subject/scene],
    sweeping lateral arc as it descends. Gimbal-stabilized smooth motion.
    Golden hour atmosphere, long shadows across [terrain/scene].
    Final frame settles into medium establishing shot.
    Aerial cinematography, DJI Inspire aesthetic.
    ```
    
    ---
    
    ## Prompt Quality Checklist
    
    Before finalizing the Seedance prompt, verify:
    
    - [ ] Scene environment is physically specific (not "nice background")
    - [ ] Camera movement named explicitly (dolly in, orbit, drone flythrough, FPV, etc.)
    - [ ] Lighting described technically (volumetric god rays, rim lighting, soft diffused, etc.)
    - [ ] Subject/product described with visual specifics from brand-identity.md
    - [ ] Sound direction included (even one line)
    - [ ] Timecodes used for 10s+ videos
    - [ ] `@image1` etc. referenced if images are provided
    - [ ] Brand CTA or tagline included in final seconds
    - [ ] No vague adjectives ("amazing", "beautiful", "stunning") — replaced with technical terms
    
    ---
    
    ## Example: Full Workflow
    
    **User**: "Make an Instagram Reel for our cold brew coffee brand, drone shot, premium feel"
    
    **Step 1 — Brand read**: Read `brand-identity.md` (minimalist packaging, dark roast, black + gold palette), `ICP.md` (urban professionals 25–40, values quality), `messaging.md` ("Precision Brewed. Zero Compromise.")
    
    **Step 2 — Storyboard**:
    ```
    0–2s:  Drone descends over rooftop terrace at sunrise, fog below.
    2–5s:  Drone swoops down toward coffee cup on white marble, steam rising.
    5–9s:  Close-up orbit of bottle, specular gold highlights, ice cubes.
    9–11s: Product settles, black screen fades in: "Zero Compromise." + logo
    Sound: Minimal lounge beat, coffee pour sound effect at 5s.
    ```
    
    **Step 3 — Seedance Director Prompt**:
    ```
    0–2s: Cinematic aerial drone shot. Camera descends at 30° angle toward a rooftop terrace at sunrise.
    Golden hour atmosphere, San Francisco bay fog below horizon. Gimbal-stabilized smooth descent.
    2–5s: Drone rapidly closes toward a glass of cold brew coffee on white marble.
    Steam curling upward. Macro lens approach. Caustic light patterns on wet glass surface.
    5–9s: Slow precision orbit around cold brew bottle. Black matte label with gold embossed text catching
    specular highlights. Ice cubes with subsurface light scattering. Commercial macro aesthetic.
    9–11s: Static product hero shot. Letterbox crop, deep focus, black fade in from sides.
    Sound: Minimal ambient beat, single piano note, coffee liquid sound effect at 5s mark.
    Maintain cinematic color grade — deep blacks, warm gold midtones throughout.
    ```
    
    **Step 4 — Generate reference**: `google-imagen4-ultra` → cold brew bottle product shot (9:16)
    
    **Step 5 — Generate video**:
    ```bash
    bash library/social/social-media-video/scripts/run-social-video.sh \
      --prompt "0–2s: Cinematic aerial drone shot..." \
      --platform instagram \
      --camera drone \
      --mode i2v \
      --file media_outputs/coldbrew_ref.jpg \
      --duration 11 \
      --tier global \
      --view
    ```
    
    ---
    
    ## Common Mistakes to Avoid
    
    1. **Reading brand files and ignoring them** — the storyboard must visually match the brand palette and tone.
    2. **Generic prompts** — "a nice video of a product" produces generic output. Every token must direct.
    3. **Wrong tier for aspect ratio** — 1:1 and 21:9 require `--tier global` or `--tier vip`.
    4. **Forgetting sound** — Seedance generates audio. Direct it, or you get random results.
    5. **FPV with static subject** — FPV requires continuous motion in the scene. Pair with movement-rich environments.
    6. **Drone without establishing shot** — drone works best when it resolves INTO something (a product, a scene, a subject).
    7. **Too many scene changes in 5s** — match complexity to duration. 5s = 1 beat. 15s = 3–4 beats.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related