Spaces:
Paused
Paused
File size: 3,514 Bytes
b26b44f 82e465e b26b44f 82e465e b26b44f 82e465e b26b44f 82e465e 3a5e493 82e465e 3a5e493 82e465e 3b15bce 82e465e 3b15bce | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | ---
title: Krea 2 LoRA Trainer
emoji: 🎨
colorFrom: indigo
colorTo: yellow
sdk: gradio
sdk_version: 6.19.0
python_version: '3.12'
app_file: app.py
hardware: cpu-basic
pinned: true
hf_oauth: true
hf_oauth_scopes:
- read-repos
- write-repos
- manage-repos
- jobs
short_description: Train Krea 2 LoRAs on your images via HF Jobs
---
# Krea 2 LoRA Trainer
Train a **DreamBooth-LoRA for Krea 2** from your own images, entirely on Hugging Face
infrastructure:
- **Sign in with Hugging Face** — the dataset, the job, and the pushed LoRA all run under
**your** account and billing (no pasted tokens);
- the **Space** (this app, `cpu-basic`) collects your images + hyperparameters and submits a job;
- training runs on **HF Jobs** using the diffusers Krea 2 trainer
(`examples/dreambooth/train_dreambooth_lora_krea2.py`);
- the LoRA is **trained on Krea 2 RAW** and **validated / inferred on Krea 2 Turbo**, then pushed
to the Hub model repo you choose.
You only pay for the Job's actual GPU runtime.
## How tokens are used
Three tokens, three jobs:
- **Your OAuth token** (from sign-in) — your dataset repo + the pushed LoRA, under your account/billing.
- **`KREA_TOKEN` secret** — downloads the **gated** Krea 2 weights *inside the job* and passes them
to the trainer as **local dirs**, so your own token never needs Krea access and the Krea token
never touches your repos.
- **`CAPTION_HF_TOKEN` secret** — calls the Inference API for **AI captioning** on this Space only
(`google/gemma-4-31B-it`, served with vision via the `novita` provider).
> Set `KREA_TOKEN` to a token with access to `krea/Krea-2-Raw` + `krea/Krea-2-Turbo`, and
> `CAPTION_HF_TOKEN` to any token that can call Inference Providers.
## Captioning
Pick whether you're training **a style** or **an object/character** — this drives both the
suggested trigger and how images are captioned:
- **Style** — captions describe only the *content* (subjects, layout, setting) and end with your
style trigger phrase (e.g. *heavy impasto style*), so the model learns the look, not the subjects.
- **Object/character** — captions describe the scene and tag the subject with a unique trigger
token (e.g. *b3@rcup*).
**✨ Suggest** proposes a trigger from 2–3 of your images; **✨ Add AI captions** fills every
caption. Everything is editable; blank captions fall back to the trigger.
## Preview gallery & README
After training, the job renders a few sample images on **Krea 2 Turbo** with your LoRA and pushes a
model-card **README** to the LoRA repo where each image is captioned by its prompt. The showcase
prompts are written by the LLM from your concept + trigger (or you can supply your own, one per line,
using `<trigger>` as a placeholder). The trainer's own validation is skipped in favour of this.
## diffusers version
The trainer lives in diffusers PR #14046 (branch `krea2-lora`). Once it is merged, set the
`DIFFUSERS_REF` Space **variable** to `main` (or a release tag).
## Usage
1. Sign in with Hugging Face.
2. Name your LoRA and pick what you're training — **a style** or **an object/character**.
3. Upload 4–30 images, **✨ Suggest** a trigger, and **✨ Add AI captions** (edit anything).
4. Tweak hyperparameters if you like, choose how many preview samples to render, pick a GPU flavor,
and **Submit training job**.
5. Copy the job id into the **Monitor** tab and **Refresh** to stream logs. When it finishes, the
LoRA repo has the weights, a preview gallery, and a rich README.
|