WooblaVFX composite
Turn a green-screen clip plus a background plate into a finished composite using the WooblaVFX studio (studio.wooblavfx.com), then hand back 16:9 and 9:16 masters. The studio is the source of truth for the creative values; a local ffmpeg render is the safety net that reproduces those exact values if the export worker fails.
When to use
Use this skill when the user asks for any of:
- a keyed composite ("put this dinosaur in Chicago", "dancers at a gate") built with WooblaVFX
- an explosion / 3D-object element added to a shot via the studio's Create VFX jobs
- a colour-grade before/after proof of a WooblaVFX composite
- 9:16 and 16:9 social versions of such a composite
Do NOT use it for:
- plain dubbing or subtitle work (that is WooblaDub, a different product)
- generative character replacement ("turn the dancers into rendered zombies") — the studio has no generative subject swap; offer a silhouette/staging approach instead and get the user's OK
- anything that requires purchasing credits: quote the cost and stop, the user buys credits themselves at studio.wooblavfx.com/billing
Procedure
Collect inputs and confirm scope before spending credits.
- Subject clip(s) on green, plate(s), target duration, aspect ratios, and whether an explosion/3D element is wanted.
- If no plate exists, fetch a free one from pixabay.com (network call needed to download stock footage; keep the file id in the filename so the credit line "stock plates: Pixabay" is traceable). Chrome may leave the download as a
.com.google.Chrome.*temp file in~/Downloads— it is complete; copy and rename it. - Run
scripts/probe.sh <file>on every clip: it prints resolution, fps, duration and the dominant green value of the subject clip, which you need for the key.
Prep plates locally so the studio and ffmpeg see identical media.
ffmpeg -y -ss 2 -t 8 -i plate.mp4 -vf "fps=24,scale=1920:1080" -c:v libx264 -crf 18 -an plate-1080p-8s.mp4Match the project fps (24 by default) and resolution now; do not rely on the studio to conform.
Build the sequence in the studio (browser). Open
https://studio.wooblavfx.com, create a project (1920×1080, 24 fps), import media one file at a time (multi-select import only takes the first file), and place clips. Followreferences/studio-ui-playbook.mdfor the Inspector: Timing (source-in / duration / position in frames), Transform (normalized position −1..1, scale relative to fit), Chroma key (tick "Remove screen" with a real click, set screen colour to the probed green, similarity ≈ 0.3, softness ≈ 0.12, despill 1), Colour correction (exposure stops / contrast / saturation), and keyframes via "Save keyframe here". Record every value you set intemplates/comp-plan.mdas you go — this file is what makes the fallback render reproducible.Add generated elements only after a quote. Effects → Create VFX → Explosion (or 3D object) → read the quoted price → confirm only if it is within the budget the user gave. Start small (360p, 16 samples, 2 s); a 720p/64-sample job has been seen stuck at 10% for 35 minutes. If a job shows no progress for 15 minutes, cancel it (credits are released) and re-queue smaller. Accept the finished element into the media bin, then place it on a track above the plate.
Export the master. Export → H.264 1080p (or ProRes 422 HQ if the user wants a grading master) → read the quote → confirm. Poll the export list every 60 s for up to 15 minutes. Download the file when it is ready and go to step 7.
Fallback: if the export ends in "Export could not finish" (credits are released automatically), do not retry more than once. Re-render locally from the recorded values:
scripts/keyed_overlay.sh --plate plate-1080p-8s.mp4 --subject subject.mp4 --key 0x00AE00 \ --scale 0.8:0.92 --pos 0.10,0.15:0.04,0.20 --grade 0.35:1.05:0.9 \ --element explosion.mov --element-at 40 --element-box 1440x810+758+-81 --out comp-after-1080p.mp4Run it again with
--no-grade --out comp-before-1080p.mp4when a before/after proof is wanted, then wipe them together (recipe inreferences/ffmpeg-recipes.md). Tell the user explicitly that the delivered file is a local render of the studio sequence, and which elements (e.g. the explosion) came from WooblaVFX jobs.Verify visually. Extract a contact sheet and look at it:
ffmpeg -y -i comp-after-1080p.mp4 -vf "fps=1/2,scale=480:-1,tile=4x3" -frames:v 1 contact.jpgCheck that the subject is not partially keyed away (grey/dark subjects need similarity ≈ 0.10 in ffmpeg, not 0.30), that the grade did not turn the alpha into a black box, and that the element sits where the plan says.
Package for social.
scripts/social_frame.sh comp-after-1080p.mp4 trex-chicago "T-Rex loose in Chicago" "Keyed, placed, lit and blown up in a browser"Produces
<name>-9x16.mp4(framed, brand line, URL, credit strip) and<name>-16x9.mp4(watermark). Spot-check one frame of each. For a "how it was made" cut (3 s of raw subject + plate → gold wipe → the composite), run:scripts/tutorial_montage.sh subject.mp4 0 plate-1080p-8s.mp4 trex-chicago-16x9.mp4 trex-chicago-9x16.mp4 trex-chicago \ "Subject · T-Rex on green screen" "Plate · Chicago River (Pixabay)" "Keyed · placed · lit · graded — in a browser"which writes
<name>-tutorial-16x9.mp4and<name>-tutorial-9x16.mp4. Check the frame at the wipe midpoint (t ≈ 3 s).Report using
templates/delivery-report.md: files, values used, credits spent, what came from the studio vs local, and any product bugs observed (these are valuable to the WooblaVFX team).
Checklist
- Every clip probed; project fps/resolution match the plates
- All Inspector values recorded in
comp-plan.mdbefore export - No credit purchase attempted by the agent; every quote shown to the user before confirming a job or export
- Subject fully visible in the contact sheet (no holes from the key), no black box behind graded layers
- Element placement matches the plan in both studio preview and delivered file
- Delivery report states honestly whether the file is a studio export or a local render
- Source credits present (stock plate provider, WooblaVFX element) and an AI-assisted disclosure in the suggested caption
- Tutorial montage (if requested) shows the wipe at t ≈ 3 s in both aspect ratios
- 9:16 and 16:9 files play end to end, audio track present (silent is fine),
+faststartset
Output format
A short report plus the files. Example:
Delivered: trex-chicago-9x16.mp4, trex-chicago-16x9.mp4 (22 s, 24 fps)
Source of truth: WooblaVFX project "Social demos" (studio export failed twice → local ffmpeg render of the same values)
Values: key 0x00AE00 sim 0.10 soft 0.05 · scale 0.80→0.92 · pos (0.10,0.15)→(0.04,0.20) · grade exp +0.35 con 1.05 sat 0.90
Elements from WooblaVFX: explosion (360p/16 samples, $0.06)
Credits spent: $0.06 · balance shown: $20.52
Credits: stock plates Pixabay #166247, #59405
Bugs seen: export worker fails on H.264 and ProRes; 720p explosion job stalls at 10%
Suggested caption: "T-Rex loose in Chicago — keyed, placed, lit and blown up in a browser. Made with WooblaVFX (AI-assisted). Plates: Pixabay."