---
title: "Train Your Brand Aesthetic — Krea 2 Open-Source: lock your look, ship the campaign"
tier: hero
format: brand-campaign
theme: aesthetic-lora
persona: creator, marketer, brand, fashion, real-estate, travel, educator
duration: ~30s campaign render · ~6–8 min if you train a brand LoRA
budget_usd: ~$0.25 for an 8-shot campaign · ~$0.05/look thereafter · ~$22 one-time to train a brand LoRA
caps: ["krea-2-os", "krea-2-lora-training", "krea-2-lora", "krea-2-large", "bg-remove", "kling-v3-turbo-i2v", "ltx-q-i2v", "sonilo-t2m", "music", "ffmpeg-concat", "ffmpeg-export"]
verbs: ["create_media", "submit_lora_train", "get_lora_train", "apply_lora", "attach_lora_to_project"]
skills: ["krea-2-open-source", "lora-training"]
showcases:
  - title: "ATELIER NORD · Krea 2 Open-Source brand campaign"
    href: "/chapters/train-your-brand-aesthetic-example.html"
reliability: 4.3 # krea-2-os campaign is fully proven E2E (8/8 shots, ~3s each) +0.5; bg-remove + i2v finishing proven; the optional LoRA brand-lock cap is registered + meters jobs but full weight-retrieval through the SDK hits a known 202-polling follow-up — the recipe is wired across MCP/CLI/webapp and works the moment that lands
---

# Train Your Brand Aesthetic — agent playbook ⭐ flagship

> Paste this whole file (with the BRIEF filled in) into Claude cowork, chat, or Code. **This is the Krea 2 Open-Source showcase.** Krea 2 is the most aesthetic open-source image model — and the first open base on the network you can *train*. Lock a brand's signature look once, then generate an unlimited, on-brand campaign that stays coherent shot-to-shot. Fashion-led, but the exact same recipe ships a **real-estate**, **travel**, or **premium-education** campaign — just swap the BRIEF.

## What you'll get

A cohesive, ready-to-publish brand campaign built on one aesthetic:

- **8 hero campaign images** in a single locked look (`krea-2-os`) — hero portrait, full look, detail/texture, lifestyle, accessory still, atmospheric, back-look, beauty
- **A clean e-comm packshot** — `bg-remove` on a product/detail still → transparent cutout
- **A 5-second motion teaser** — the hero still animated via `kling-v3-turbo-i2v` (or `ltx-q-i2v`)
- **A licensed soundtrack** — `sonilo-t2m` (commercial-clean) or `music`
- **A platform-cut reel** — `ffmpeg-concat` the stills + teaser → `ffmpeg-export` to 9:16 / 1:1 / 16:9
- **(Optional) a brand LoRA** — train your signature look on `krea-2` once (`submit_lora_train base_model:"krea-2"`), then every future look is on-brand by construction via `krea-2-lora`

**Time**: ~30s for the 8-shot campaign (Krea 2 Turbo renders in ~3s/shot). **Cost**: ~$0.25 for the campaign, ~$0.05/look after, ~$22 one-time if you train a brand LoRA. **Your attention**: one BRIEF + one approval gate.

## Why Krea 2 Open-Source

| | What it gives you |
|---|---|
| **Most aesthetic open base** | Out-of-the-box taste — lighting, palette, composition, film grain — beats every other open image model. The deliverable *looks* art-directed before you touch it. |
| **Open weights = trainable** | Unlike the hosted `krea-2` caps, the open `krea-2-os` (RAW) checkpoint is malleable. It's the 2nd trainable base on the network after flux — and the one to pick when *look* matters more than a photoreal identity. |
| **One palette, infinite shots** | A text-to-image model has no cross-shot memory. A trained brand LoRA does: the campaign stays coherent across 8, 80, or 800 looks. |

## Tell the agent about the campaign

```yaml
brand_name:        # e.g. "ATELIER NORD"
one_liner:         # e.g. "Scandinavian minimalist fashion house"

# The single most important field — your signature look, one sentence.
# This is what makes 8 shots feel like one campaign.
aesthetic:         # e.g. "ivory, sand, warm stone & oat palette; soft diffused north-window
                   #       light; sculptural wool & linen; quiet luxury; fine film grain;
                   #       Vogue-cover restraint; medium-format."

# 8 shots (defaults below work for fashion; swap subjects for any vertical)
shots:
  - hero portrait close-up
  - full-length look
  - macro detail / texture
  - lifestyle / motion
  - accessory still life
  - atmospheric wide / negative space
  - back-look at a window
  - beauty close-up

aspect: "4:5"          # 4:5 editorial, 9:16 social, 16:9 hero banner
train_brand_lora: false # set true to lock the look as a reusable krea-2 LoRA
finish:                 # which finishing passes to run
  packshot: true        # bg-remove a product still
  teaser: true          # animate the hero into a 5s motion clip
  music: true           # add a licensed soundtrack
  reel: true            # stitch into a platform-cut reel
```

> **It generalizes.** Real-estate: `aesthetic:` "warm golden-hour interiors, wide-angle, natural oak & limestone, lifestyle staging"; shots become rooms. Travel: "sun-drenched film-stock postcards, kodak portra, golden coast light"; shots become destinations. Education: "clean isometric explainer plates, soft pastel, generous whitespace"; shots become concept panels. Same pipeline, new BRIEF.

## The pipeline (what the agent runs)

### Step 1 — Lock the look, render the campaign (proven, ~30s, ~$0.25)
For each of the 8 shots, call `create_media` with **one shared aesthetic prefix** + the per-shot subject:

```
create_media({
  action: "generate",
  model_override: "krea-2-os",
  aspect_ratio: "4:5",
  prompt: "<aesthetic sentence>. <shot subject>"
})
```

The shared prefix is what binds the campaign. Keep it **byte-identical** across all 8 calls; vary only the trailing subject clause. (Want a touch more fidelity on the hero frames? Swap `krea-2-os` → `krea-2-large`.)

### Step 2 — (Optional) Lock the look as a reusable brand LoRA (~6–8 min, ~$22)
Once you love the campaign, freeze it into a LoRA so *every future look* is on-brand by construction:

```
# MCP
submit_lora_train({ zip_url: <8–16 on-brand images>, trigger_word: "ATELIERNORD", base_model: "krea-2", steps: 500 })
get_lora_train({ job_id })                       # poll to done → weights_url
attach_lora_to_project({ lora_id, project_id })  # now every create_media on this project is on-brand
# or one-shot:
apply_lora({ weights_url, trigger: "ATELIERNORD", prompt: "a new SS26 look, full length", model: "krea-2-lora" })
```

```
# CLI
livepeer lora train --zip <url> --trigger ATELIERNORD --base krea-2 --steps 500
livepeer lora train-status <job-id>
livepeer lora apply <weights_url> --trigger ATELIERNORD --prompt "a new SS26 look" --model krea-2-lora
```

```
# Webapp: right-click canvas → Train LoRA → base = "Krea 2 (Open-Source)" →
#         /lora apply <name> → every free-form generate is now on-brand
```

> **The base is the inference base.** A `krea-2` LoRA must run on `krea-2-lora` (`fal-ai/krea-2/turbo/lora`); the surfaces auto-route it for you. Train a **style/aesthetic** LoRA on `krea-2`; train a tight **face/product-identity** LoRA on `flux-dev` and stack them.
>
> **Honest status (2026-06-24):** the `krea-2-lora-training` cap is registered, accepts jobs, and meters them. Full weight-retrieval through the SDK currently hits a known 202-polling follow-up (the orch returns HTTP 202 for async training and the SDK's status poller doesn't yet treat 202 as "still running"). The recipe above is wired across MCP + CLI + webapp and lights up the moment that SDK fix lands. Until then, Step 1 (the `krea-2-os` campaign) is the fully-proven path — and it already delivers a cohesive, on-brand deliverable.

### Step 3 — Finish into a deliverable (proven)
```
bg-remove        : create_media({ action:"animate", model_override:"bg-remove", source_url:<accessory still> })   # packshot
kling-v3-turbo-i2v: create_media({ action:"animate", model_override:"kling-v3-turbo-i2v", source_url:<hero>, prompt:"subtle cinematic push-in", duration:5 })
sonilo-t2m       : create_media({ action:"music", model_override:"sonilo-t2m", prompt:"minimal ambient piano, quiet-luxury, 20s" })
ffmpeg-concat    : stitch the 8 stills + teaser → one MP4
ffmpeg-export    : scale+crop to 9:16 (TikTok) / 1:1 (IG) / 16:9 (hero banner)
```

## Reference render (this playbook, run for real)

The showcase page below is built from a real run of Step 1 + Step 3 on `sdk.daydream.monster`:
**ATELIER NORD** — 8 `krea-2-os` shots (~3s each), one packshot, one motion teaser, one reel.
See [`/chapters/train-your-brand-aesthetic-example.html`](/chapters/train-your-brand-aesthetic-example.html). Durable assets: `gs://storyboard-uploads/showcases/train-your-brand-aesthetic/`.

## Tips
- The **aesthetic sentence** is 80% of the result. Spend your effort there, not on per-shot prose.
- 8–16 images is the sweet spot for a style LoRA; use *diverse subjects, one consistent look*.
- For a recurring **person/product** (a house model, a hero SKU), train a `flux-dev` identity LoRA and stack it on top of the `krea-2` aesthetic LoRA.
- Keep `trigger_word` unique and made-up (e.g. `ATELIERNORD`), never a real word.
