Add FLUX.1 Krea dev to the image model catalog

Krea's guidance-distilled FLUX.1-dev finetune keeps the exact dev layout, so it
runs under the existing flux.1 family unchanged. Wire it up end to end:

- Catalog group with the gated official bf16 pipeline and the open QuantStack
  GGUF quants; the gated artifact is skipped on auto-routing when undownloaded.
- Trust the official repo for non-GGUF from_pretrained loads, next to the other
  black-forest-labs bases.
- Generation defaults: 28 steps at guidance 4.5 per the model card. The generic
  "krea" defaults key (Krea-2-Turbo's 8-step no-CFG recipe) used to swallow the
  id, which would have produced garbage output; the new flux.1-krea key precedes
  it on both the backend table and the images page table.
- The flux.1 prequant checkpoints are schnell-based; the loader's baked
  base_model_id validation refuses them for the Krea-dev base, so int8/fp8
  requests dense-quantize instead (covered by existing prequant tests).
This commit is contained in:
Daniel Han 2026-07-17 10:49:04 +00:00
commit 08b853df15
6 changed files with 69 additions and 0 deletions

View file

@ -348,6 +348,19 @@ assert.equal(
}).repoId,
"black-forest-labs/FLUX.1-dev",
);
// FLUX.1 Krea dev: gated BF16 skipped when undownloaded -> the open QuantStack GGUF; the
// GGUF repo id also resolves to the group (cross-owner via the artifact list).
const kreaDevRoute = groupForRepoId("black-forest-labs/FLUX.1-Krea-dev", IMAGE_CATALOG);
assert.ok(kreaDevRoute);
assert.equal(
pickDefaultArtifact(kreaDevRoute, { gpuGb: 80, systemRamGb: 128, isDownloaded: notDownloaded })
.repoId,
"QuantStack/FLUX.1-Krea-dev-GGUF",
);
assert.equal(
groupForRepoId("QuantStack/FLUX.1-Krea-dev-GGUF", IMAGE_CATALOG),
kreaDevRoute,
);
// FLUX.1-schnell is Apache-2.0 (not gated): its BF16 IS auto-routed on a GPU that fits it.
const fluxSchnellRoute = groupForRepoId("unsloth/FLUX.1-schnell", IMAGE_CATALOG);
assert.ok(fluxSchnellRoute);

View file

@ -198,6 +198,19 @@ export const IMAGE_CATALOG: CatalogGroup[] = [
gguf("unsloth/FLUX.1-dev-GGUF"),
],
},
{
// Krea's guidance-distilled FLUX.1-dev finetune ("opinionated aesthetics"): same
// arch/layout as FLUX.1-dev, so it runs under the existing flux.1 family. The base
// repo is gated like dev; QuantStack publishes the open GGUF quants.
canonicalId: "black-forest-labs/FLUX.1-Krea-dev",
displayName: "FLUX.1 Krea dev",
description: "Text-to-image",
scope: "image",
artifacts: [
bf16Pipeline("black-forest-labs/FLUX.1-Krea-dev", 32, { gated: true }),
gguf("QuantStack/FLUX.1-Krea-dev-GGUF"),
],
},
{
canonicalId: "unsloth/FLUX.2-klein-4B",
displayName: "FLUX.2 klein 4B",

View file

@ -156,6 +156,10 @@ const MODEL_DEFAULTS: Array<{ match: string; steps: number; guidance: number }>
{ match: "flux.1-schnell", steps: 4, guidance: 0 },
// Kontext (editing) before the generic flux.1: ~28 steps, lower guidance (~2.5).
{ match: "kontext", steps: 28, guidance: 2.5 },
// Krea's FLUX.1-dev finetune runs its card recipe (28 steps, guidance 4.5); before
// the generic flux.1 key. It never hits the krea-2 keys above ("krea-2" is not a
// substring of "flux.1-krea-dev").
{ match: "flux.1-krea", steps: 28, guidance: 4.5 },
{ match: "flux.1", steps: 28, guidance: 3.5 },
{ match: "flux.2-klein", steps: 4, guidance: 0 },
// FLUX.2-dev is the full (non-distilled) model: more steps + real guidance, unlike klein.