higgsfield-facs
Controls facial expressions in Seedance 2.0 with FACS (Facial Action Coding System) Action Unit codes — muscle-level direction (AU12 = lip-corner puller, AU6 = cheek raiser) instead of emotion labels. Use whenever the user wants precise facial acting, a forced/uncanny/mixed expression, micro-performance in a close-up, monologue or dialogue facial beats, a 'which AU code for anger/fear/disgust' answer, or to generate a FACS reference sheet for a character. Pairs with higgsfield-soul Micro-Expressions (named expressions), higgsfield-audio (dialogue + lip-sync), and higgsfield-gpt-image-2 (the reference-sheet image).
git clone --depth 1 https://github.com/OSideMedia/higgsfield-ai-prompt-skill /tmp/higgsfield-facs && cp -r /tmp/higgsfield-facs/skills/higgsfield-facs ~/.claude/skills/higgsfield-facsSKILL.md
# Higgsfield FACS Director Direct a face the way an animator does — by **muscle**, not by mood. FACS (the Facial Action Coding System) names each facial movement as an **Action Unit**: `AU12` is the lip-corner puller (smile), `AU6` is the cheek raiser, `AU4` is the brow lowerer. Put those codes in a Seedance 2.0 prompt and the model renders the corresponding action. It is the highest-resolution facial control available on the platform, and it is where forced smiles, uncanny faces, mixed emotions, and honest micro-performance in close-up dialogue come from. > **This skill is a facial-control layer on top of `../higgsfield-seedance/SKILL.md`.** > Every FACS prompt is still a Seedance prompt — six-slot formula, Prompt-Craft > Laws, preflight linter. FACS only changes *how you specify the face*: AU codes > instead of (or alongside) emotion words. It is the muscle-level case of the > Voice Rewrite rule "describe physics, not emotion." ## QUICK FACTS *Routing aids — read the linked sections for the actual rules.* - FACS = facial expressions as **Action Unit codes** (muscle movements), not emotion labels; you write the codes into the prompt [→](#what-facs-is) - **Provenance split:** the AU vocabulary is standard human science; Seedance's *interpretation* of codes in a prompt is **[EMPIRICAL]** — high success rate, **not a guarantee** [→](#provenance-and-the-not-a-guarantee-rule) - **Plan first.** Decide the 3–4 expressions you need → generate a FACS sheet for *only those* → write the codes. Generating the full 49-AU sheet and cherry-picking is the anti-pattern [→](#the-plan-first-workflow) - **3–4 expressions max per generation.** Accuracy drops as you stack more AUs into one clip [→](#step-2-put-au-codes-in-the-seedance-prompt) - Two specification styles — **codes-only** (`AU12`) vs **codes + short anatomical description**; test both, neither is universally better [→](#step-2-put-au-codes-in-the-seedance-prompt) - The reference sheet is a **labelled-grid image** (GPT Image 2 / Nano Banana Pro); the LLM can **mislabel AUs**, so iterate and verify [→](#step-1-generate-the-facs-reference-sheet) - The character photo is **optional** — codes work without it; attach it only for identity consistency [→](#step-2-put-au-codes-in-the-seedance-prompt) - Common emotions decompose to standard AU recipes (Duchenne smile = AU6+AU12; sadness = AU1+AU4+AU15) [→](#emotion-au-recipes) - The payoff is **dialogue / monologue**: AU-per-beat schedule, combined with the `[AUDIO: Xs]` lip-sync block; every line gets pre / during / post-line beats [→](#dialogue-monologue-facial-acting) - [OFFICIAL] Body-level micro-beat recipes beyond the face (throat, breath, skin, posture) + the no-perfect-sync stagger (0.3–0.5s) and listeners-in-bokeh rules [→](#physical-micro-beats-the-body-beyond-the-face) --- ## What FACS Is The Facial Action Coding System (Ekman & Friesen) breaks the face into **Action Units** — the smallest visually distinguishable muscle movements. Instead of asking for "happy" (which the model samples diffusely across an enormous range of footage), you ask for the muscles that *produce* the expression: - `AU6` — cheek raiser (orbicularis oculi tightens, crow's feet appear) - `AU12` — lip-corner puller (zygomaticus major pulls the corners up and out) - Together, `AU6 + AU12` = a **Duchenne smile** (the genuine, eyes-involved one) A smile that uses only `AU12` reads as *polite/forced* — the eyes don't participate. That distinction is invisible to "smile" as a prompt word and trivial to specify in FACS. This is why it's the tool for **forced smiles, suppressed expressions, mixed emotions, and the uncanny** — the cases where the *difference between two similar expressions* carries the meaning. FACS is used by professional facial animators in film; here it is repurposed as a **prompt vocabulary** for Seedance 2.0. ### Where it sits among the repo's facial tools Three layers, increasing resolution: | Layer | Surface | Granularity | |---|---|---| | Named expression | `../higgsfield-soul/SKILL.md` § Micro-Expressions (Suppressed Smile, Cold Calculation…) | A whole emotion in one label | | Behavior channel | `../../vocab.md` § Emotion as Visible Behavior — Channels (breath, jaw tension, eye behavior…) | Emotion → observable behavior | | **Action Unit (this skill)** | AU codes | Emotion → **named muscle** | The channels are the *behavioral* substrate; AUs are the *anatomical* substrate. A named expression like "Quiet Devastation" = a channel mix (glassy eyes + tight jaw) = an AU combo (AU1 + AU15 + AU17 + AU24). Reach for FACS when a named expression is too coarse and you need the specific muscles. --- ## Provenance and the "Not a Guarantee" Rule Two different kinds of claim live in this skill — keep them apart: - **The AU vocabulary is standard science.** Which code means which muscle, and the classic emotion→AU prototypes (EMFACS), are stable, citeable ground truth. Treat the AU reference table and the emotion recipes as reliable. - **Seedance's interpretation of AU codes is [EMPIRICAL].** The `seedance_2_0` spec exposes **no FACS field, no expression enum, nothing facial** (verified against the spec snapshot, 2026-06-27). So "write `AU12` and get a smile" is a *prompt convention the model happens to interpret well* — not a documented capability. Practitioner report: success rate is **high**, but **codes do not guarantee** the exact expression, and a multi-AU prompt may render most but not all of the units. **The rule:** present FACS as a strong heuristic, and let the repo's iteration discipline (`../higgsfield-prompt/SKILL.md` § The Iteration Rule) confirm it on the user's own material. Same provenance class as the Seedance Prompt-Craft Laws (`../higgsfield-seedance/SKILL.md` § Prompt-Craft Laws). Never tell the user a FACS prompt is deterministic. > If a future Seedance spec adds a real facial/expression parameter, the > spec-drift tripwire should catch it — at which point this
Guided version bump — validate, tag, and create GitHub release
Run pre-release validation checks on all SKILL.md files and JSON databases
>
Seedance 2.0 video prompt director. Converts plain-text scene descriptions into production-ready bilingual EN+ZH video prompts optimized for the Seedance 2.0 video generator. Handles action scenes (combat, pursuit, stunts), general scenes (landscapes, journeys, atmosphere), and dialogue scenes (confrontations, negotiations, interrogations). Use this skill whenever the user wants to create a Seedance video prompt, describes a scene for video generation, mentions Seedance, or asks for a cinematic scene breakdown.
>
>
>
>