Image → Campaign
Build a full German marketing funnel from one image. The whole point: one
image in, a coherent funnel out — Instagram Reels that hook attention, a blog
that builds trust and ranks, and a landing page that converts. Every asset
shares one visual and verbal identity, because they are all derived from a
single Brand Brief that you write and the user approves before any credits
are spent.
Core principle: brief-first, single source of truth
Do NOT generate assets first and try to match them later. That always drifts.
Instead:
- Write one Brand Brief from the image + a short interview. The brief fixes
product identity, thesis line, palette (OKLCH tokens), typography, tone,
scene, CTA, and the chosen Reel angles/style. It also contains every asset
prompt, written out.
- The user approves the brief at one checkpoint.
- Every output — landing page, Reels, blog — reads its thesis, palette, fonts,
tone, and prompts from the brief. Nothing re-derives identity on its own.
This is why the landing page, Reels, and blog end up looking like one campaign
instead of three unrelated AI artifacts.
Locked defaults for this skill
- Language: German. All visible copy (site, captions, blog) is German.
Technical CLI flags stay English.
- Conversion goal: Demo/Konzept. There is no real shop yet, so every CTA is
a clean placeholder (e.g. "Jetzt entdecken"). Do not invent fake prices,
checkout links, or reviews.
- One approval checkpoint, right after the brief. After approval, run
autonomously to the end.
- Landing page stays local (a preview server). Deployment (Vercel) is a
later step, only if the user asks.
Step 0 — Bootstrap
Asset generation runs through the Higgsfield CLI (same engine as the
higgsfield-generate and higgsfield-product-photoshoot skills).
- If
higgsfield is not on $PATH, install it:
curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh
- Run
higgsfield account status. If it fails with Session expired /
Not authenticated, ask the user to run higgsfield auth login and wait.
If they don't have a Higgsfield account yet, point them to
https://higgsfield.ai/s/mcp-arnold-oberleiter-ecZvus to sign up (an account
with credits is required to generate any asset).
Confirm you actually have the input image (a local path). If the user only
described a product with no image, say so — this skill is built around a real
image. You can still proceed text-only, but fidelity drops; tell them that.
Step 1 — Interview (max 2 questions, German)
Look at the image first and infer everything you can (what the product is, who
it is for, the mood). Ask only what you genuinely cannot tell. Keep it to the
two questions from the landing-page spec, in German:
- Was ist das Produkt/die Marke in einem Satz, für wen, und welches Gefühl
soll es auslösen?
- Soll ich alle Bild- und Videoassets mit Higgsfield generieren, oder gibt es
schon Assets/Logo/Farben, die ich verwenden soll?
Skip a question if the answer is already obvious from the image or the user's
message. Do not ask about price or sales destination — the CTA is a demo
placeholder by default.
Step 2 — Write the Brand Brief
Follow references/brand-brief.md. Produce brief.md containing the identity
fields AND every asset prompt (5 site assets, 3 Reel prompts, 1 blog image).
Writing the prompts now — before spending anything — is what makes the
checkpoint meaningful.
🛑 CHECKPOINT — get approval before generating
Show the user, compactly:
- the thesis line, scene sentence, the 4 palette tokens, fonts, tone words, CTA
- the chosen scroll concept (one line of why)
- the 3 Reel angles + the chosen Reel style (cinematic vs UGC) and why
- the full list of asset prompts you are about to run
Then ask one thing: "Passt der Brief so, oder soll ich was anpassen, bevor ich
generiere?" Generation costs credits, so do not skip this. Apply edits, then
proceed. After this point, run autonomously.
Step 3 — Build (after approval)
Build in this order — it is deliberate. The landing page is built first because
it locks the design system and produces the hero video, which the Reels reuse.
- Landing page →
references/landing-page.md. Generates the 5 site assets,
assembles website/index.html, verifies in the browser.
- Reels →
references/reels.md. Three 9:16 Reels. Reuse/reframe the site's
hero or middle video for the cinematic showcase angle to save credits;
generate the other two. Write reels/captions.md.
- Blog →
references/blog.md. A German SEO article in blog/blog.html
that reuses the same palette tokens and fonts, with one image (reuse a site
still where possible) and a CTA back to the landing page.
Step 4 — QA
- Landing page: run the full browser checklist in
references/landing-page.md.
- Reels (optional but recommended): score each with the Virality Predictor
(
higgsfield generate create brain_activity --video <reel> --wait) and
regenerate the weakest if a clearly better angle is obvious. Report the
scores; do not silently sit on them.
- Confirm every asset is German where it carries copy, and that the palette and
fonts are identical across site, Reels thumbnails, and blog.
Step 5 — Deliver
Assemble the campaign folder (structure below) and write README.md from
assets/campaign-readme-template.md: what's inside, how to preview the site
locally, the 3 captions ready to paste, and the obvious next step (deploy +
swap the placeholder CTA for a real one).
Final message to the user (German, concise): the local site URL, the thesis
line, the 3 Reel angles with their files, where the captions and blog are, and
any limitation you hit (e.g. an asset you had to regenerate).
Campaign folder structure
kampagne-<slug>/
brief.md # the approved single source of truth
website/
index.html
assets/ # hero.mp4, middle.mp4, g1.jpg, g2.jpg, g3.jpg
reels/
reel-1-hook.mp4
reel-2-showcase.mp4
reel-3-lifestyle.mp4
captions.md # per reel: hook text, caption, hashtags, CTA
blog/
blog.html
assets/ # blog image(s)
README.md
Consistency laws (apply to every generated asset)
Across the whole campaign, hold these constant — this is what makes it feel like
one brand and not a generated grab-bag:
- same product identity and shape
- same material language
- same lighting direction
- same color world (the brief's palette)
- same premium tone
Reject and regenerate any asset where the product identity changes, the shape
drifts, the material looks wrong, text gets baked into the image/video (AI text
rendering is unreliable — keep generated media clean and add real text in the
caption/editor), or it simply looks "AI-made". Consistency beats spectacle.
Reference index
references/brand-brief.md — how to derive the brief + the brief template and
the full asset-prompt list (read this first, in Step 2)
references/landing-page.md — the brief-aware, self-contained landing-page
build with the browser QA checklist
references/reels.md — the 3 Reel angles, cinematic-vs-UGC selection,
generation commands, reframe reuse, and the captions format
references/blog.md — the German SEO article spec and HTML templating
assets/brief-template.md, assets/blog-template.html,
assets/campaign-readme-template.md — fill-in templates
1---2name: image-to-campaign3description: Turn ONE product/brand image into a complete, identity-consistent German marketing funnel: a scroll-driven landing page, 3 Instagram Reels (9:16) with captions, and a styled blog article — all derived from a single approved Brand Brief so everything matches. Output is one campaign folder. Use this whenever the user uploads or points at a single product/brand image and wants marketing assets, a "Kampagne", a "Funnel", "Marketing aus diesem Bild", "Posts + Videos + Webseite", Instagram content plus a landing page, ads that lead to a sales page, or says "mach mir aus dem Bild Werbung/Reels/eine Landingpage". Trigger even when the user names only one piece (e.g. "mach mir Reels aus dem Bild") if the larger goal is a full campaign, and ESPECIALLY when they want all assets to look consistent / aus einem Guss. This skill orchestrates the higgsfield-* skills (generate, product-photoshoot) for asset generation. NOT for a one-off single image/video with no funnel (use higgsfield-generate directly) or marketplace listin4---56# Image → Campaign78Build a full German marketing funnel from one image. The whole point: **one9image in, a coherent funnel out** — Instagram Reels that hook attention, a blog10that builds trust and ranks, and a landing page that converts. Every asset11shares one visual and verbal identity, because they are all derived from a12single **Brand Brief** that you write and the user approves before any credits13are spent.1415## Core principle: brief-first, single source of truth1617Do NOT generate assets first and try to match them later. That always drifts.18Instead:19201. Write **one Brand Brief** from the image + a short interview. The brief fixes21 product identity, thesis line, palette (OKLCH tokens), typography, tone,22 scene, CTA, and the chosen Reel angles/style. It also contains every asset23 prompt, written out.242. The user approves the brief at **one checkpoint**.253. Every output — landing page, Reels, blog — reads its thesis, palette, fonts,26 tone, and prompts **from the brief**. Nothing re-derives identity on its own.2728This is why the landing page, Reels, and blog end up looking like one campaign29instead of three unrelated AI artifacts.3031## Locked defaults for this skill3233- **Language: German.** All visible copy (site, captions, blog) is German.34 Technical CLI flags stay English.35- **Conversion goal: Demo/Konzept.** There is no real shop yet, so every CTA is36 a clean placeholder (e.g. "Jetzt entdecken"). Do not invent fake prices,37 checkout links, or reviews.38- **One approval checkpoint**, right after the brief. After approval, run39 autonomously to the end.40- **Landing page stays local** (a preview server). Deployment (Vercel) is a41 later step, only if the user asks.4243## Step 0 — Bootstrap4445Asset generation runs through the Higgsfield CLI (same engine as the46`higgsfield-generate` and `higgsfield-product-photoshoot` skills).47481. If `higgsfield` is not on `$PATH`, install it:49 `curl -fsSL https://raw.githubusercontent.com/higgsfield-ai/cli/main/install.sh | sh`502. Run `higgsfield account status`. If it fails with `Session expired` /51 `Not authenticated`, ask the user to run `higgsfield auth login` and wait.52 If they don't have a Higgsfield account yet, point them to53 https://higgsfield.ai/s/mcp-arnold-oberleiter-ecZvus to sign up (an account54 with credits is required to generate any asset).5556Confirm you actually have the input image (a local path). If the user only57described a product with no image, say so — this skill is built around a real58image. You can still proceed text-only, but fidelity drops; tell them that.5960## Step 1 — Interview (max 2 questions, German)6162Look at the image first and infer everything you can (what the product is, who63it is for, the mood). Ask only what you genuinely cannot tell. Keep it to the64two questions from the landing-page spec, in German:65661. *Was ist das Produkt/die Marke in einem Satz, für wen, und welches Gefühl67 soll es auslösen?*682. *Soll ich alle Bild- und Videoassets mit Higgsfield generieren, oder gibt es69 schon Assets/Logo/Farben, die ich verwenden soll?*7071Skip a question if the answer is already obvious from the image or the user's72message. Do not ask about price or sales destination — the CTA is a demo73placeholder by default.7475## Step 2 — Write the Brand Brief7677Follow `references/brand-brief.md`. Produce `brief.md` containing the identity78fields AND every asset prompt (5 site assets, 3 Reel prompts, 1 blog image).79Writing the prompts now — before spending anything — is what makes the80checkpoint meaningful.8182## 🛑 CHECKPOINT — get approval before generating8384Show the user, compactly:8586- the thesis line, scene sentence, the 4 palette tokens, fonts, tone words, CTA87- the chosen scroll concept (one line of why)88- the 3 Reel angles + the chosen Reel style (cinematic vs UGC) and why89- the full list of asset prompts you are about to run9091Then ask one thing: *"Passt der Brief so, oder soll ich was anpassen, bevor ich92generiere?"* Generation costs credits, so do not skip this. Apply edits, then93proceed. After this point, run autonomously.9495## Step 3 — Build (after approval)9697Build in this order — it is deliberate. The landing page is built first because98it locks the design system and produces the hero video, which the Reels reuse.991001. **Landing page** → `references/landing-page.md`. Generates the 5 site assets,101 assembles `website/index.html`, verifies in the browser.1022. **Reels** → `references/reels.md`. Three 9:16 Reels. Reuse/reframe the site's103 hero or middle video for the cinematic showcase angle to save credits;104 generate the other two. Write `reels/captions.md`.1053. **Blog** → `references/blog.md`. A German SEO article in `blog/blog.html`106 that reuses the same palette tokens and fonts, with one image (reuse a site107 still where possible) and a CTA back to the landing page.108109## Step 4 — QA110111- Landing page: run the full browser checklist in `references/landing-page.md`.112- Reels (optional but recommended): score each with the Virality Predictor113 (`higgsfield generate create brain_activity --video <reel> --wait`) and114 regenerate the weakest if a clearly better angle is obvious. Report the115 scores; do not silently sit on them.116- Confirm every asset is German where it carries copy, and that the palette and117 fonts are identical across site, Reels thumbnails, and blog.118119## Step 5 — Deliver120121Assemble the campaign folder (structure below) and write `README.md` from122`assets/campaign-readme-template.md`: what's inside, how to preview the site123locally, the 3 captions ready to paste, and the obvious next step (deploy +124swap the placeholder CTA for a real one).125126Final message to the user (German, concise): the local site URL, the thesis127line, the 3 Reel angles with their files, where the captions and blog are, and128any limitation you hit (e.g. an asset you had to regenerate).129130## Campaign folder structure131132```133kampagne-<slug>/134 brief.md # the approved single source of truth135 website/136 index.html137 assets/ # hero.mp4, middle.mp4, g1.jpg, g2.jpg, g3.jpg138 reels/139 reel-1-hook.mp4140 reel-2-showcase.mp4141 reel-3-lifestyle.mp4142 captions.md # per reel: hook text, caption, hashtags, CTA143 blog/144 blog.html145 assets/ # blog image(s)146 README.md147```148149## Consistency laws (apply to every generated asset)150151Across the whole campaign, hold these constant — this is what makes it feel like152one brand and not a generated grab-bag:153154- same product identity and shape155- same material language156- same lighting direction157- same color world (the brief's palette)158- same premium tone159160Reject and regenerate any asset where the product identity changes, the shape161drifts, the material looks wrong, text gets baked into the image/video (AI text162rendering is unreliable — keep generated media clean and add real text in the163caption/editor), or it simply looks "AI-made". Consistency beats spectacle.164165## Reference index166167- `references/brand-brief.md` — how to derive the brief + the brief template and168 the full asset-prompt list (read this first, in Step 2)169- `references/landing-page.md` — the brief-aware, self-contained landing-page170 build with the browser QA checklist171- `references/reels.md` — the 3 Reel angles, cinematic-vs-UGC selection,172 generation commands, reframe reuse, and the captions format173- `references/blog.md` — the German SEO article spec and HTML templating174- `assets/brief-template.md`, `assets/blog-template.html`,175 `assets/campaign-readme-template.md` — fill-in templates176```