Higgsfield Generate
Submit jobs to any Higgsfield model. Wraps the higgsfield CLI. Covers generic image/video gen and Marketing Studio (branded ads, avatars, products, hooks, settings).
Step 0 — Bootstrap
Before any other command, make sure the CLI is installed and authenticated:
- If
higgsfield is not on $PATH, install it:curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh
- If
higgsfield account status fails with Session expired / Not authenticated, ask the user to run higgsfield auth login (interactive, opens a browser) and wait for them to confirm before continuing.
Skip both checks if higgsfield account status already prints account info.
UX Rules
- Be concise. No raw IDs, no JSON dumps in chat. Print result URL when ready.
- No internal jargon. Don't narrate "calling higgsfield cost", "polling job".
- Detect the user's language from the first message and reply in it. Technical args (
--aspect_ratio 16:9) stay English.
- Don't batch-ask. Pick a sane default model and ask one thing at a time only if genuinely missing.
- Don't pre-estimate cost. Just submit unless the user asks.
- Pass
--wait to generate create so the command blocks until done and prints the result URL itself. Avoid the two-step create → wait pattern.
Workflow — generic generation
Pick a model. Practical defaults from production use:
Image:
- Brand product visual (Pinterest pin, lifestyle, hero banner, ad pack, virtual try-on) → use
higgsfield-product-photoshoot instead. NOT this skill.
- Branded ad image with avatar + product (Marketing Studio shape) → Marketing Studio Image (see Marketing Studio below)
- Aesthetic UGC / fashion editorial / lifestyle character → Soul 2.0
- Cinematic still frame → Soul Cinema
- Highly characterful creative persona (text-only, distinctive) → Soul Cast
- Locations / environments / no-people scenes → Soul Location (best in class)
- Vector illustrations OR face edit + complex scene swap → Seedream 4.5
- Soul Character (reference id from
higgsfield-soul-id) → Soul 2.0 for stills, Soul Cinema for cinematic
- Fast and cheap iteration → Z Image
- Character or cartoon-style work → Nano Banana 2; step up to Nano Banana Pro on hard cases
- Default for everything else → GPT Image 2. Graphic design, UI, banners, typography, and high-fidelity general generation.
Video:
- All advertising / commercial / branded ad video → Marketing Studio (see Marketing Studio below)
- Default all-purpose serious video (multi-shot, consistent identity, motion-heavy) → Seedance 2.0. SOTA.
- Single-plane scene without strong dynamics, cheaper than Seedance 2.0 → Kling 3.0
- Cheap clean shot without cuts → Seedance 1.5 Pro
- Cinema-grade highest fidelity → Cinema Studio Video 3.0
- Cheap with strong physics, no audio needed → Minimax Hailuo
- Fast batch / volume → Veo 3.1 Lite
For the actual --model ID to pass to higgsfield generate create, run higgsfield model list --json | jq to map display names to IDs. See references/model-catalog.md for the full table.
Pass media inputs straight to flags. Media flags accept a local file path or a UUID. CLI auto-uploads paths and auto-detects job vs upload for UUIDs. No need to pre-upload. Each model declares accepted roles (image, start_image, end_image, video, audio) — see references/media-inputs.md.
Validate quickly. If unsure of params, run higgsfield model get <jst> --json once and pass only what's needed. Use schema defaults otherwise. The server returns adjustments for non-fatal coercions (e.g. aspect_ratio=99:99 → closest match) and a structured error for invalid declared-param values.
Submit and wait in one shot. higgsfield generate create <jst> --prompt "..." [media flags] [param flags] --wait. Blocks until terminal status and prints the result URL on stdout. Tunables: --wait-timeout 20m (default 10m), --wait-interval 5s (default 3s).
Deliver. Send the URL plus a one-line summary (model, duration if video).
To inspect or rerun later, higgsfield generate list --json and higgsfield generate get <id> --json work for retrospection. higgsfield generate wait <id> is still available if you ever need to rejoin a job started without --wait.
Media flags
| Flag |
Use for |
Models that accept it |
--image <path-or-id> |
reference image |
most image models, seedance_2_0, veo3, marketing_studio_video |
--start-image <path-or-id> |
first frame for image-to-video transitions |
kling3_0, kling2_6, veo3_1, seedance_2_0, marketing_studio_video |
--end-image <path-or-id> |
last frame for transitions |
kling3_0, seedance_2_0, marketing_studio_video |
--video <path-or-id> |
reference video |
seedance_2_0 |
--audio <path-or-id> |
reference audio (lipsync, soundtrack match) |
seedance_2_0 (use this, NOT --generate-audio) |
Each flag accepts either a local file path (auto-uploaded) or a UUID (upload id from higgsfield upload create, or a previous job id). Each model declares its own role set via MEDIA_ROLES. See references/media-inputs.md for the full table.
Common params
Flags pass through to model schema. Use higgsfield model get <jst> to discover.
higgsfield generate create gpt_image_2 --prompt "neon city at dusk" --aspect_ratio 16:9 --resolution 2k --wait
higgsfield generate create nano_banana_2 --prompt "anime character concept, expressive pose" --image ./ref.png --wait
higgsfield generate create seedance_2_0 --prompt "camera dollies in" --start-image ./first.png --duration 8 --wait
higgsfield generate create text2image_soul_v2 --prompt "..." --soul-id <soul_ref_id> --quality 2k --wait
For machine-readable output (chained pipelines, agent context), add --json. With --wait --json you get the final job object array. Without --wait, you get the job IDs.
Stdin prompt: echo "..." | higgsfield generate create z_image --wait.
Soul image quality: for text2image_soul_v2 and soul_cinematic, pass --quality 1.5k or --quality 2k. These are UI-facing tiers; the backend maps them to 720p/1080p and model-specific dimensions from the selected --aspect_ratio. soul_location has no quality selector; it uses fixed dimensions per aspect ratio.
Marketing Studio
Branded image/video gen: avatars + products + optional setup hooks/settings + ad-style modes. Use models marketing_studio_video and marketing_studio_image.
Concepts
- Avatar — presenter face. Curated
preset (browse higgsfield marketing-studio avatars list) or custom (uploaded photos via higgsfield marketing-studio avatars create). For UGC modes, an avatar is optional if the brief clearly mentions a person; the backend can create a Soul Character automatically. Pass an avatar when the user wants a specific presenter.
- Product — brand item with title + reference images. Imported from URL (
higgsfield marketing-studio products fetch --url ...) or created from uploaded images (higgsfield marketing-studio products create).
- Webproduct — App Store / web page version. Auto-routes when fetching App Store URLs.
- Hook — reusable opening angle / ad hook. Browse with
higgsfield marketing-studio hooks list. Hook text is prepended to the user's prompt; it does not replace --prompt.
- Setting — reusable environment / scene context. Browse with
higgsfield marketing-studio settings list.
- Ad reference — reusable inspiration video that can be bound to an avatar and/or product. Created from an uploaded video (
--video-input <upload_id>) or a previous generation job (--job <job_id>). Browse with higgsfield marketing-studio ad-references list. See references/marketing-ad-references.md.
Discovery commands
Use these exact list commands when the user asks what already exists:
higgsfield marketing-studio avatars list --json
higgsfield marketing-studio products list --json
higgsfield marketing-studio hooks list --json
higgsfield marketing-studio settings list --json
higgsfield marketing-studio ad-references list --json
--hook_id and --setting_id are supported by marketing_studio_video only; do not pass them to marketing_studio_image.
UX rules (additional)
- One question per phase. Don't ask product+avatar+mode upfront.
- Two ad approaches are mutually exclusive. Either the user gives an ad reference video (reference-driven) or picks hook/setting blocks (composed-from-blocks) — never both. If the user has an ad reference selected, do not offer hook/setting; if hook/setting are picked, do not offer to attach an ad reference.
- Ad reference source. The only valid inputs are a local video file (uploaded via
higgsfield upload create ... --video) or a prior video job. If the user provides anything else, ask for a local file.
Workflow — quick ad video
- Get product.
- Existing product →
higgsfield marketing-studio products list --json
- URL →
higgsfield marketing-studio products fetch --url <url> --wait (polls until import done)
- Local images →
higgsfield upload create <photo>... then higgsfield marketing-studio products create --title "..." --image <id>...
Capture product id. When using --hook_id, strongly prefer passing --product_ids; hooks are designed to pivot into a product and work poorly without product context.
- Pick avatar if needed.
- Default:
higgsfield marketing-studio avatars list and pick a preset matching the brand voice.
- Custom:
higgsfield marketing-studio avatars create --name "..." --image <upload_id>.
For UGC modes, you may omit --avatars when no specific presenter is required and the brief mentions a person; the backend can synthesize a Soul Character.
- Optionally pick setup items.
- Hook:
higgsfield marketing-studio hooks list --json
- Setting:
higgsfield marketing-studio settings list --json
Pass selected IDs as --hook_id <hook_id> and --setting_id <setting_id> for marketing_studio_video only. Do not copy the hook's prompt into --prompt unless the user explicitly wants to reinforce the same wording.
- Pick mode if needed. Default is
ugc; --mode is not required just because --hook_id is present. Other current slugs: ugc_how_to, ugc_unboxing, product_showcase, product_review, tv_spot, wild_card, ugc_virtual_try_on, virtual_try_on. Hook/setting are valid only for ugc, ugc_how_to, ugc_unboxing, product_review, ugc_virtual_try_on — do not pass --hook_id / --setting_id with the other modes. See references/marketing-modes.md.
- Generate (one-shot).
PRODUCT_IDS_JSON=$(mktemp)
AVATARS_JSON=$(mktemp)
printf '["<product_id>"]' > "$PRODUCT_IDS_JSON"
printf '[{"id":"<avatar_id>","type":"preset"}]' > "$AVATARS_JSON"
higgsfield generate create marketing_studio_video \
--prompt "..." \
--avatars @"$AVATARS_JSON" \
--product_ids @"$PRODUCT_IDS_JSON" \
--mode ugc \
--duration 15 \
--resolution 720p \
--aspect_ratio 9:16 \
--wait
Add --hook_id <hook_id> and/or --setting_id <setting_id> when a setup hook/setting was selected.
product_ids and avatars are JSON arrays; pass them via @/path/to/file.json. Do not pass a bare UUID to --product_ids.
Resolution is 480p or 720p. Aspect ratio is one of auto/21:9/16:9/4:3/1:1/3:4/9:16. --generate-audio true is supported here (unlike seedance_2_0). --wait blocks until done; bump --wait-timeout 30m for longer ad runs.
- Deliver. URL + one-line summary (mode, duration).
Click-to-Ad shortcut (URL-driven)
When the user gives a product URL and wants a marketing video in one go:
# 1. Trigger fetch (returns the product id and starts background scrape)
higgsfield marketing-studio products fetch --url https://shop.example.com/sneakers --wait
# 2. Generate the marketing video against the same URL — backend reuses the entity
higgsfield generate create marketing_studio_video \
--url https://shop.example.com/sneakers \
--mode ugc \
--duration 15 \
--aspect_ratio 9:16 \
--wait
Backend dedupes by URL, so repeated runs reuse the existing entity instead of re-fetching.
Workflow — marketing image
Same as above but use marketing_studio_image model:
higgsfield generate create marketing_studio_image \
--prompt "..." \
--aspect_ratio 1:1 \
--resolution 2k \
--wait
Errors
Missing required params: prompt → user gave no prompt; ask for it.
Invalid values: aspect_ratio=99:99 (allowed: ...) → bad enum; pick from allowed.
Unknown params: foo → schema doesn't accept that flag; check higgsfield model get <jst>. If this happens for hook_id or setting_id, the selected model/job_set_type does not support Marketing Studio setup items.
Session expired → higgsfield auth login.
See references/troubleshooting.md for more.
Reference docs
Load on demand:
references/model-catalog.md — picking the right model for the task
references/prompt-engineering.md — writing prompts that work
references/media-inputs.md — image/video reference flows
references/troubleshooting.md — common errors and fixes
references/marketing-avatars.md — preset vs custom avatars
references/marketing-products.md — URL fetch vs manual product create
references/marketing-setup-items.md — hooks/settings discovery and usage
references/marketing-ad-references.md — ad reference videos (create/list/get)
references/marketing-modes.md — every Marketing Studio mode
1---2name: higgsfield-generate3description: Generate images/videos via Higgsfield AI. Models: GPT Image 2, Nano Banana 2/Pro, Soul V2/Cinema/Cast/Location, Seedance 2.0, Veo 3.1, Kling 3.0, Flux 2, Z Image, Hailuo; plus Marketing Studio ads with avatars/products/hooks/settings. Use when: "generate an image", "make a picture", "make a video", "animate this photo", "image-to-video", "edit/stylize/remix this image", "produce a clip", "create an ad", "make a UGC video", "product demo", "unboxing", "TV spot", "brand video", "presenter video", "import product from URL", "create avatar for ad". Supports text-to-image, image-to-image, image-to-video, reference-based generation, and Marketing Studio. Auto-detects upload IDs vs previous job IDs. Chain with higgsfield-soul-id when the user wants face/identity consistency. NOT for: training Soul Character (use higgsfield-soul-id), product photoshoots (use higgsfield-product-photoshoot), marketplace listing cards (use higgsfield-marketplace-cards), text/chat/TTS tasks.4---56# Higgsfield Generate78Submit jobs to any Higgsfield model. Wraps the `higgsfield` CLI. Covers generic image/video gen and Marketing Studio (branded ads, avatars, products, hooks, settings).910## Step 0 — Bootstrap1112Before any other command, make sure the CLI is installed and authenticated:13141. If `higgsfield` is not on `$PATH`, install it:15 ```bash16 curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh17 ```182. If `higgsfield account status` fails with `Session expired` / `Not authenticated`, ask the user to run `higgsfield auth login` (interactive, opens a browser) and wait for them to confirm before continuing.1920Skip both checks if `higgsfield account status` already prints account info.2122## UX Rules23241. Be concise. No raw IDs, no JSON dumps in chat. Print result URL when ready.252. No internal jargon. Don't narrate "calling higgsfield cost", "polling job".263. Detect the user's language from the first message and reply in it. Technical args (`--aspect_ratio 16:9`) stay English.274. Don't batch-ask. Pick a sane default model and ask one thing at a time only if genuinely missing.285. Don't pre-estimate cost. Just submit unless the user asks.296. Pass `--wait` to `generate create` so the command blocks until done and prints the result URL itself. Avoid the two-step `create` → `wait` pattern.3031## Workflow — generic generation32331. **Pick a model.** Practical defaults from production use:3435 **Image:**36 - Brand product visual (Pinterest pin, lifestyle, hero banner, ad pack, virtual try-on) → use `higgsfield-product-photoshoot` instead. NOT this skill.37 - Branded ad image with avatar + product (Marketing Studio shape) → Marketing Studio Image (see Marketing Studio below)38 - Aesthetic UGC / fashion editorial / lifestyle character → Soul 2.039 - Cinematic still frame → Soul Cinema40 - Highly characterful creative persona (text-only, distinctive) → Soul Cast41 - Locations / environments / no-people scenes → Soul Location (best in class)42 - Vector illustrations OR face edit + complex scene swap → Seedream 4.543 - Soul Character (reference id from `higgsfield-soul-id`) → Soul 2.0 for stills, Soul Cinema for cinematic44 - Fast and cheap iteration → Z Image45 - Character or cartoon-style work → Nano Banana 2; step up to Nano Banana Pro on hard cases46 - **Default for everything else → GPT Image 2.** Graphic design, UI, banners, typography, and high-fidelity general generation.4748 **Video:**49 - All advertising / commercial / branded ad video → Marketing Studio (see Marketing Studio below)50 - **Default all-purpose serious video (multi-shot, consistent identity, motion-heavy) → Seedance 2.0.** SOTA.51 - Single-plane scene without strong dynamics, cheaper than Seedance 2.0 → Kling 3.052 - Cheap clean shot without cuts → Seedance 1.5 Pro53 - Cinema-grade highest fidelity → Cinema Studio Video 3.054 - Cheap with strong physics, no audio needed → Minimax Hailuo55 - Fast batch / volume → Veo 3.1 Lite5657 For the actual `--model` ID to pass to `higgsfield generate create`, run `higgsfield model list --json | jq` to map display names to IDs. See `references/model-catalog.md` for the full table.58592. **Pass media inputs straight to flags.** Media flags accept a local file path **or** a UUID. CLI auto-uploads paths and auto-detects job vs upload for UUIDs. No need to pre-upload. Each model declares accepted roles (`image`, `start_image`, `end_image`, `video`, `audio`) — see `references/media-inputs.md`.603. **Validate quickly.** If unsure of params, run `higgsfield model get <jst> --json` once and pass only what's needed. Use schema defaults otherwise. The server returns `adjustments` for non-fatal coercions (e.g. `aspect_ratio=99:99` → closest match) and a structured error for invalid declared-param values.614. **Submit and wait in one shot.** `higgsfield generate create <jst> --prompt "..." [media flags] [param flags] --wait`. Blocks until terminal status and prints the result URL on stdout. Tunables: `--wait-timeout 20m` (default 10m), `--wait-interval 5s` (default 3s).625. **Deliver.** Send the URL plus a one-line summary (model, duration if video).6364To inspect or rerun later, `higgsfield generate list --json` and `higgsfield generate get <id> --json` work for retrospection. `higgsfield generate wait <id>` is still available if you ever need to rejoin a job started without `--wait`.6566## Media flags6768| Flag | Use for | Models that accept it |69|---|---|---|70| `--image <path-or-id>` | reference image | most image models, `seedance_2_0`, `veo3`, `marketing_studio_video` |71| `--start-image <path-or-id>` | first frame for image-to-video transitions | `kling3_0`, `kling2_6`, `veo3_1`, `seedance_2_0`, `marketing_studio_video` |72| `--end-image <path-or-id>` | last frame for transitions | `kling3_0`, `seedance_2_0`, `marketing_studio_video` |73| `--video <path-or-id>` | reference video | `seedance_2_0` |74| `--audio <path-or-id>` | reference audio (lipsync, soundtrack match) | `seedance_2_0` (use this, NOT `--generate-audio`) |7576Each flag accepts either a local file path (auto-uploaded) or a UUID (upload id from `higgsfield upload create`, or a previous job id). Each model declares its own role set via `MEDIA_ROLES`. See `references/media-inputs.md` for the full table.7778## Common params7980Flags pass through to model schema. Use `higgsfield model get <jst>` to discover.8182```bash83higgsfield generate create gpt_image_2 --prompt "neon city at dusk" --aspect_ratio 16:9 --resolution 2k --wait84higgsfield generate create nano_banana_2 --prompt "anime character concept, expressive pose" --image ./ref.png --wait85higgsfield generate create seedance_2_0 --prompt "camera dollies in" --start-image ./first.png --duration 8 --wait86higgsfield generate create text2image_soul_v2 --prompt "..." --soul-id <soul_ref_id> --quality 2k --wait87```8889For machine-readable output (chained pipelines, agent context), add `--json`. With `--wait --json` you get the final job object array. Without `--wait`, you get the job IDs.9091Stdin prompt: `echo "..." | higgsfield generate create z_image --wait`.9293Soul image quality: for `text2image_soul_v2` and `soul_cinematic`, pass `--quality 1.5k` or `--quality 2k`. These are UI-facing tiers; the backend maps them to `720p`/`1080p` and model-specific dimensions from the selected `--aspect_ratio`. `soul_location` has no quality selector; it uses fixed dimensions per aspect ratio.9495## Marketing Studio9697Branded image/video gen: avatars + products + optional setup hooks/settings + ad-style modes. Use models `marketing_studio_video` and `marketing_studio_image`.9899### Concepts100101- **Avatar** — presenter face. Curated `preset` (browse `higgsfield marketing-studio avatars list`) or `custom` (uploaded photos via `higgsfield marketing-studio avatars create`). For UGC modes, an avatar is optional if the brief clearly mentions a person; the backend can create a Soul Character automatically. Pass an avatar when the user wants a specific presenter.102- **Product** — brand item with title + reference images. Imported from URL (`higgsfield marketing-studio products fetch --url ...`) or created from uploaded images (`higgsfield marketing-studio products create`).103- **Webproduct** — App Store / web page version. Auto-routes when fetching App Store URLs.104- **Hook** — reusable opening angle / ad hook. Browse with `higgsfield marketing-studio hooks list`. Hook text is prepended to the user's prompt; it does not replace `--prompt`.105- **Setting** — reusable environment / scene context. Browse with `higgsfield marketing-studio settings list`.106- **Ad reference** — reusable inspiration video that can be bound to an avatar and/or product. Created from an uploaded video (`--video-input <upload_id>`) or a previous generation job (`--job <job_id>`). Browse with `higgsfield marketing-studio ad-references list`. See `references/marketing-ad-references.md`.107108### Discovery commands109110Use these exact list commands when the user asks what already exists:111112```bash113higgsfield marketing-studio avatars list --json114higgsfield marketing-studio products list --json115higgsfield marketing-studio hooks list --json116higgsfield marketing-studio settings list --json117higgsfield marketing-studio ad-references list --json118```119120`--hook_id` and `--setting_id` are supported by `marketing_studio_video` only; do not pass them to `marketing_studio_image`.121122### UX rules (additional)123124- One question per phase. Don't ask product+avatar+mode upfront.125- **Two ad approaches are mutually exclusive.** Either the user gives an ad reference video (reference-driven) **or** picks hook/setting blocks (composed-from-blocks) — never both. If the user has an ad reference selected, do not offer hook/setting; if hook/setting are picked, do not offer to attach an ad reference.126- **Ad reference source.** The only valid inputs are a local video file (uploaded via `higgsfield upload create ... --video`) or a prior video job. If the user provides anything else, ask for a local file.127128### Workflow — quick ad video1291301. **Get product.**131 - Existing product → `higgsfield marketing-studio products list --json`132 - URL → `higgsfield marketing-studio products fetch --url <url> --wait` (polls until import done)133 - Local images → `higgsfield upload create <photo>...` then `higgsfield marketing-studio products create --title "..." --image <id>...`134 Capture product id. When using `--hook_id`, strongly prefer passing `--product_ids`; hooks are designed to pivot into a product and work poorly without product context.1352. **Pick avatar if needed.**136 - Default: `higgsfield marketing-studio avatars list` and pick a preset matching the brand voice.137 - Custom: `higgsfield marketing-studio avatars create --name "..." --image <upload_id>`.138 For UGC modes, you may omit `--avatars` when no specific presenter is required and the brief mentions a person; the backend can synthesize a Soul Character.1393. **Optionally pick setup items.**140 - Hook: `higgsfield marketing-studio hooks list --json`141 - Setting: `higgsfield marketing-studio settings list --json`142 Pass selected IDs as `--hook_id <hook_id>` and `--setting_id <setting_id>` for `marketing_studio_video` only. Do not copy the hook's prompt into `--prompt` unless the user explicitly wants to reinforce the same wording.1434. **Pick mode if needed.** Default is `ugc`; `--mode` is not required just because `--hook_id` is present. Other current slugs: `ugc_how_to`, `ugc_unboxing`, `product_showcase`, `product_review`, `tv_spot`, `wild_card`, `ugc_virtual_try_on`, `virtual_try_on`. **Hook/setting are valid only for `ugc`, `ugc_how_to`, `ugc_unboxing`, `product_review`, `ugc_virtual_try_on`** — do not pass `--hook_id` / `--setting_id` with the other modes. See `references/marketing-modes.md`.1445. **Generate (one-shot).**145 ```bash146 PRODUCT_IDS_JSON=$(mktemp)147 AVATARS_JSON=$(mktemp)148 printf '["<product_id>"]' > "$PRODUCT_IDS_JSON"149 printf '[{"id":"<avatar_id>","type":"preset"}]' > "$AVATARS_JSON"150151 higgsfield generate create marketing_studio_video \152 --prompt "..." \153 --avatars @"$AVATARS_JSON" \154 --product_ids @"$PRODUCT_IDS_JSON" \155 --mode ugc \156 --duration 15 \157 --resolution 720p \158 --aspect_ratio 9:16 \159 --wait160 ```161 Add `--hook_id <hook_id>` and/or `--setting_id <setting_id>` when a setup hook/setting was selected.162 `product_ids` and `avatars` are JSON arrays; pass them via `@/path/to/file.json`. Do not pass a bare UUID to `--product_ids`.163 Resolution is `480p` or `720p`. Aspect ratio is one of `auto`/`21:9`/`16:9`/`4:3`/`1:1`/`3:4`/`9:16`. `--generate-audio true` is supported here (unlike `seedance_2_0`). `--wait` blocks until done; bump `--wait-timeout 30m` for longer ad runs.1646. **Deliver.** URL + one-line summary (mode, duration).165166### Click-to-Ad shortcut (URL-driven)167168When the user gives a product URL and wants a marketing video in one go:169170```bash171# 1. Trigger fetch (returns the product id and starts background scrape)172higgsfield marketing-studio products fetch --url https://shop.example.com/sneakers --wait173174# 2. Generate the marketing video against the same URL — backend reuses the entity175higgsfield generate create marketing_studio_video \176 --url https://shop.example.com/sneakers \177 --mode ugc \178 --duration 15 \179 --aspect_ratio 9:16 \180 --wait181```182183Backend dedupes by URL, so repeated runs reuse the existing entity instead of re-fetching.184185### Workflow — marketing image186187Same as above but use `marketing_studio_image` model:188189```bash190higgsfield generate create marketing_studio_image \191 --prompt "..." \192 --aspect_ratio 1:1 \193 --resolution 2k \194 --wait195```196197## Errors198199- `Missing required params: prompt` → user gave no prompt; ask for it.200- `Invalid values: aspect_ratio=99:99 (allowed: ...)` → bad enum; pick from allowed.201- `Unknown params: foo` → schema doesn't accept that flag; check `higgsfield model get <jst>`. If this happens for `hook_id` or `setting_id`, the selected model/job_set_type does not support Marketing Studio setup items.202- `Session expired` → `higgsfield auth login`.203204See `references/troubleshooting.md` for more.205206## Reference docs207208Load on demand:209210- `references/model-catalog.md` — picking the right model for the task211- `references/prompt-engineering.md` — writing prompts that work212- `references/media-inputs.md` — image/video reference flows213- `references/troubleshooting.md` — common errors and fixes214- `references/marketing-avatars.md` — preset vs custom avatars215- `references/marketing-products.md` — URL fetch vs manual product create216- `references/marketing-setup-items.md` — hooks/settings discovery and usage217- `references/marketing-ad-references.md` — ad reference videos (create/list/get)218- `references/marketing-modes.md` — every Marketing Studio mode