← HiggsfieldCONTENT HISTORY

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.

WHAT CHANGED · RULE-BASED ANALYSIS

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

Before

[{"relative_path":"references/product-intake.md","size_in_bytes":6573},{"relative_path":"references/subtitles.md","size_in_bytes":5457},{"relative_path":"references/ugc-character.md","size_in_bytes":64060},{"relative_path":"references/ug...

After

[{"relative_path":"agents/openai.yaml","size_in_bytes":213},{"relative_path":"references/product-intake.md","size_in_bytes":6573},{"relative_path":"references/subtitles.md","size_in_bytes":5457},{"relative_path":"references/ugc-character...

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

changed /included_files

BEFORE
[
  {
    "relative_path": "references/product-intake.md",
    "size_in_bytes": 6573
  },
  {
    "relative_path": "references/subtitles.md",
    "size_in_bytes": 5457
  },
  {
    "relative_path": "references/ugc-character.md",
    "size_in_bytes": 64060
  },
  {
    "relative_path": "references/ugc-try-board.md",
    "size_in_bytes": 100525
  },
  {
    "relative_path": "references/ugc-try-clip.md",
    "size_in_bytes": 99826
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 213
  },
  {
    "relative_path": "references/product-intake.md",
    "size_in_bytes": 6573
  },
  {
    "relative_path": "references/subtitles.md",
    "size_in_bytes": 5457
  },
  {
    "relative_path": "references/ugc-character.md",
    "size_in_bytes": 64060
  },
  {
    "relative_path": "references/ugc-try-board.md",
    "size_in_bytes": 100525
  },
  {
    "relative_path": "references/ugc-try-clip.md",
    "size_in_bytes": 99826
  }
]
Full snapshot data
{
  "description": "Produce a finished UGC try-on video where one consenting adult or generated adult creator wears and poses with a garment, footwear item, bag, jewelry piece, or wearable accessory while showing fit and texture. Use when try-on, wearing, OOTD, fit-check, or video-of-me-wearing intent is explicit. Do not load this skill for a text-only script, outline, shot list, or advice, even if it mentions UGC, OOTD, or try-on; those requests need writing, not the video-production workflow. Missing product, duration, or creator input is an intake gap. Do not use for reviews without a try-on, unboxings, tutorials, product-only ads, SaaS walkthroughs, generic ads, or footage edits.\n",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 213
    },
    {
      "relative_path": "references/product-intake.md",
      "size_in_bytes": 6573
    },
    {
      "relative_path": "references/subtitles.md",
      "size_in_bytes": 5457
    },
    {
      "relative_path": "references/ugc-character.md",
      "size_in_bytes": 64060
    },
    {
      "relative_path": "references/ugc-try-board.md",
      "size_in_bytes": 100525
    },
    {
      "relative_path": "references/ugc-try-clip.md",
      "size_in_bytes": 99826
    }
  ],
  "name": "ugc-try-on-video",
  "skill_md_contents": "---\nname: ugc-try-on-video\ndescription: >\n  Produce a finished UGC try-on video where one consenting adult or generated adult creator wears and poses with a garment,\n  footwear item, bag, jewelry piece, or wearable accessory while showing fit\n  and texture. Use when try-on, wearing, OOTD, fit-check, or\n  video-of-me-wearing intent is explicit. Do not load this skill for a text-only\n  script, outline, shot list, or advice, even if it mentions UGC, OOTD, or try-on;\n  those requests need writing, not the video-production workflow.\n  Missing product, duration, or creator\n  input is an intake gap. Do not use for reviews without a try-on, unboxings,\n  tutorials, product-only ads, SaaS walkthroughs, generic ads, or footage edits.\n---\n\n## Activation analytics\n\nWhen using this skill for a new user request, call `track_skill_activation` once with `{\"skill_name\":\"ugc-try-on-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 try-on video\n\nProduce one hosted 9:16 MP4 with a single locked creator identity and wearable\nproduct. Each board is a 21:9 sheet of eight vertical 9:16 slots; one Seedance\nclip turns those slots into eight narrative beats separated by seven hard cuts.\n\n## Runtime contract\n\n- Use only tools exposed by the current OpenAI host and Higgsfield MCP.\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 every ChatGPT attachment once through `media_upload_and_confirm` and\n  keep its confirmed `media_id`.\n- Authorized HTTPS product images may seed image generation directly. Convert\n  the chosen product image once into a confirmed Higgsfield UUID before video:\n  `media_upload` → download and PUT inside `sandbox_exec` → `media_confirm`.\n- Run downloads, ffmpeg, Python, probing, transcription, assembly, and uploads\n  only through `sandbox_exec`.\n- Reserve sandbox outputs with `media_upload` before producing them, PUT in the\n  same command, and call `media_confirm` only after HTTP 200.\n- Caption scripts are preinstalled at\n  `$HF_WORKFLOWS/ugc-try-on-video/scripts/`.\n- Use `generate_image_batch` and `generate_video_batch`, at most six requests\n  per call, each `{index, params}` with `params.count:1`. Keep indices stable.\n- Wait with `jobs_wait` in groups of at most eight and\n  `timeout_seconds:15`. Poll only active or retryable lookup-failed jobs.\n- Never send `submission_failed` entries without job IDs to `jobs_wait`. Retry\n  only rejected or failed indices.\n- If a call returns `unlim_choice`, ask its message and resubmit unchanged with\n  the user's `use_unlim` choice.\n- Never substitute a locked unavailable model.\n\n## Hard rules\n\n- Use one `character_media_id` for every board and clip.\n- Board 1 slot 1 is the muted pre-wear outfit with one plain kraft bag. From\n  slot 2 onward, the product is worn and the bag never returns.\n- Never depict a costume change, opening the kraft bag, or lifting the product\n  from it. The hard cut performs the change.\n- Slots 4 and 6 are hand-free garment macros; no hand touches the fabric.\n- No mirrors or reflections. Lock hair, face, product silhouette, color, print,\n  and design across the video.\n- Generate boards sequentially. Write all clip prompts before grouped video\n  submission.\n- Run the de-slop pass on every board; raw fallback is allowed only after both\n  Seedream attempts fail.\n- Never bake text into generation. Optional text is post-render only.\n- No CTA tail. End naturally on the final spoken beat.\n- Default to English with an American accent unless explicitly changed.\n\n## Safety and suitability gate — before intake or generation\n\nIf any item below fails, do not generate and do not route around the gate:\n\n- **Creator authorization:** use only a generated adult age 21+ or a consenting\n  adult non-public person whose image the user is authorized to use. A supplied\n  photo is not permission to impersonate its subject. If third-party consent or\n  adult status is unclear, ask once; decline public figures, celebrities,\n  minors, non-consenting people, and deceptive identity use. Never silently\n  age-transform a request and never clone or imitate a supplied person's voice.\n- **General-audience fashion:** this workflow is for ordinary garments,\n  footwear, bags, jewelry, and wearable accessories presented as a fit or style\n  demonstration. Decline intimate apparel, lingerie, underwear, fetish wear,\n  transparent garments, sexualized styling, nudity, or an emphasis on intimate\n  anatomy. Do not adapt a disallowed request into a different outfit.\n- **Allowed promotion:** decline political persuasion and promotion of\n  prohibited or age-restricted goods or services, including adult sexual\n  products or services, gambling, illegal or regulated drugs, prescription\n  medication, tobacco or nicotine, weapons, counterfeit or illicit goods,\n  extremist goods, deceptive or high-risk financial services, malware,\n  spyware, fraud, and covert surveillance.\n- **Truthful presentation:** preserve only product claims supplied by the user;\n  never infer performance, results, purchase, ownership, endorsement, or lived\n  experience. A generated creator presents a brand-authorized concept, not an\n  organic customer testimonial.\n\n## Duration and board progression\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 these arc roles:\n\n- K=1 `BOARD_1_TRY_ON_CANONICAL`: PRE_WEAR, WEARING, FRONT_POSE,\n  TEXTURE_CLOSEUP, TURN, DETAIL, STYLE_POSE, FINAL_LOOK.\n- K=2 `BOARD_2_TRY_ON_HOME_TOUR`: continue through other rooms in the same\n  home.\n- K=3 `BOARD_3_TRY_ON_OUTDOOR`: all outdoor; light rain from slot 2, dry hair,\n  wet-detail macros, no reflections.\n- K=4 `BOARD_4_TRY_ON_HOME_REFLECT`: settled indoor reflection.\n- K≥5 `BOARD_K_TRY_ON_LOOP`: alternate established and new compatible places.\n\n## Phase 0 — Intake\n\nAfter the safety and suitability gate passes, parse product photo or URL,\nduration, attached authorized adult creator photo or desired generated-adult\ngender, plus explicit location, appearance, mood, language, accent, claims, and\ntext choices. Classify the brief as `auto`, `guided`, or `director`.\n\nAsk once for real gaps: product, duration (offer 10s/15s/30s/45s), and creator\nphoto or gender. Offer accent/quirk only when the brief already signals origin\nor unusual creator energy. Never ask about models, boards, aspect ratios,\nresolution, audio, transitions, or identity training.\n\n## Phase 1 — Normalize the product\n\nRead `references/product-intake.md`. Resolve and reuse verbatim:\n`product_reference`, confirmed `product_video_reference`, canonical wearable\ndescription, tier, category, materials, drape, absent features, and visible\nside. Never infer price, claims, or an unseen side.\n\n## Phase 2 — Lock the creator\n\nIf an authorized adult creator photo is attached and the gate has established\nconsent, import it with `media_upload_and_confirm` and use that confirmed ID\nwithout re-asking or editing the photo.\n\nOtherwise read `references/ugc-character.md`, settle fresh variety rolls and\nwrite one creator prompt. 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 with `jobs_wait`, then lock `(character_media_id, character_url)` to the\nreturned job ID and result URL. Never replace the identity mid-run except under\nthe bounded character re-roll below.\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; the clip reference distributes it across the\neight beats. Board 1 is a personal-want mini-story. Later boards continue\nmid-thought. Remove AI-tell openers, generic praise, repeats, unsupported\nclaims, and any CTA. The first word of each segment must be hook content, not a\nrecording warm-up.\n\nSave the exact full monologue to `output/script.txt` during assembly.\n\n## Phase 4 — Generate boards sequentially\n\nRead `references/ugc-try-board.md`. For each K submit one stable-index\n`generate_image_batch` request using `gpt_image_2`, `aspect_ratio:\"21:9\"`,\n`resolution:\"2k\"`, `quality:\"high\"`, and media in this order: product,\ncharacter, then cleaned previous board when K>1. Match `@ImageN` declarations\nto that order.\n\nWait until terminal before creating K+1. Keep the returned board job ID and\nresult URL.\n\n### Mandatory de-slop pass\n\nFor every board, take the completed `result_url` returned by `jobs_wait` and run\none `generate_image_batch` request with `seedream_v5_pro`, that HTTPS result URL\nwith canonical 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 retain raw rather than stall. Feed the cleaned K-1\nto board K.\n\n## Phase 5 — Write and submit clips\n\nRead `references/ugc-try-clip.md`. Write every clip prompt before submission.\nCarry K, N, duration, arc role, monologue segment verbatim, specificity,\npersona, garment contract, and references. Enforce the six lip-sync beats and\ntwo silent macro voiceover beats described in the reference.\n\nRequire a 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 renders 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, garment close-ups, and 2–3 mid-word frames.\nRequire garment consistency, hand-free macros, bag only in board 1 slot 1, no\nmirrors/reflections, at most two hands, stable hair and face, clean lips, and no\nbaked 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`, then run one\nself-contained `sandbox_exec` that downloads clips in K order, writes an\nexplicit concat manifest, stream-copies hard cuts, probes the output, and PUTs\nit to the reserved URL. Confirm only after HTTP 200. Never use `nohup` after a\ndetached-command deadline; split into bounded foreground calls instead.\n\n## Phase 8 — Optional text and delivery\n\nIf unanswered, ask once for `Subtitles`, `Hook`, `Both`, or `No text` (default),\nplus whether a post package is wanted. Read `references/subtitles.md`; timing\nmust come from the final audio's word-level transcript.\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 Seedance call fails twice consecutively in a way consistent\nwith character moderation, rerun the original character request with a new\nseed, discard dependent boards, and resume from board generation. Cap at two\ncharacter re-rolls. Never continue with missing media.\n\n## References\n\n- `references/product-intake.md`: wearable normalization\n- `references/ugc-character.md`: creator prompt\n- `references/ugc-try-board.md`: eight-slot 21:9 try-on board\n- `references/ugc-try-clip.md`: eight-beat Seedance prompt\n- `references/subtitles.md`: optional post-render text\n\nNever load sibling UGC references.\n"
}

SHA-256 of public snapshot: 8467003f1f5663322b73e3a76ea9d19fd7aba29f7fcd833adc028d27045099fe