--- base_model: krea/Krea-2-Turbo base_model_relation: adapter license: other license_name: krea-2-community-license license_link: https://huggingface.co/lvladikov/Krea2-Turbo-Distill-2step-LoRA/blob/main/LICENSE.pdf library_name: diffusers tags: - lora - text-to-image - distillation - step-distillation - distribution-matching - krea-2 pipeline_tag: text-to-image --- # Krea 2 Turbo — 2-Step Distillation LoRA **A quarter of the steps · 4.2× faster denoising · fine detail at 1.01–1.17× the teacher's across all 12 trained resolutions · 1 point missing of 240 on a blind prompt-adherence rubric · teacher preferred on 11 of 45 judged renders · 17,464 training samples on the 4-step project's recorded trajectories · 7 days on one RTX 3090 · still in training.** A LoRA for **[Krea 2 Turbo](https://huggingface.co/krea/Krea-2-Turbo)** that takes the model from **8 steps down to 2** — Turbo's own weights and sigmas, guidance 0.0, a quarter of the denoising passes — aiming at the best quality two steps can give. It is for **fast previews and drafts**; the **[4-step LoRA](https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA)** remains the recommendation for quality renders. - ⚡ **A quarter of the steps** — 8 → 2, on Turbo's own deployment sigmas `[1.0, 0.7595]` - ⏱️ **4.2× faster denoising** — 81.4 s → 19.5 s at 1024×1024; the adapter's own cost per call is within measurement noise - 🎯 **Fine detail at or just above the teacher's** — **1.01–1.17×** the teacher's fine-texture energy at every trained resolution (stock Turbo at 2 steps: **0.39–0.57×**); from 1 megapixel up, closer to the teacher than the 4-step adapter - 📊 **Distribution matching, not imitation** — matches what the teacher would plausibly produce rather than its exact trajectory, so the student commits instead of averaging into blur and doubled edges - 🗣️ **Prompt-conditioned throughout** — teacher and fake scores both read each prompt's conditioning; a blind rubric finds **1 point missing of 240** (objects, counts, attributes, relations), and a judge prefers the 8-step teacher on **11 of 45** (4-step adapter: 6), mostly on style - 📐 **12 trained resolutions** — multi-aspect from 512×512 up to 1440×1440 - 🔌 **Drop-in, no exceptions** — plain LoRA, stock Euler, diffusers / ComfyUI / MLX. No custom nodes, no custom sampler - 🧬 **Same shape as the [4-step adapter](https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA)** — rank 64 on the same 228 modules - 🎲 **13,750 recorded teacher trajectories** from the 4-step project, reused — not one new teacher run - 🔢 **17,464 training samples** in the 2-step stages, on top of the 4-step LoRA's 78,000 - 📅 **7 days** from the first 2-step launch to this checkpoint, on a single RTX 3090 — training continues - 🔁 **26 recipe adjustments** across two methods — each kept only when the renders did not get worse > 🧪 **Fast-preview adapter, still in training.** Subjects that are close and fill a good part of the frame — a portrait, a single figure, an object up close — hold up well at two steps. Small subjects are where it still falls short: faces in a crowd or figures in a wide scene can come out ghosted or smeared. For those, and whenever quality matters more than speed, use the [4-step LoRA](https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA). See [Known Issues](#known-issues). > > 📐 **The saved steps can also go into resolution.** A larger render makes a small subject bigger, and at a quarter of the teacher's steps, renders up to 2048×2048 — Krea's published maximum recommended resolution, beyond this adapter's largest trained size — come within easy reach. Past 2048×2048, stock Krea 2 itself begins to duplicate subjects, with or without this adapter. > > 🔀 **Also compatible with Krea 2 Raw** — with some prompts, at 7+ steps and light guidance. See [Using it on Raw](#using-it-on-raw). [![The 15 test prompts, rendered by Krea 2 Turbo with this LoRA at 2 steps](assets/thumbs/poster.jpg)](assets/poster.jpg) --- ## Files | file | what it is | | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `krea2_turbo_2step_rank_64_lora.safetensors` | LoRA in diffusers key format — see [diffusers](#diffusers) | | `krea2_turbo_2step_rank_64_lora_comfyui.safetensors` | Same weights under ComfyUI key names — see [ComfyUI](#comfyui) | | `krea2_turbo_2step_lora_t2i.json` | Ready ComfyUI workflow, stock nodes only | | `krea2_raw_7step_lora_experiment_t2i.json` | ComfyUI workflow of the Krea 2 Raw 7-step experiment — see [Using it on Raw](#using-it-on-raw) | | [`krea2_turbo_2step_rank_64_lora_checkpoint_info.md`](krea2_turbo_2step_rank_64_lora_checkpoint_info.md) | **Which checkpoint the two weight files are** — updated with every release | | `LICENSE.pdf` | Krea 2 Community License Agreement | | `NOTICE.txt` | Required attribution notice | Both weight files are one adapter — only key names differ. Both carry training details in safetensors metadata. File names never change: a better checkpoint replaces both in place, and every published checkpoint stays in [`_archive/checkpoints/`](_archive/checkpoints/) under its number. --- ## Quick Start ### diffusers ```bash pip install git+https://github.com/huggingface/diffusers.git ``` ```python import torch from diffusers import Krea2Pipeline from huggingface_hub import hf_hub_download from safetensors.torch import load_file pipe = Krea2Pipeline.from_pretrained("krea/Krea-2-Turbo", torch_dtype=torch.bfloat16).to("cuda") lora = hf_hub_download("lvladikov/Krea2-Turbo-Distill-2step-LoRA", "krea2_turbo_2step_rank_64_lora.safetensors") state = load_file(lora) state = {f"transformer.{k}": v for k, v in state.items() if not k.endswith(".alpha")} pipe.load_lora_weights(state, adapter_name="2step") image = pipe("a fox in the snow", num_inference_steps=2, guidance_scale=0.0).images[0] image.save("krea2_2step.png") ``` - **`num_inference_steps=2` is the whole config.** Pipeline applies Turbo's fixed timestep shift (μ = 1.15) and evaluates at σ = 1.0, 0.7595 — exactly the two points the LoRA was trained on. Keep `guidance_scale=0.0`. - Strength: `pipe.set_adapters(["2step"], adapter_weights=[0.75])`. Stock Turbo for comparison: `pipe.unload_lora_weights()` + `num_inference_steps=8`. - Use the diffusers file, not `_comfyui` — diffusers reads Krea's own key naming, not ComfyUI's `lora_down`/`lora_up`. ### ComfyUI | file | put it in | | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | | `krea2_turbo_2step_rank_64_lora_comfyui.safetensors` | `ComfyUI/models/loras/` | | `krea2_turbo_bf16.safetensors` (from [Comfy-Org/Krea-2](https://huggingface.co/Comfy-Org/Krea-2/tree/main/diffusion_models)) | `ComfyUI/models/diffusion_models/` | | `qwen3vl_4b_bf16.safetensors` (same repo) | `ComfyUI/models/text_encoders/` | | `qwen_image_vae.safetensors` (same repo) | `ComfyUI/models/vae/` | Load [`krea2_turbo_2step_lora_t2i.json`](krea2_turbo_2step_lora_t2i.json). Full bf16, no quantisation, runs on CUDA / Apple Silicon / CPU unchanged. Smaller Turbo builds work too — ComfyUI's loader applies the LoRA to any build — except `fp8_scaled` on Apple Silicon (MPS has no `Float8_e4m3fn`). **Settings:** steps **2**, **cfg 1.0**, sampler `euler` / `simple`, LoRA strength **1.0**. > ⚙️ **cfg 1.0, not 0.0.** ComfyUI expresses "no CFG" as 1.0 (one forward pass); diffusers uses 0.0. Setting 0.0 in ComfyUI is not the same thing. ### Using it on Raw Trained on Turbo, for Turbo — it loads on **Krea 2 Raw** because the architecture is shared, a side effect rather than a supported mode. The same quarter of Raw's usual 28 steps, **7**, is the place to start; some prompts hold at 4–5 for a quick preview. Keep guidance **light**: `guidance_scale=1.0` in diffusers, **cfg 2.0** in ComfyUI — 4.5 crushes most images to near-black at 7 steps, and no guidance leaves them flat. Results are mixed and subject-dependent. All 15 prompts at 1024×768, what worked and what didn't, and the workflow ([`krea2_raw_7step_lora_experiment_t2i.json`](krea2_raw_7step_lora_experiment_t2i.json)) are in the [experiment's README](assets/resolution_sweeps/raw-LoRA-7steps-experiment/README.md). --- ## Performance (1024×1024, Apple Silicon MLX bf16) | | denoise | per model call | GPU peak | | ----------------------------- | ---------- | -------------- | -------- | | Turbo 8 steps (quality bar) | 81.4 s | 10.2 s | 25.2 GiB | | Turbo 2 steps, no LoRA | 20.4 s | 10.2 s | 25.2 GiB | | **Turbo 2 steps + this LoRA** | **19.5 s** | 9.8 s | 25.2 GiB | **Denoising is 4.2× faster than the 8-step bar** — two model calls instead of eight. The adapter adds no measurable cost per call and no measurable memory; the runs with it came in marginally faster, which is noise, not a speed-up. Prompt encoding and VAE decode don't change with step count, so end to end sits below 4.2× and rises toward it as the render grows. Denoise times at every trained resolution (6.4 s at 512×512 to 39.8 s at 1440×1440) are in the [Detailed Model Card](DETAILED-README.md). --- ## LoRA Strength | strength | what happens | | ------------- | ------------------------------------------------------------------------------------------------------------------------ | | **below 1.0** | Correction only partly applied — softer skin and hair, less fine structure, closer to 2 steps without the adapter | | **1.0** | Trained point, recommended | | **1.0–1.5** | Extrapolation — texture denser than the subject warrants, fine structure reads wiry rather than sharp. Usable per prompt | | **above 1.5** | Not recommended, not measured | At two steps the dial scales the adapter's whole job — turning two coarse calls into a finished image — so there is less reason to go below 1.0 than with a 4-step adapter. Reach for **steps before strength**: when quality matters more than speed, the [4-step adapter](https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA) is the better tool. [![LoRA strength comparison](assets/thumbs/portrait_strength_sweep.jpg)](assets/portrait_strength_sweep.jpg) --- ## Current Checkpoint **`chk00017464`** (14 Sep 2026) replaces `chk00013663` (12 Sep 2026). It is 3,801 training samples later, all aimed at what distribution matching leaves behind — grain and grid pattern at large sizes, small faces, dense detail — through five recipe changes, among them the artefact, photo and face critics taking turns and four detail terms. | axis | `chk00013663` | `chk00017464` | | --------------------------------------------- | ------------- | --------------- | | fine texture vs the teacher, 1280² / 1440² | 1.20 / 1.34 | **1.09 / 1.17** | | 16-px grid band, 1280² / 1440² | 1.16 / 1.25 | **1.08 / 1.08** | | grain in flat areas, sweep median | 1.36× | **1.26×** | | distance to the teacher, sweep mean | 0.413 | **0.406** | | judge prefers the teacher (of 45) | **6** | 11 | | blind adherence rubric, points missing of 240 | **0** | 1 | | saturation vs the teacher, sweep mean | **0.94×** | 0.93× | Fine texture and both grid bands came closer to the teacher at 10 of 12 resolutions. Prompt-following on stylised prompts and colour did not improve — both are what the next recipe changes target. [`krea2_turbo_2step_rank_64_lora_checkpoint_info.md`](krea2_turbo_2step_rank_64_lora_checkpoint_info.md) always names the checkpoint in the weight files; the full comparison is in the [Detailed Model Card](DETAILED-README.md). --- ## Known Issues The usual costs of two steps, in order of how often they show: - **Small subjects** — the weak spot, people and objects alike. Faces in a crowd, a figure in a wide scene, the machines at the back of a room can come out ghosted, smeared or misshapen; a portrait-sized face or an object up close holds up - **Fine structure** — feathers, hair strands and signage can be soft or a few pixels out of register, most at 1280×1280 and above; a faint doubled contour can show on limbs - **Style** — on stylised prompts, _how_ the picture should look (crisp linework, brush strokes, fingerprints in clay, a matte-painting finish) is followed less faithfully than _what_ should be in it - **Repeats** — on busy action or crowd scenes the composition can repeat itself: an extra hand or held object, a figure duplicated in a crowd - **Different composition** — two steps is a shorter path from the same noise, so framing, pose or arrangement can differ from the 8-step render at the same seed. Treat the teacher's render as a quality reference, not the picture two steps will reproduce - **Skin and colour** — skin slightly smoother and less saturated than the teacher's, colour a little under it at the largest sizes; freckles gather into clusters rather than separate dots - **Grain** — a fine grain remains on the most textured subjects at the largest sizes, lighter than in the previous checkpoint Every one is being worked on; none is hidden in the sweeps or the examples. --- ## Method **Distribution matching (DMD2 family) with a trajectory anchor**, Krea 2 Turbo as its own teacher, on the recorded 8-step trajectories. The student makes two calls, at σ = 1.0 and 0.7595 — the first and fifth points of the teacher's 8-step grid at μ = 1.15 — with stock Euler between them. Euler's first step lands **exactly** on the flow-matching interpolant at σ = 0.7595, so the first call's output is a legitimate image prediction and is judged as one. - **Distribution term** — the frozen teacher and a _fake-score_ adapter (rank 32, trained online on the student's current output, 4 updates per student step, discarded at the end) each denoise a freshly noised copy of the student's image; where they disagree is the direction toward the teacher's work. Averaging is never rewarded, so the student commits - **Trajectory anchor** — regression on the recorded chords at half weight keeps the student on the teacher's two-step grid **On top, each capped relative to the distribution term:** - **Spectral match** — student and teacher images compared through radial power spectra, on the whole latent and a decoded 256-px window, two-sided — the term that reached the 16/8-px grid grain at large sizes - **Three critics taking turns** — artefact, photo (half real photographs) and face heads on the frozen base's mid-network features; one pushes per step, filtered to structure finer than 32 px (photo critic: 24 px) - **Four detail terms** — anchor counts fine-detail error twice; one-sided photo floor at 3–10 px; the teacher's finish of the student's first call as the second call's target; smoothness limit on the fake adapter Shipped adapter is the **running (EMA) average** of the weights, not the last live state. --- ## What the LoRA Touches Rank **64**, alpha = rank (scale 1.0), bf16 — the same **228 modules** as the [4-step adapter](https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA): - **224 block linears** — all 28 transformer blocks: `to_q`, `to_k`, `to_v`, `to_gate`, `to_out.0`, `ff.gate`, `ff.up`, `ff.down` - **4 global linears** — `time_embed.linear_1`, `time_embed.linear_2`, `time_mod_proj`, `final_layer.linear` — the ones a step-count change needs most Nothing about the base model changes. --- ## Training Data - **13,750 recorded teacher trajectories** from the [4-step project](https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA), prompts from [Lakonik/t2i-prompts-3m](https://huggingface.co/datasets/Lakonik/t2i-prompts-3m) — Turbo's own 8 steps at μ = 1.15, guidance 0.0, every latent and velocity stored; a 2-step chord is two 4-step chords end to end - **203 held-out prompts** — measure the student–teacher gap, never receive a gradient - **43,044 real-photo crops** from the 4-step project — set the photo floor (one precomputed statistic) and make up half of the photo critic's real examples Only the photo critic's head sees the photos; the student and the fake adapter receive only its filtered, capped push. No new prompts, text embeddings or teacher runs. --- ## Resolutions (12 buckets) | | | | | --------- | --------- | --------- | | 512×512 | 512×768 | 768×512 | | 768×768 | 768×1024 | 1024×768 | | 1024×1024 | 960×1280 | 1280×960 | | 1280×1280 | 1440×1280 | 1440×1440 | Same 12 buckets as the 4-step adapter, interleaved in proportion to their remaining samples. --- ## Hardware Trained on a **single RTX 3090 (24 GB)**. Frozen base **weight-only int8**. Every term fits up to 1440×1440 via: - Checkpointed block inputs staged to pinned host memory above 0.3 MP - Student, fake adapter, spectral and detail terms, critic and teacher finish each build and free their own graph — peaks never overlap - Hard memory ceiling below the driver's paging threshold, so a step that doesn't fit fails loudly A full step with every term live reserves ~22.4 GB at 1440×1440. Throughput is **~107 samples/hour** against the 4-step recipe's 470 — roughly a dozen model runs per sample instead of two. That is the objective's cost, not teacher generation: the trajectories were recorded once and are read from disk. Released LoRA is **bf16**. --- ## Usage Notes - 🎯 **Krea 2 Turbo only** — trained against Turbo's weights and schedule; on Raw it is a side effect (see [Using it on Raw](#using-it-on-raw)) - 🚫 **Keep guidance at 0.0** (ComfyUI: **cfg 1.0**, not 0.0) - 📐 **Keep μ = 1.15** — the two training sigmas are anchored to that grid - 🧪 **Not a finished adapter** — for previews and drafts; a later checkpoint replaces this one only when the sweeps and I visually agree it is better - 🔬 Training used an int8 base; released LoRA is bf16 --- ## Examples Every sheet below: base model (8 steps), base at 2 steps **without** LoRA, base at 2 steps **with** LoRA — same seed throughout. Compare panels 2 vs 3 to isolate LoRA effect; panel 1 is the quality bar, not a pixel target. NFE = steps (Turbo is CFG-free). ### Portrait of a young woman with freckles and windswept auburn hair... [![portrait comparison](assets/thumbs/portrait_compare_turbo.jpg)](assets/portrait_compare_turbo.jpg) | Turbo 8 steps | Turbo 2 steps, no LoRA | **Turbo 2 steps + LoRA** | | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | [![8 steps](assets/thumbs/portrait_turbo_8step.jpg)](assets/portrait_turbo_8step.jpg) | [![2 steps](assets/thumbs/portrait_turbo_2step.jpg)](assets/portrait_turbo_2step.jpg) | [![2 steps + LoRA](assets/thumbs/portrait_turbo_2step_lora.jpg)](assets/portrait_turbo_2step_lora.jpg) | --- ### Kingfisher bursting out of water... [![kingfisher comparison](assets/thumbs/kingfisher_compare_turbo.jpg)](assets/kingfisher_compare_turbo.jpg) | Turbo 8 steps | Turbo 2 steps, no LoRA | **Turbo 2 steps + LoRA** | | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | [![8 steps](assets/thumbs/kingfisher_turbo_8step.jpg)](assets/kingfisher_turbo_8step.jpg) | [![2 steps](assets/thumbs/kingfisher_turbo_2step.jpg)](assets/kingfisher_turbo_2step.jpg) | [![2 steps + LoRA](assets/thumbs/kingfisher_turbo_2step_lora.jpg)](assets/kingfisher_turbo_2step_lora.jpg) | --- ### Rainy night city street with glowing neon signs... [![neonstreet comparison](assets/thumbs/neonstreet_compare_turbo.jpg)](assets/neonstreet_compare_turbo.jpg) | Turbo 8 steps | Turbo 2 steps, no LoRA | **Turbo 2 steps + LoRA** | | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | [![8 steps](assets/thumbs/neonstreet_turbo_8step.jpg)](assets/neonstreet_turbo_8step.jpg) | [![2 steps](assets/thumbs/neonstreet_turbo_2step.jpg)](assets/neonstreet_turbo_2step.jpg) | [![2 steps + LoRA](assets/thumbs/neonstreet_turbo_2step_lora.jpg)](assets/neonstreet_turbo_2step_lora.jpg) | --- ### (12 more examples, and a two-panel sheet against the teacher for every prompt, in the [full version](DETAILED-README.md) — see [assets/](assets/) for all 15 prompts) --- ## Resolution Sweeps [`assets/resolution_sweeps/`](assets/resolution_sweeps/) — **this LoRA at every trained resolution for all 15 test prompts** (same prompts, seed, 2 steps, strength 1.0). Nothing cherry-picked. [`_teacher-8step/`](assets/resolution_sweeps/_teacher-8step/) — official Krea 2 Turbo 8-step reference renders for the same prompts/seeds/resolutions. [`_turbo-base-NO-LoRA-2step/`](assets/resolution_sweeps/_turbo-base-NO-LoRA-2step/) — stock Turbo at 2 steps, the floor. Layout: ``` assets/resolution_sweeps/ ├── _teacher-8step/ 8-step stock Turbo reference │ ├── 512x512/ │ ├── 1024x1024/ │ └── ... (all 12 buckets) ├── _turbo-base-NO-LoRA-2step/ Same tree, stock Turbo at 2 steps (the floor) ├── 2step-LoRA/ Same tree, this LoRA at 2 steps (the published checkpoint) ├── _turbo-base-NO-LoRA-1step/ Stock Turbo at 1 step (bonus section) ├── 1step-LoRA-extreme/ This LoRA at 1 step, with side-by-side strips (bonus section) └── raw-LoRA-7steps-experiment/ Krea 2 Raw + this LoRA at 7 steps (Using it on Raw) ``` --- ## Bonus: 1-Step Extreme Test > **Out-of-spec experiment — not recommended for any use.** Trained for 2 steps; at 1 step it runs half its trained count and an eighth of the teacher's. Stock Turbo returns a smear at one step — a colour field with a ghost of the subject. With the LoRA the same single call is a coherent picture: subject, composition, lighting and colours all there. Missing is the detail the second step adds — soft skin, streaked hair and fur, little of the finest structure (feathers, falling snow, small text). A rough **preview of composition and colour** at an eighth of the teacher's cost, nothing more. Full set at all 12 resolutions, render + side-by-side strip per prompt: [`assets/resolution_sweeps/1step-LoRA-extreme/`](assets/resolution_sweeps/1step-LoRA-extreme/). Stock Turbo at 1 step: [`_turbo-base-NO-LoRA-1step/`](assets/resolution_sweeps/_turbo-base-NO-LoRA-1step/) > 🔭 **A 1-step adapter is a possible follow-on** — a booster on top of this LoRA, trained by distribution matching alone and judged on seed variety as much as detail. Expectation: a usable preview at an eighth of the teacher's cost, not the quality bar. --- ## Archive Every published checkpoint and its resolution sweep under [`_archive/`](_archive/) — [`checkpoints/`](_archive/checkpoints/) and [`resolution_sweeps/`](_archive/resolution_sweeps/), each under its number. Superseded, not maintained. --- ## What's next Training continues from this checkpoint, one recipe change at a time, each kept only if the pictures do not degrade at any resolution — aiming at the best quality two steps can give, not at matching the [4-step LoRA](https://huggingface.co/lvladikov/Krea2-Turbo-Distill-4step-LoRA). Next, aimed at the [Known Issues](#known-issues): a first call that blends two layouts caught where the blend happens; detail held to the teacher region by region, with a ceiling as well as a floor; photographic grain kept off illustration, anime and 3D; sharper eyes, nose and lips with skin kept the teacher's; colour at large sizes held up to the teacher's; a more even mix of resolutions. After that, prompt adherence on stylised prompts — none of it allowed to cost the sharpness this checkpoint gained. A better checkpoint replaces this one when the sweeps and I visually agree; until then the 4-step adapter remains the recommendation for quality renders, and this one is the fast preview. --- ## Detailed Model Card For more details, if interested, have a look at the [Detailed Model Card](DETAILED-README.md). --- ## License This adapter is a **Derivative of Krea 2 Turbo** under the [Krea 2 Community License Agreement](LICENSE.pdf). Everything the agreement says about Krea 2 Turbo applies to this LoRA: [Acceptable Use Policy](https://krea.ai/krea-2-use-policy), revenue threshold for commercial use, content-filtering duty for deployments. Copy of agreement: [`LICENSE.pdf`](LICENSE.pdf), required notice: [`NOTICE.txt`](NOTICE.txt). See [krea.ai/krea-2-licensing](https://krea.ai/krea-2-licensing). **Not an official Krea product, not endorsed by Krea.** Base model is Krea's; adapter weights and everything else in this repo are mine.