diff --git a/tools/ui/src/lib/components/app/models/ModelAvatar.svelte b/tools/ui/src/lib/components/app/models/ModelAvatar.svelte
index 2c7051a868..ca456d1333 100644
--- a/tools/ui/src/lib/components/app/models/ModelAvatar.svelte
+++ b/tools/ui/src/lib/components/app/models/ModelAvatar.svelte
@@ -8,9 +8,12 @@
import { orgOf } from '$lib/utils';
import { getBackend } from '$lib/utils/api-base';
import { getBackendCapabilities } from '$lib/utils/backend';
+ import type { Snippet } from 'svelte';
interface Props {
class?: string;
+ /** Rendered when the model has neither an org avatar nor a provider mark. */
+ fallback?: Snippet;
option: ModelOption;
quantPositionClass?: string;
quantSize?: string;
@@ -28,6 +31,7 @@
let {
class: className = '',
+ fallback,
option,
quantPositionClass = '-bottom-1 -right-1',
quantSize = 'h-3 w-3',
@@ -130,4 +134,6 @@
{size}
/>
+{:else}
+ {@render fallback?.()}
{/if}
diff --git a/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorTriggerIcon.svelte b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorTriggerIcon.svelte
index 3b41c91541..adb6ac1a60 100644
--- a/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorTriggerIcon.svelte
+++ b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorTriggerIcon.svelte
@@ -1,32 +1,23 @@
{#if option}
-
+
{#snippet fallback()}
- {#if isLocal}
-
- {:else}
-
- {/if}
+
{/snippet}
-
+
{:else}
{/if}
diff --git a/tools/ui/src/lib/components/app/models/ModelsSelector/index.ts b/tools/ui/src/lib/components/app/models/ModelsSelector/index.ts
index 6bcab3c7b4..6607ae5102 100644
--- a/tools/ui/src/lib/components/app/models/ModelsSelector/index.ts
+++ b/tools/ui/src/lib/components/app/models/ModelsSelector/index.ts
@@ -104,8 +104,8 @@ export { default as ModelsSelectorSheet } from './ModelsSelectorSheet.svelte';
/**
* **ModelsSelectorTriggerIcon** - Icon for the selector trigger button
*
- * Shows the selected model's provider mark (preset logo or favicon) and falls
- * back to the generic model icon when the provider has none. The bundled local
- * server falls back to the llama.cpp logo.
+ * Shows the selected model's own org avatar (the same mark the option rows
+ * use) and falls back to the generic model icon when the model has neither an
+ * org nor a provider mark.
*/
export { default as ModelsSelectorTriggerIcon } from './ModelsSelectorTriggerIcon.svelte';
diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte
index 8523f0685b..5543720982 100644
--- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte
+++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte
@@ -59,7 +59,7 @@
});
-
+
{#if orgAvatarFailed}