Higgsfield CLI in the Content Engine
The Broomva content-engine had a real integration gap until today. It mentioned Higgsfield three times — all in the wrong tier. "Higgsfield account — Soul Cinema start frames" was listed as optional, alongside Topaz Gigapixel and Weavy. The actual generation pipeline ran through @google/genai (Gemini) for Nano Banana and Veo, plus @fal-ai/client for Kling and Sora. Two different SDKs, two different credit pools, two different auth flows. Higgsfield was a browser-automation footnote.
That was the wrong shape. Higgsfield ships a CLI that exposes 30+ models behind a single auth, including every model we were already calling through other providers. The integration we just landed makes Higgsfield CLI the default Tier-1 path for content-engine-cinema. Every cinematic generation node — start frame, motion synthesis, character consistency, marketing-studio ads, soul-character training — flows through one CLI, one credit pool, one shell-scriptable interface.
This post covers what changed, why we made the call, when Higgsfield's MCP path is the right alternative, and the test plan we ran to verify the integration before promoting it to default.
What we had before
Three layers of provider soup:
content-engine-cinema (orchestration)
├── @google/genai SDK → Nano Banana 2, Veo 3.1, Imagen
├── @fal-ai/client → Kling 3.0, Sora, Flux variants
└── /agent-browser → Higgsfield Studio, Weavy, Midjourney (browser-driven)
Each path needed its own setup ritual: a Google API key, a fal.ai key, a Playwright session for the browser-automated tools. Each kept its own billing. The cinema sub-skill's tool-priority matrix had to enumerate which model lived behind which SDK, and every new model from Higgsfield's bench had to be either bridged in via the browser or skipped entirely.
The browser path for Higgsfield was the worst of the three. Soul Cinema start frames are core to our cinematic generation doctrine ("video quality is only as good as your initial image"), but invoking them meant launching Chromium via agent-browser, navigating Higgsfield Studio's UI, prompting through the web interface, and parsing the rendered output URL. Brittle, slow, manual on every campaign.
What changed
Higgsfield's official guidance for Claude Code and Codex users is direct: "If you are using Claude Code or Codex, it's better to use the CLI." The bundle ships three skill wrappers (higgsfield-ai/skills on GitHub):
higgsfield-generate— 30+ models behind a single commandhiggsfield-product-photoshoot— brand-quality product images with mode-specific prompt enhancementhiggsfield-soul-id— train Soul Character refs for face/identity locking across a series
We installed all three with npx skills add higgsfield-ai/skills, installed the underlying CLI with curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh, and rewrote the cinema sub-skill's tool priority matrix to put Higgsfield CLI on top.
The new tool matrix:
| Priority | Image Gen | Video Gen | Upscaling | Color Grade |
|---|---|---|---|---|
| Tier 1: Higgsfield CLI (default) | higgsfield-generate --model soul_v2 / nano_banana_2 / flux_2 |
higgsfield-generate --model veo_3 / kling_3 / seedance_2 |
Topaz Gigapixel | Lightroom |
| Tier 1 (alternates) | Nano Banana 2 (@google/genai) |
Veo 3.1 (@google/genai) |
— | — |
| Tier 2: Browser-automated | Midjourney | Kling 3 Pro (fal.ai) | Topaz web UI | DaVinci Resolve |
| Tier 3: Local pipeline | ComfyUI + SD/Flux | ComfyUI + Wan/AnimateDiff | Real-ESRGAN | ffmpeg LUT |
The browser-automated row no longer mentions Higgsfield. Studio access is now CLI; the legacy browser path is preserved only for tools that genuinely have no API or MCP (Weavy, Artlist for music selection).
The cinema → Higgsfield workflow
The compounded workflow when content-engine-cinema dispatches a scene now looks like this:
Concept (cinema scene brief)
↓
Camera-style vocabulary picked (Fincher / Nolan / Villeneuve / etc.)
↓
Style fragment + scene description merged into final prompt
↓
START FRAME: invoke higgsfield-generate --model soul_v2 (or nano_banana_2)
→ upload_id captured from output
↓
[Optional: invoke higgsfield-soul-id if face/identity needs to be locked]
↓
MOTION: invoke higgsfield-generate --model veo_3 / kling_3 --image <upload_id>
→ wait for job, capture video_url
↓
POST-PRODUCE: Topaz Gigapixel for upscale, Lightroom or ffmpeg LUT for grade
↓
Output to /content-engine/output/{campaign-slug}/raw/
↓
manifest.json updated with: prompt, model, upload_id, job_id, timestamp, identity_refs
Every node above is a single CLI invocation; no browser steps, no SDK swaps, no per-provider auth dance. The director-vocabulary library (Anderson, Fincher, Nolan, Villeneuve, Kubrick, Wong Kar-wai, Ridley Scott, Malick) is unchanged — it merges into the prompt before the CLI call, exactly the way it merged into the SDK call before. What changed is the bottom of the stack, not the top.
CLI vs MCP: which path when
Higgsfield ships two programmatic integrations that target different runtimes. The official guidance and our own decision tree:
| Runtime | Path | Setup | Why |
|---|---|---|---|
| Claude Code, Codex, agent-browser, scripts, CI | CLI | curl ... | sh then higgsfield auth login |
Per Higgsfield's own guidance: "If you are using Claude Code or Codex, it's better to use the CLI." Direct programmatic access, scriptable, integrates with the skill bundle. |
| Claude Desktop, web Claude, IDE plugins | MCP at https://mcp.higgsfield.ai |
Claude Settings → Connectors → Add custom connector → paste URL → authenticate | One-click connector, GUI-native, no CLI install, no shell scripting. Cannot be driven from Claude Code. |
Both paths use the same Higgsfield credit pool. Neither requires an API key — auth is via your Higgsfield account through a browser flow. The choice is purely about which runtime is calling.
For broomva's stack — Claude Code + Cursor + scripted CI — the CLI is the right pick. For people running Claude Desktop with no terminal in the loop, the MCP path is genuinely better; nothing to install, one-click connector setup, same model surface. We document both in content-engine/SKILL.md because content-engine is meant to be portable across both runtimes.
Why the consolidation matters operationally
Three concrete things changed when Higgsfield CLI became the default:
One auth, one credit pool. Before: separate Google API key for Nano Banana/Veo, separate fal.ai key for Kling, separate Higgsfield browser session for Soul Cinema. Three different billing surfaces, three different rate-limit profiles, three different ways for a generation pipeline to fail. After: one auth state, one balance to monitor, one auth-renewal flow when tokens expire.
Scriptability. The browser path for Higgsfield was the single largest non-scriptable node in the cinema pipeline. Every scene that needed Soul Cinema's start-frame model required either a manual session or a Playwright script that tracks Higgsfield's UI changes. The CLI eliminates both. The cinema sub-skill can now generate a 10-scene campaign as a single shell pipeline with no human intervention beyond the initial higgsfield auth login.
Skill bundle composition. The three higgsfield-* skills compose cleanly with content-engine's existing sub-skills:
content-engine-dnacompiles brand identity into a markdown file with tool-specific prompt fragmentscontent-engine-cinemaselects camera-style vocabulary and merges it with the brand DNAhiggsfield-generateconsumes the merged prompt and produces the outputhiggsfield-soul-idlocks face identity across a campaign serieshiggsfield-product-photoshoothandles brand-quality product shots with mode-specific enhancement
Each skill is independently invokable, version-locked through the Broomva stack's skills lock file, and shows up to the skill scanner as a first-class capability. No cross-skill imports, no shared code, just composition through prompt merging and CLI invocation.
Test plan
Before promoting Higgsfield CLI to Tier-1 default, we ran an eight-test verification battery:
- CLI install reachability. Binary at
~/.local/bin/higgsfield,--helpreturns command listing. - Version pin.
higgsfield versionreturns0.1.28, build hashe7a475eb, build date2026-05-04. - Subcommand surface.
higgsfield model list --helpdocuments the expected flags (--image,--video,--json). - Auth state probe.
higgsfield model listreturnsError: Not authenticated. Hint: Run: higgsfield auth login— the expected fail-loud signal when auth is missing. No silent fallback. - Cinema SKILL.md frontmatter integrity. Description includes
higgsfield,soul cinema,marketing studiotriggers. Frontmatter parses as valid YAML. - Reference count audit. 28 Higgsfield references in content-engine/SKILL.md, 24 in content-engine-cinema/SKILL.md, 4 in CLAUDE.md. Was zero in the cinema sub-skill before this change.
- Skill scanner symlinks.
~/.claude/skills/higgsfield-generate,~/.claude/skills/higgsfield-product-photoshoot,~/.claude/skills/higgsfield-soul-idare present and resolve to~/.agents/skills/higgsfield-*correctly. - Cross-reference completeness. 14 lines in content-engine-cinema/SKILL.md explicitly invoke one of the three higgsfield-* skill wrappers. The cinema → Higgsfield workflow block names every node.
Tests 1, 2, 3, 5, 6, 7, 8 pass deterministically. Test 4 confirms the expected auth-required state — the only manual step is the user running higgsfield auth login once in their terminal. After that, the entire content-engine pipeline runs unattended.
We did not test live generation against the Higgsfield API in this verification pass — that requires the auth step. The next concrete validation is a single end-to-end campaign run after auth, comparing the CLI output to the previous SDK output for the same prompt and confirming bit-similar results within the model's stochastic envelope.
What's next
Three operational follow-ups now that the default path is set:
-
Backfill brand DNA prompt fragments. Every compiled brand-identity file in
content-engine/knowledge/compiled/was written with prompt fragments targeting Nano Banana via@google/genai. The fragments still work — Higgsfield exposesnano_banana_2directly — but they should be re-compiled with the broader Higgsfield model surface so that scenes can picksoul_v2,flux_2, ormarketing_studio_videobased on which best fits the scene rather than always defaulting to Nano Banana. -
End-to-end campaign run. Pick a small campaign (3-5 scenes), run it through the new pipeline, manually compare output quality and generation latency against the same scenes run through the previous SDK path. The verification target is parity within stochastic envelope, not improvement; if Higgsfield CLI delivers the same quality with simpler auth, the consolidation is justified on operational grounds alone.
-
MCP setup documentation. For Broomva users who run Claude Desktop instead of Claude Code, document the MCP path step-by-step. The official Higgsfield MCP page has the basics; we should add a Broomva-specific section that names which content-engine commands work via MCP and which require the CLI.
The integration is live in broomva/content-engine (cinema SKILL.md + top-level SKILL.md + CLAUDE.md updated this afternoon). The skill bundle ships through npx skills add higgsfield-ai/skills and lands at ~/.agents/skills/higgsfield-* with symlinks to every supported runtime. CLI installation is a single curl command. The auth step is one interactive higgsfield auth login per user, persistent thereafter.
For a content stack that already had three SDKs and a browser-automation footnote, consolidating to one CLI was the integration that should have shipped on day one.
Skill source: github.com/broomva/content-engine · Higgsfield CLI: github.com/higgsfield-ai/cli · Higgsfield MCP: higgsfield.ai/mcp · Skill bundle: npx skills add higgsfield-ai/skills.