Update to Higgsfield
Snapshot Sep 30, 2026 · 23:18 UTC · version 2.1.0
Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Supporting file metadata differs
Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Supporting files
[{"relative_path":"references/product-intake.md","size_in_bytes":6573},{"relative_path":"references/subtitles.md","size_in_bytes":5465},{"relative_path":"references/ugc-character.md","size_in_bytes":63979},{"relative_path":"references/ug...
[{"relative_path":"agents/openai.yaml","size_in_bytes":212},{"relative_path":"references/product-intake.md","size_in_bytes":6573},{"relative_path":"references/subtitles.md","size_in_bytes":5465},{"relative_path":"references/ugc-character...
Compare saved observations
Download comparison JSONFull technical diff · 1 changed fields
changed /included_files
[
{
"relative_path": "references/product-intake.md",
"size_in_bytes": 6573
},
{
"relative_path": "references/subtitles.md",
"size_in_bytes": 5465
},
{
"relative_path": "references/ugc-character.md",
"size_in_bytes": 63979
},
{
"relative_path": "references/ugc-unboxing-board.md",
"size_in_bytes": 74818
},
{
"relative_path": "references/ugc-unboxing-clip.md",
"size_in_bytes": 68318
}
][
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 212
},
{
"relative_path": "references/product-intake.md",
"size_in_bytes": 6573
},
{
"relative_path": "references/subtitles.md",
"size_in_bytes": 5465
},
{
"relative_path": "references/ugc-character.md",
"size_in_bytes": 63979
},
{
"relative_path": "references/ugc-unboxing-board.md",
"size_in_bytes": 74818
},
{
"relative_path": "references/ugc-unboxing-clip.md",
"size_in_bytes": 68318
}
]Full snapshot data
{
"description": "Produce a creator-led UGC unboxing video: a visible creator opens a package and reacts to its reveal. Require both the creator-led format and an unboxing, haul or PR-drop arc. Opening a package, showing its contents or focusing on packaging alone does not request a creator performance; use ordinary video generation for a product-only reveal. Exclude scripts, still images, footage edits and other UGC formats. Named preset commands such as /unboxing use the Higgsfield preset resolver. Missing assets after a valid format match are intake gaps.\n",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 212
},
{
"relative_path": "references/product-intake.md",
"size_in_bytes": 6573
},
{
"relative_path": "references/subtitles.md",
"size_in_bytes": 5465
},
{
"relative_path": "references/ugc-character.md",
"size_in_bytes": 63979
},
{
"relative_path": "references/ugc-unboxing-board.md",
"size_in_bytes": 74818
},
{
"relative_path": "references/ugc-unboxing-clip.md",
"size_in_bytes": 68318
}
],
"name": "ugc-unboxing-video",
"skill_md_contents": "---\nname: ugc-unboxing-video\ndescription: >\n Produce a creator-led UGC unboxing video: a visible creator opens a\n package and reacts to its reveal. Require both the creator-led format and\n an unboxing, haul or PR-drop arc. Opening a package, showing its contents or\n focusing on packaging alone does not request a creator performance; use\n ordinary video generation for a product-only reveal. Exclude scripts,\n still images, footage edits and other UGC formats. Named preset commands\n such as /unboxing use the Higgsfield preset resolver. Missing assets after\n a valid format match are intake gaps.\n---\n\n## Activation analytics\n\nWhen using this skill for a new user request, call `track_skill_activation` once with `{\"skill_name\":\"ugc-unboxing-video\"}` at the earliest opportunity that preserves widget-first and exclusive-tool turns; defer to a later turn when required. Do not repeat for polling, retries, references, or continuation of the same request. If tracking is unavailable or fails, continue the task without retrying. Send only the skill name.\n\n# UGC unboxing video\n\n## Format gate\n\nThe brief must request a creator-led reveal, not simply a product coming out of\nits packaging. Do not introduce a visible creator or reaction arc to make a\nproduct-only video fit this workflow. Once the format matches, collect the\ncreator identity, product and duration normally.\n\nProduce one hosted 9:16 MP4 with one creator identity. Each board is a 21:9\nsheet of four vertical 9:16 slots; one Seedance clip turns the board into four\ninternal hard cuts: PACKED → REVEAL → PRODUCT-FOCUS → SATISFACTION.\n\n## Runtime contract\n\n- Use only current OpenAI-host and Higgsfield MCP tools.\n- Ask through `ask_user_input` when exposed, `ask_user_input_v3` only when that\n exact variant exists, otherwise one concise chat question. Never use legacy\n elicitation names.\n- Import ChatGPT attachments once with `media_upload_and_confirm`; keep their\n confirmed IDs.\n- Authorized HTTPS images may seed image generation directly. Convert the\n selected product image into a confirmed Higgsfield image UUID before video:\n `media_upload` → sandbox download+PUT → `media_confirm`.\n- Run downloads, ffmpeg, Python, probes, transcription, assembly, and uploads\n only through `sandbox_exec`.\n- Reserve sandbox outputs before producing them, PUT within the same command,\n and confirm only after HTTP 200.\n- Caption scripts are preinstalled at\n `$HF_WORKFLOWS/ugc-unboxing-video/scripts/`.\n- Use `generate_image_batch` and `generate_video_batch`, stable\n `{index, params}` entries, `params.count:1`, and at most six requests per call.\n- Wait through `jobs_wait` in groups of at most eight with\n `timeout_seconds:15`. Poll only active or retryable lookup-failed jobs.\n- Never pass an entry without `job_id` to `jobs_wait`; retry only rejected or\n failed indices.\n- For `unlim_choice`, ask its message and resubmit unchanged with the user's\n `use_unlim` choice.\n- Do not substitute a locked unavailable model.\n\n## Hard rules\n\n- Use one `character_media_id` throughout.\n- Board 1 slot 1 always shows a sealed, taped box and no product. The reveal is\n slot 2. The box is at the edge or gone in slot 2 and absent forever in slots\n 3–4 and later boards.\n- A real package photo is optional. Without one use one generic plain brown\n delivery box; never invent branding.\n- Product analysis happens once and is reused verbatim.\n- Generate boards sequentially; write all clip prompts before grouped video\n submission.\n- De-slop every board. Use a raw board only after both allowed Seedream attempts\n fail.\n- Never bake text into generation. Optional text is post-render.\n- No greeting or reintroduction after board 1.\n- Default to English speech with an American accent unless explicitly changed.\n\n## Duration and arc\n\n| Total duration | Boards | Clip durations |\n| --- | ---: | --- |\n| 4–15s | 1 | total duration |\n| 16–19s | 2 | balance both to at least 4s |\n| 20–30s | 2 | 15, remainder |\n| 31–45s | 3 | 15, 15, remainder |\n| 46–60s | 4 | 15, 15, 15, remainder |\n| >60s | ceil(D/15) | 15 each, final clip at least 4s |\n\nUse `BOARD_1_CANONICAL_UNBOXING` for K=1 and `BOARD_K_POST_REVEAL` for\nK>1. Later boards continue exploring, using, or demonstrating the product.\n\n## Phase 0 — Intake\n\nParse product photo or URL, duration, attached creator photo or desired gender,\noptional real-package photos, approved claims, language/accent, and explicit\nlook or location overrides. Classify specificity as `auto`, `guided`, or\n`director`.\n\nAsk once for missing duration (offer 10s/15s/30s/45s), product, creator\nphoto/gender, and whether a real package photo is available. If the user chooses\nto attach a package but has not attached it, ask once for the actual image and\nwait. A bare “yes” is not package media. Never ask about models, board count,\naspect ratios, resolution, audio, transitions, or identity training.\n\n## Phase 1 — Normalize product and package\n\nRead `references/product-intake.md`. Resolve `product_reference`, confirmed\n`product_video_reference`, canonical product description, tier, category,\nmechanics, hand-relative scale, visible side, and absent features.\n\nImport real package photos once and keep their confirmed IDs. Otherwise set the\npackage reference to null and use the generic-box contract.\n\n## Phase 2 — Lock the creator\n\nIf a creator photo is attached, import it once and use it unchanged.\n\nOtherwise read `references/ugc-character.md`, settle fresh variety rolls, write\none clean creator prompt, and submit:\n\n```json\n{\"requests\":[{\"index\":0,\"params\":{\"model\":\"soul_2\",\"prompt\":\"<creator prompt>\",\"count\":1,\"aspect_ratio\":\"3:4\",\"quality\":\"2k\"}}]}\n```\n\nWait until terminal and lock the returned job ID and result URL.\n\n## Phase 3 — Write the monologue\n\nUse roughly 12–20 words for ≤10s, 20–28 for 11–12s, and 28–35 for 13–15s.\nSplit into one segment per board. Board 1 uses a caved-in confession or other\nspecific reveal-compatible hook, a body-event reaction at the reveal, one turn,\nand a natural resolution. Later boards continue mid-thought.\n\nRemove AI-tell warm-ups, generic praise, repetition, and unsupported claims.\nThe literal first word of every segment must be hook content. Save the exact\nfull monologue to `output/script.txt` during assembly.\n\n## Phase 4 — Generate boards sequentially\n\nRead `references/ugc-unboxing-board.md`. For each K submit one stable-index\n`generate_image_batch` request using `gpt_image_2`, 21:9, 2k, high quality,\nand media order product, character, optional real package, then cleaned previous\nboard for K>1. Drop absent media and renumber `@ImageN` declarations.\n\nWait until terminal before K+1. Keep each board job ID and result URL.\n\n### Mandatory de-slop pass\n\nFor every raw board, take the completed `result_url` returned by `jobs_wait` and\ncall `generate_image_batch` with `seedream_v5_pro`, that HTTPS result URL with\ncanonical role `image`, 21:9, 2k, and this exact prompt:\n\n> KEEP EXACTLY the framing, composition, slot layout, camera distances, poses,\n> subjects and product of this horizontal storyboard sheet and every one of its\n> side-by-side vertical slots — no reframe, no zoom, no crop, no re-layout, no\n> change to the scene, to any person's face / hair / body, or to the product\n> design. CHANGE ONLY micro-realism, applied identically in every slot:\n> true-to-life pore-level skin with natural texture and fine vellus hair, real\n> material detail, even natural daytime light with gentle highlight roll-off and\n> faint true sensor noise, a flat authentic iPhone photo, deep focus. PRESERVE\n> each face's exact shape / width / proportions 1:1 — do NOT squeeze / narrow /\n> slim / stretch any face. AVOID AI-slop: waxy plastic skin, airbrushed poreless\n> skin, beauty-filter smoothing, over-saturation, HDR glow / bloom / halos,\n> oversharpening, teal-orange grade, shallow depth of field, bokeh, cinematic /\n> DSLR look. Keep the product blank / unbranded, no added text, no watermark, no\n> baked slot labels.\n\nThe OpenAI generation route imports that URL as a concrete `media_input` and\nnormalizes the generic image role to Seedream's `image_references` wire field.\nNever pass the raw board job ID to this i2i call.\n\nReplace raw board refs with the cleaned result. Moderation failure: retry once\nwith `seedream_v5_lite`, then keep raw rather than stall. Feed cleaned K-1 into\nboard K.\n\n## Phase 5 — Write and submit clips\n\nRead `references/ugc-unboxing-clip.md`. Write all prompts before submission.\nCarry K, N, duration, arc role, monologue segment verbatim, specificity,\ncharacter/product/package continuity, and approved claims.\n\nRequire confirmed `product_video_reference`. Submit stable K requests through\n`generate_video_batch`, at most six per call:\n\n```json\n{\"requests\":[{\"index\":1,\"params\":{\"model\":\"seedance_2_5\",\"prompt\":\"<clip prompt>\",\"count\":1,\"aspect_ratio\":\"9:16\",\"resolution\":\"1080p\",\"duration\":15,\"mode\":\"omni_reference\",\"generate_audio\":true,\"medias\":[{\"value\":\"<clean_board_job_id>\",\"role\":\"image\"},{\"value\":\"<character_media_id>\",\"role\":\"image\"},{\"value\":\"<product_video_reference>\",\"role\":\"image\"}]}}]}\n```\n\nSeedance 2.5 supplies native speech with `mode:\"omni_reference\"` and\n`generate_audio:true`. Never call `generate_audio`. Wait for all jobs\nand retry only failed indices.\n\n## Phase 6 — Frozen-frame QA\n\nInspect evenly spaced frames, every product close-up, and 2–3 mid-word frames.\nRequire one product, at most two hands, correct box disappearance, consistent\nmechanics/scale/state, no gibberish or competing brand, stable face, clean lips,\nand no baked text. Correct and rerun only the failed clip.\n\n## Phase 7 — Assemble and export\n\nFor N=1, use the accepted clip URL. For N≥2, reserve `final.mp4` and run one\nself-contained sandbox command that downloads clips in K order, writes an\nexplicit concat manifest, stream-copies hard cuts, verifies with `ffprobe`, and\nPUTs the result. Confirm only after HTTP 200. On detached-command deadline, use\nbounded foreground calls; never use `nohup`.\n\n## Phase 8 — Optional text and delivery\n\nIf unanswered, ask once for `Subtitles`, `Hook`, `Both`, or `No text` (default),\nplus a post-package choice. Read `references/subtitles.md`; use word-level\ntiming from final audio.\n\nReturn one confirmed hosted video URL and duration. A requested post package is\nchat-only: caption, 3–5 hashtags, pinned comment, and loop note.\n\n## Character re-roll\n\nIf the same board or video call fails twice consecutively in a way consistent\nwith creator moderation, rerun the original creator request with a new seed,\ndiscard dependent boards, and resume at board generation. Cap at two re-rolls.\nNever submit video with missing media.\n\n## References\n\n- `references/product-intake.md`: product normalization\n- `references/ugc-character.md`: creator prompt\n- `references/ugc-unboxing-board.md`: four-slot 21:9 board and box rules\n- `references/ugc-unboxing-clip.md`: four-cut Seedance prompt\n- `references/subtitles.md`: optional post-render text\n\nNever load sibling UGC references.\n"
}SHA-256 of public snapshot: 6c4478df1262936bd797a88e062aa3aaad5d0fa838a35ac4604e6cc473aa2405