Surface HiDream I1 in the image model catalog

One catalog group with the three official bf16 pipelines (Full, plus the Dev
and Fast distillations as labeled artifacts) at their ~63 GB resident size, so
auto-routing keeps this a datacenter-GPU pick. city96's GGUF is deliberately
not wired: the GGUF path would need the same Llama TE4 assembly for very small
demand. Images-page defaults mirror the backend table with the variant keys
ahead of the generic hidream key.
This commit is contained in:
Daniel Han 2026-07-17 13:08:53 +00:00
commit dda6a1db63
3 changed files with 44 additions and 0 deletions

View file

@ -399,6 +399,22 @@ assert.equal(
"bf16",
);
assert.equal(groupForRepoId("QuantStack/HunyuanImage-2.1-GGUF", IMAGE_CATALOG), hyimage);
// HiDream I1: all three variants group together; a datacenter GPU auto-routes to the
// Full bf16 (catalog order wins among equal sizes), and the group is hidden by the fit
// filter on a 24 GB card (no GGUF artifact, 63 GB everywhere).
const hidream = groupForRepoId("HiDream-ai/HiDream-I1-Full", IMAGE_CATALOG);
assert.ok(hidream);
assert.equal(groupForRepoId("HiDream-ai/HiDream-I1-Dev", IMAGE_CATALOG), hidream);
assert.equal(groupForRepoId("HiDream-ai/HiDream-I1-Fast", IMAGE_CATALOG), hidream);
assert.equal(
pickDefaultArtifact(hidream, { gpuGb: 141, systemRamGb: 128, isDownloaded: notDownloaded })
.repoId,
"HiDream-ai/HiDream-I1-Full",
);
assert.equal(
catalogGroupFitsDevice(hidream, { gpuGb: 24, systemRamGb: 32 }, notDownloaded),
false,
);
// 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

@ -276,6 +276,29 @@ export const IMAGE_CATALOG: CatalogGroup[] = [
gguf("QuantStack/HunyuanImage-2.1-GGUF"),
],
},
{
// 17B MoE DiT + four text encoders. The repos are open (MIT weights) but ship no
// Llama text_encoder_4; the backend assembles it from the open unsloth mirror at
// load time, adding ~16 GB: ~63 GB bf16-resident total, so this stays a
// datacenter-GPU pick. Full is the undistilled base; Dev and Fast are its
// guidance-free distillations with their own step defaults. city96's GGUF is not
// wired: the GGUF path would need the same TE4 assembly for tiny demand.
canonicalId: "HiDream-ai/HiDream-I1-Full",
displayName: "HiDream I1",
description: "Text-to-image",
scope: "image",
artifacts: [
bf16Pipeline("HiDream-ai/HiDream-I1-Full", 63),
bf16Pipeline("HiDream-ai/HiDream-I1-Dev", 63, {
label: "BF16 - Dev (distilled)",
keywords: ["bf16", "dev", "distilled"],
}),
bf16Pipeline("HiDream-ai/HiDream-I1-Fast", 63, {
label: "BF16 - Fast (distilled)",
keywords: ["bf16", "fast", "distilled"],
}),
],
},
{
// No bf16 repo exists for Ideogram 4: -fp8 stores its two DiTs as raw
// float8 (~46 GB resident after the bf16 cast); -nf4-diffusers is the

View file

@ -173,6 +173,11 @@ const MODEL_DEFAULTS: Array<{ match: string; steps: number; guidance: number }>
// HunyuanImage 2.1: 50 steps; the guidance value feeds distilled_guidance_scale
// (default 3.25), real CFG runs inside the repo's guider components.
{ match: "hunyuanimage", steps: 50, guidance: 3.25 },
// HiDream-I1: Full runs 50 steps at guidance 5; the Dev/Fast distillations are
// guidance-free. Specific keys before the generic "hidream" (Full + fallback).
{ match: "hidream-i1-dev", steps: 28, guidance: 0 },
{ match: "hidream-i1-fast", steps: 16, guidance: 0 },
{ match: "hidream", steps: 50, guidance: 5 },
// SDXL: Turbo is distilled (few steps, no CFG); base/full SDXL wants ~30 steps and
// real CFG (~7). "sdxl-turbo" must precede the generic "sdxl" substring match.
{ match: "sdxl-turbo", steps: 3, guidance: 0 },