osidemedia/higgsfield-troubleshoot
> Use when a Higgsfield generation fails, produces poor quality, looks wrong, doesn't match the prompt, or the user needs to fix or improve an output.
npx skills add https://github.com/OSideMedia/higgsfield-ai-prompt-skill --skill higgsfield-troubleshoot
Cause: No Soul ID reference; prompt has conflicting appearance descriptions
Fix:
Cause: Camera described vaguely, not using exact preset names
Fix:
Cause: Prompt too long, conflicting instructions, over-specified
Fix:
SKILL.md HARD RULE 8)Cause: No style specified, or style description too vague
Fix:
Cause: Preset not explicitly named, or scene context doesn't support the effect
Fix:
who can logically transform
Cause: Prompt re-describes the static elements instead of what should animate
Fix:
Cause: Wrong model for the preset, or prompt style conflicts with effect
Fix:
Cause: No lighting specification, background too plain
Fix:
Cause: Platform safety filters triggering on explicit content
Fix:
When a Kling 3.0 Motion Control generation comes back wrong, the cause is almost
always upstream of the prompt — the motion reference clip, the character image,
or the orientation/scene-source settings. Walk this list before you regenerate.
| Symptom | Root cause | Fix |
|---------|-----------|-----|
| Output suddenly jumps or snaps mid-clip | The motion reference contains a hidden cut, dissolve, or hard transition | Re-trim the reference to a single continuous shot. If the source clip can't be cleaned up, reshoot or pick a different reference |
| Output is shorter than the reference clip | The source motion is too fast or too dense for clean transfer | Slow the source (50–75% playback baked in), reshoot at a calmer pace, or pick a reference with simpler motion |
| Character face drifts or warps across the clip | The character image doesn't have a clearly readable face — bad framing, low light, or the face is too small in frame | Re-shoot or re-generate the character image with closer framing, even lighting, and a neutral or slight expression |
| Body motion looks correct but the face is dead or frozen | Wrong orientation mode for the shot — Image Orientation when you needed Video Orientation, or vice versa | Switch modes: Video Orientation for full-body movement (dance, action); Image Orientation for camera-driven shots with a mostly static body. Regenerate |
| Generated character feels detached from the environment | Scene source is set incorrectly — pulling the wrong background | Decide whether the environment should come from the motion video or the character image, then set Scene source accordingly |
| Motion transfers but identity drifts across the clip | The character image isn't full enough — head or body is cut off, or framing is too tight to anchor identity | Re-upload a character image that shows both head AND body fully; this is what Element Binding needs to keep the face stable through movement |
> For the full Motion Control workflow and pre-flight input checklist, see ../higgsfield-motion/SKILL.md → "Kling 3.0 Motion Control — When and How to Run It" and "Motion Reference Input Checklist".
Cause: Head motion tokens competing with lip engine, non-MP3 format, clip too long
Fix:
higgsfield-audio skillCause: Ambient/music tokens in prompt invite generative audio engine to replace your audio
Fix:
Before generating, verify:
> Full negative constraints reference: For a comprehensive, categorized list of all
> generation artifacts and the prompt phrasing to prevent them, see
> ../shared/negative-constraints.md. This troubleshooting guide covers diagnosis and fixes;
> the shared constraints file covers prevention.
> These diagnostics apply to Cinema Studio 3.0's generation engine (Business/Team plan only). For Cinema Studio 2.5 issues, see the general troubleshooting section above.
| Symptom | Likely Cause | Fix |
|---------|-------------|-----|
| Output blurry, jittery, or morphing | Overspecification — prompt too long or too detailed | Short-form: cut to 30–100 words; use @reference images/videos instead of 50+ words of description. Block-scaffold briefs: don't shorten — tighten structure instead (one axis per clause, HARD RULE 8 regime) |
| Camera chaotic, spinning, or jittering | Violated the One-Move Rule — multiple camera moves in one shot | Rewrite to ONE primary camera move per shot. Use Cinema Studio 3.0's Smart mode, or split into multi-shot |
| Character doesn't match reference | Prompt is re-describing the character's appearance | Delete ALL physical descriptions. Describe ONLY action and emotion. The @reference carries identity |
| Action stiff or lacking impact | Missing intent/physics language | Add degree adverbs (violently, gently, explosively) and physics consequences (dust erupts, sparks fly, fabric tears) |
| Output "not what I wanted" (vague) | Ambiguous prompt with subjective language | Run Anti-Slop Check: replace beautiful, stunning, epic, amazing, dynamic with observable, measurable details |
| Audio not matching video | Audio description conflicting with visual description, or uploaded audio being overridden | Use timestamp anchoring for uploaded audio. Remove ambient/SFX tokens when using @Audio references |
Output bad?
├── Blurry/morphing → Is it a short-form prompt > 100 words?
│ ├── Yes → Cut to 30–100 words, use @reference
│ │ (block-scaffold briefs: tighten structure, never truncate)
│ └── No → Too many action beats? (>2 per 5s) → Split into multi-shot
├── Camera wrong → How many camera moves specified?
│ ├── Multiple → Reduce to ONE move (One-Move Rule)
│ └── One → Try Smart mode instead, or use @Video camera transfer
├── Character wrong → Does prompt describe character appearance?
│ ├── Yes → Delete appearance, keep only action/emotion
│ └── No → Use better reference (frontal + 3/4 + profile shots)
├── Action weak → Does prompt have physics language?
│ ├── No → Add degree adverbs + physical consequences
│ └── Yes → Reduce beat density (1–2 beats per 5s)
└── Just bad → Run Anti-Slop Check
├── Found slop words → Replace with specific observables
└── Clean → Try different genre setting, or use @reference
Cinema Studio 3.0's generation engine produces ~90% usable output. If outputs are consistently bad across multiple attempts, the prompt is almost certainly the problem — not the model. Apply the diagnostic tree systematically before regenerating.
Troubleshooting that isn't logged is troubleshooting the next session repeats.
After ANY confirmed fix from this skill, write it to the learning memory
(../../scripts/higgsfield_memory.py, databases in ../../db/):
generation): python3 scripts/seedance_lint.py --confirmed "<prompt that passed>"
blocking / audio): python3 scripts/higgsfield_memory.py add-quality '<json>' with
original_prompt, failure_description, improved_prompt, model_used —
then update-quality <id> improved once verified.
python3 scripts/higgsfield_memory.py update-filter <id> <fixed|workaround|still-blocked>
--project <name> to keep them scopedunder ../../db/projects/ instead of global memory.
Before troubleshooting, also CHECK memory first — that's higgsfield-recall's
job (query-filter / query-quality); the preflight's MEMORY RECALL section
does it automatically.
The reject_reason you log feeds the iterate-vs-batch fork (higgsfield-recall
§ Read the verdict). Logged from memory it's hearsay — "I think the face
drifted." When you can actually see the rejected output, classify it from the
frame instead of from recall. This is an opt-in assist ("diagnose this
rejected shot"), and it is advisory: vision *proposes*, the human *confirms*.
Scope (v1): stills only — an image, or a single representative frame the user
picks from a video. Full-clip motion failures (FPS drift, temporal de-dup,
multi-motion) are out of scope here; they need frame-by-frame review
(../higgsfield-seedance/FAILURE-MODES.md), not a single-frame classify.
The chain:
media_import_url (never pass a raw URL). Cowork local file → the upload
widget. Outputs are not auto-saved, so capture is an explicit step.
reject_reason enum (the table below). Note what yousee in one line (the vision_evidence).
other + note. Some visible failures (warped hand, FPSdrift) have no exact enum value. Route to other with the evidence note;
never force-fit a near-miss. If the other pile grows, that's the data
that justifies a future enum-extension PR.
physics (warpedleft hand, center frame); confirm or correct?"* — then:
python3 ../../scripts/higgsfield_memory.py log-gen <project> --model <id> \
--tags <shot_tags> --outcome rejected --reason <confirmed> \
--vision-reason <proposed> --vision-evidence "<one line>"
--reason is the human verdict (drives the fork); --vision-reason is the
proposal (feeds the agreement gate). Logging both is what lets the tool learn.
Mapping table — what vision sees → reject_reason:
| Vision observes | reject_reason |
|---|---|
| face / identity changed vs reference | identity-drift |
| wardrobe or colour shifted vs reference | wardrobe-contamination |
| extra cuts / unwanted scene breaks | extra-cuts |
| staging or blocking broken | blocking-broken |
| flat / wrong performance | performance |
| wrong camera move | camera-wrong |
| physics or anatomy violation (incl. warped hand) | physics |
| garbled on-screen text | text-render |
| provider content-filter block | filter-flagged |
| bad framing / composition | composition |
| FPS drift, temporal de-dup, or no clean home | other + evidence note |
Measure before trusting. Vision is the fork's accuracy backstop only once
proven. python3 ../../scripts/higgsfield_memory.py agreement <project> reports, per
reject_reason class, how often the proposal matched the confirmed verdict. A
class is trusted (vision may be logged without confirmation) only above the
agreement gate over enough confirmed diagnoses; until then, confirm every one.
higgsfield-prompt — MCSLA formula, prompt structure, Identity/Motion separationhiggsfield-recall — Pre-generation memory check for past failureshiggsfield-models — Model selection (wrong model = many quality issues)higgsfield-audio — Audio-specific failures and fixeshiggsfield-cinema — Cinema Studio–specific issues (512 char limit, @ Element bugs)../shared/negative-constraints.md — Prevention-focused constraint referenceTake osidemedia/higgsfield-troubleshoot from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.