본문으로 건너뛰기
cccskills
무료GitHub에 공개

render-creator-pip-listicle

Assemble a creator picture-in-picture product-listicle ad from a config — the creator stays FULL-FRAME the whole beat (voice plus lips generated together per beat, no separate VO, no cut to a full-frame product shot), and on each product beat three persistent overlays ride on top for the WHOLE beat — a title pill top-center, the DEMO in a rounded PiP window top-right (the brand's real UGC clip MUTED, or for a no-UGC brand the product's own autocropped UI still / screen-recording sized to fill the window), and a bottom product card (rounded thumbnail plus 'N · CATEGORY' small-caps plus product NAME in a serif face). Hook plus CTA beats are the creator full-frame with the title pill only. Assembly builds ONE full-1080x1920 transparent overlay PNG per beat, overlays it on the creator clip (cover-scaled to 1080x1920) for the whole beat keeping the native audio, concats all beats, then burns captions LAST as timed PIL PNG overlays (this ffmpeg has no libass) timed deterministically from the known per-beat script. This is the FREE deterministic assembly stage (overlay-PNG build plus cover-scale composite plus concat plus PIL-PNG caption burn); the creator anchor and the N native talking clips come from create-image-fal (Seedream v5 Pro) and create-video-fal (Seedance 2.0). Use for the creator-pip-listicle format.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(6)

  • SKILL.md8.7 KB
  • scripts/config.example.json12.1 KB
  • scripts/PIPELINE.md8.3 KB
  • scripts/README.md5.8 KB
  • skill.meta.json353 B
  • tests/smoke-test.md2.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

render-creator-pip-listicle

Assemble a creator picture-in-picture product listicle ad from a config: an AI creator counts down N products in the brand's own voice, and the creator stays FULL-FRAME the whole time — there is NO cut to a full-frame product shot, ever. On each product beat, three persistent overlays ride on top of the full-frame creator for the WHOLE beat: (1) a title pill top-center (persistent, it carries the listicle title), (2) the DEMO in a rounded PiP window top-right — the brand's real UGC clip (MUTED), or for a no-UGC brand the product's own demo (a real screen-recording, or an autocropped high-res product-UI/dashboard still sized to fill the window), and (3) a product card pinned bottom (rounded thumbnail left + "N · CATEGORY" small-caps + product NAME in a serif face like Georgia). Hook + CTA beats are the creator full-frame with the title pill only (no PiP/card). The creator's voice + lips are generated together, natively per beat — there is no separate voiceover. This capability is the FREE, deterministic assembly — build the per-beat overlay PNG, cover-scale the creator clip + composite the overlay, concat all beats, and burn the captions.

Choices

The creative calls are the user's, asked by the format recipe before any paid step; this assembly renders whatever the config holds.

  • creator — who counts down the list (gender, age, look, wardrobe) → creator.descriptor. The demo used a young woman beauty creator.
  • setting — where the creator films → creator.setting / the anchor prompt. The demo used a plain neutral wall.
  • tone — bubbly, calm and honest, dry and funny, or fast expert → beats[].dialogue. The demo was chatty and enthusiastic.

scripts/config.example.json is the worked example (DIBS Beauty "5 products that replaced my whole makeup bag", ~46s 1080×1920 9:16, a hook + 5 product beats + a CTA) — copy its structure, never its creative values; scripts/PIPELINE.md maps every config block to its source step and scripts/README.md documents the free assembly.

Run

This is the FREE, deterministic assembly stage — it spends nothing beyond the caption burn. The paid inputs are separate capabilities — the creator anchor (create-image-fal, Seedream v5 Pro, model bytedance/seedream/v5/pro/text-to-image with no fal-ai/ prefix) and one native Seedance talking clip per beat (create-video-fal, model bytedance/seedance-2.0/reference-to-video, generate_audio=ON, the SAME seed across beats so the face holds, 720p default). Given those native clips + the brand's real UGC demo clips (or the product's own autocropped UI stills / screen recordings) + the real product photos + the brand palette + the title copy, render-creator-pip-listicle builds ONE full-1080×1920 transparent overlay PNG per beat (title pill always; + demo PiP top-right + bottom product card + rank number on product beats), cover-scales the creator clip to 1080×1920 and overlays the beat's overlay PNG for the whole beat while keeping the native audio, concats all beats, and burns the captions last → the master. Re-cuts reuse the existing native clips + overlays and cost $0.

Anchor gotcha (Seedream v5 Pro, not gpt-image-2/Seedream-v4). Seedance 2.0's partner-validation gate REJECTS photoreal faces from gpt-image-2 AND Seedream v4 ("may contain likenesses of real people"); a Seedream v5 Pro face passes. Generate a FRESH anchor with create-image-fal, model bytedance/seedream/v5/pro/text-to-image (no fal-ai/ prefix) — reusing an existing photoreal face from another project also trips the gate.

Clip gotchas (Seedance 2.0). A REJECTED submit STILL bills via the fal-proxy — pre-flight ONE test clip (the hook) and confirm it renders before firing the batch. Presigned anchor URLs expire ~1h → re-host the anchor if a batch runs long (else "Failed to download the file" mid-batch). The intermittent fal "User is locked: Exhausted balance" is the proxy's upstream fal account (not your GooseWorks credits) → retry with backoff.

Contract (the free assembly)

  • Creator FULL-FRAME the whole beat — NO cut to a full-frame product shot. Every beat is ONE continuous full-frame creator clip; the product content lives in overlays, never in a full-frame cutaway. per_beat_shots = 1.
  • Native creator audio carries the reel — no separate VO. Each beat's voice + lips come from ONE Seedance take (generate_audio=ON); this stage never adds a VO or a lip-sync pass. The creator clip's native audio plays continuous across the whole beat; the demo PiP's audio is muted (else the voice doubles).
  • Three persistent overlays on each product beat. For the WHOLE beat, on top of the full-frame creator: (a) the title pill top-center (persistent, title_pill.on=true — carries the listicle title, kept short to fit one line); (b) the DEMO PiP top-right; (c) the product card bottom. Hook + CTA carry the title pill only.
  • The DEMO PiP is autocropped to FILL its window. It's the brand's REAL UGC clip (MUTED, never AI-regenerated) — OR, for a brand with NO UGC (B2B/SaaS), the product's own demo: a real screen-recording, or an AUTOCROPPED high-res product-UI/dashboard still. Autocrop the still (trim transparent/near-white margins) and size the PiP window to the cropped content's aspect ratio so it fills the window — no letterbox whitespace; a WIDE screenshot → a SHORT + WIDE window, a tall/square one → a taller window. Rounded window, white hairline border, soft drop shadow, top-right. Disclose in the review when the demo is a still/mockup rather than a real UGC clip.
  • Products are REAL photos — never AI-render the product. The bottom product card (rounded thumbnail + "N · CATEGORY" small-caps + product NAME in a serif face like Georgia) comes from the brand's real product photo / UI thumbnail; a product with no clean photo falls back to a brand-color tile with the wordmark, never an AI product render.
  • Persistent title pill, rank number on the card. The title pill is persistent top-center (this format's identity, on by default). A counting rank number (1..N) is rendered on the product card on product beats.
  • Captions burned LAST as PIL PNG overlays, brand-accent, deterministic. This ffmpeg has no libass → render each ~2-word cue as a timed PIL PNG overlay (overlay=…:enable='between(t,s,e)'): white words + a brand-accent underline, black stroke for legibility, positioned CLEAR of the PiP (top) and the card (bottom) (mid-to-lower band). Time them DETERMINISTICALLY from the known per-beat script — the fal-ai/whisper proxy is unreliable (900s timeouts); do NOT depend on it. The known script is the brand-correct source, so brand tokens are always spelled right.
  • FFmpeg composite, deterministic, FREE. Per beat: build ONE full-1080×1920 transparent overlay PNG (title pill; + PiP + card + rank number on product beats), cover-scale the creator clip to 1080×1920, overlay the PNG for the whole beat, keep the native audio. Concat all beats with the concat demuxer @ 30fps / yuv420p → a 1080×1920 h264+aac master, then burn captions last. Probe durations with ffprobe -of csv=p=0 (NOT -of default=nk=1:np=1, which errors on some builds). No paid calls in the composite/stitch, no keys.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Research supported advertising promises from a specific buyer's context, current product facts, customer language and observed ads. Turn them into static, video or copy ideas; match video ideas to actual recipes and save a product-scoped angle bank for write-video-ad-script. Product-led discovery can use verified facts without reviews. Reference persistence and reach are observations, not proof of performance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

For paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

The intake stage of a Meta ad harness. Researches the brand first, states what it assumes, and asks only what it cannot infer and what would change money, claims or legal exposure if guessed wrong — at most four questions a turn, in plain business language. Writes the brand's stable facts (ads/brand.md), the campaign brief, and a log of what was asked vs assumed. Use it when someone wants to run Meta ads and the brand's ad facts are not yet recorded.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and others) and the brand's category rules: the copy, on-image or on-screen text, pictures and people. Rewrites what can be fixed honestly, adds the disclosures that are needed, and flags anything that needs a human or legal review, with one pass, fixed or flag line per ad and platform. Use alone when you already have the ad text or images and know where they will run; otherwise run the playbook for the job (e.g. make-static-ads, make-content, email-lifecycle).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

Analyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

gooseworks-ai의 스킬 모두 보기

이 스킬의 문제 신고