|
| 1 | +<template> |
| 2 | + <div class="flex flex-col gap-6"> |
| 3 | + <!-- Model Info Section --> |
| 4 | + <div class="flex flex-col gap-2"> |
| 5 | + <p class="text-sm text-muted mb-0"> |
| 6 | + {{ $t('assetBrowser.modelAssociatedWithLink') }} |
| 7 | + </p> |
| 8 | + <p class="text-sm mt-0"> |
| 9 | + {{ metadata?.name || metadata?.filename }} |
| 10 | + </p> |
| 11 | + </div> |
| 12 | + |
| 13 | + <!-- Model Type Selection --> |
| 14 | + <div class="flex flex-col gap-2"> |
| 15 | + <label for="model-type" class="text-sm text-muted"> |
| 16 | + {{ $t('assetBrowser.whatTypeOfModel') }} |
| 17 | + </label> |
| 18 | + <select |
| 19 | + id="model-type" |
| 20 | + :value="modelValue" |
| 21 | + class="w-full rounded-md border border-border bg-surface px-3 py-2 text-sm outline-none focus:border-primary focus:ring-1 focus:ring-primary" |
| 22 | + @change="$emit('update:modelValue', ($event.target as HTMLSelectElement).value)" |
| 23 | + > |
| 24 | + <option |
| 25 | + v-for="option in modelTypeOptions" |
| 26 | + :key="option.value" |
| 27 | + :value="option.value" |
| 28 | + > |
| 29 | + {{ option.label }} |
| 30 | + </option> |
| 31 | + </select> |
| 32 | + <div class="flex items-center gap-2 text-sm text-muted"> |
| 33 | + <i class="icon-[lucide--info]" /> |
| 34 | + <span>{{ $t('assetBrowser.notSureLeaveAsIs') }}</span> |
| 35 | + </div> |
| 36 | + </div> |
| 37 | + </div> |
| 38 | +</template> |
| 39 | + |
| 40 | +<script setup lang="ts"> |
| 41 | +interface ModelMetadata { |
| 42 | + content_length: number |
| 43 | + final_url: string |
| 44 | + content_type?: string |
| 45 | + filename?: string |
| 46 | + name?: string |
| 47 | + tags?: string[] |
| 48 | + preview_url?: string |
| 49 | +} |
| 50 | +
|
| 51 | +defineProps<{ |
| 52 | + modelValue: string |
| 53 | + metadata: ModelMetadata | null |
| 54 | +}>() |
| 55 | +
|
| 56 | +defineEmits<{ |
| 57 | + 'update:modelValue': [value: string] |
| 58 | +}>() |
| 59 | +
|
| 60 | +const modelTypeOptions = [ |
| 61 | + { label: 'LoRA', value: 'lora' }, |
| 62 | + { label: 'Checkpoint', value: 'checkpoint' }, |
| 63 | + { label: 'Embedding', value: 'embedding' }, |
| 64 | + { label: 'VAE', value: 'vae' }, |
| 65 | + { label: 'Upscale Model', value: 'upscale_model' }, |
| 66 | + { label: 'ControlNet', value: 'controlnet' } |
| 67 | +] |
| 68 | +</script> |
0 commit comments