fix: Model type is not match comfyui

This commit is contained in:
hayden
2024-10-29 17:54:57 +08:00
parent 6934fbb331
commit 181828c64b
5 changed files with 26 additions and 65 deletions

View File

@@ -86,7 +86,7 @@ import { chunk } from 'lodash'
import { defineResizeCallback } from 'hooks/resize' import { defineResizeCallback } from 'hooks/resize'
import { genModelKey } from 'utils/model' import { genModelKey } from 'utils/model'
const { isMobile, cardWidth, gutter, aspect } = useConfig() const { isMobile, cardWidth, gutter, aspect, modelFolders } = useConfig()
const { data } = useModels() const { data } = useModels()
const { t } = useI18n() const { t } = useI18n()
@@ -94,32 +94,17 @@ const { t } = useI18n()
const searchContent = ref<string>() const searchContent = ref<string>()
const currentType = ref('all') const currentType = ref('all')
const typeOptions = ref( const typeOptions = computed(() => {
[ return ['all', ...Object.keys(modelFolders.value)].map((type) => {
{ label: 'ALL', value: 'all' },
{ label: 'Checkpoint', value: 'checkpoints' },
{ label: 'embedding', value: 'embeddings' },
{ label: 'Hypernetwork', value: 'hypernetworks' },
{ label: 'Lora', value: 'loras' },
{ label: 'VAE', value: 'vae' },
{ label: 'VAE approx', value: 'vae_approx' },
{ label: 'Controlnet', value: 'controlnet' },
{ label: 'Clip', value: 'clip' },
{ label: 'Clip Vision', value: 'clip_vision' },
{ label: 'Diffusers', value: 'diffusers' },
{ label: 'Gligen', value: 'gligen' },
{ label: 'Photomaker', value: 'photomaker' },
{ label: 'Style Models', value: 'style_models' },
{ label: 'Unet', value: 'unet' },
].map((item) => {
return { return {
...item, label: type,
value: type,
command: () => { command: () => {
currentType.value = item.value currentType.value = type
}, },
} }
}), })
) })
const sortOrder = ref('name') const sortOrder = ref('name')
const sortOrderOptions = ref( const sortOrderOptions = ref(

View File

@@ -45,7 +45,6 @@ import ResponseInput from 'components/ResponseInput.vue'
import ResponseSelect from 'components/ResponseSelect.vue' import ResponseSelect from 'components/ResponseSelect.vue'
import { useConfig } from 'hooks/config' import { useConfig } from 'hooks/config'
import { useModelBaseInfo } from 'hooks/model' import { useModelBaseInfo } from 'hooks/model'
import { resolveModelType } from 'utils/model'
import { computed } from 'vue' import { computed } from 'vue'
const editable = defineModel<boolean>('editable') const editable = defineModel<boolean>('editable')
@@ -58,7 +57,7 @@ const typeOptions = computed(() => {
return Object.keys(modelFolders.value).map((curr) => { return Object.keys(modelFolders.value).map((curr) => {
return { return {
value: curr, value: curr,
label: resolveModelType(curr).display, label: curr,
command: () => { command: () => {
type.value = curr type.value = curr
pathIndex.value = 0 pathIndex.value = 0

View File

@@ -30,7 +30,7 @@
<div class="flex flex-row items-start justify-between"> <div class="flex flex-row items-start justify-between">
<div class="flex items-center rounded-full bg-black/30 px-3 py-2"> <div class="flex items-center rounded-full bg-black/30 px-3 py-2">
<div class="font-bold @lg:text-xs"> <div class="font-bold @lg:text-xs">
{{ displayType }} {{ model.type }}
</div> </div>
</div> </div>
@@ -67,7 +67,7 @@
<script setup lang="ts"> <script setup lang="ts">
import DialogModelDetail from 'components/DialogModelDetail.vue' import DialogModelDetail from 'components/DialogModelDetail.vue'
import Button from 'primevue/button' import Button from 'primevue/button'
import { genModelKey, resolveModelType } from 'utils/model' import { genModelKey } from 'utils/model'
import { computed } from 'vue' import { computed } from 'vue'
import { useModelNodeAction } from 'hooks/model' import { useModelNodeAction } from 'hooks/model'
import { useDialog } from 'hooks/dialog' import { useDialog } from 'hooks/dialog'
@@ -92,7 +92,6 @@ const openDetailDialog = () => {
}) })
} }
const displayType = computed(() => resolveModelType(props.model.type).display)
const preview = computed(() => const preview = computed(() =>
Array.isArray(props.model.preview) Array.isArray(props.model.preview)
? props.model.preview[0] ? props.model.preview[0]

View File

@@ -7,7 +7,7 @@ import { cloneDeep } from 'lodash'
import { app } from 'scripts/comfyAPI' import { app } from 'scripts/comfyAPI'
import { bytesToSize, formatDate, previewUrlToFile } from 'utils/common' import { bytesToSize, formatDate, previewUrlToFile } from 'utils/common'
import { ModelGrid } from 'utils/legacy' import { ModelGrid } from 'utils/legacy'
import { resolveModelType } from 'utils/model' import { resolveModelTypeLoader } from 'utils/model'
import { import {
computed, computed,
inject, inject,
@@ -237,7 +237,7 @@ export const useModelBaseInfoEditor = (formInstance: ModelFormInstance) => {
const fields: FieldsItem[] = [ const fields: FieldsItem[] = [
{ {
key: 'type', key: 'type',
formatter: () => resolveModelType(modelData.value.type).display, formatter: () => modelData.value.type,
}, },
{ {
key: 'fullname', key: 'fullname',
@@ -463,7 +463,7 @@ export const useModelNodeAction = (model: BaseModel) => {
const { toast, wrapperToastError } = useToast() const { toast, wrapperToastError } = useToast()
const createNode = (options: Record<string, any> = {}) => { const createNode = (options: Record<string, any> = {}) => {
const nodeType = resolveModelType(model.type).loader const nodeType = resolveModelTypeLoader(model.type)
if (!nodeType) { if (!nodeType) {
throw new Error(t('unSupportedModelType', [model.type])) throw new Error(t('unSupportedModelType', [model.type]))
} }

View File

@@ -1,47 +1,25 @@
const loader = { const loader = {
checkpoints: 'CheckpointLoaderSimple', checkpoints: 'CheckpointLoaderSimple',
loras: 'LoraLoader',
vae: 'VAELoader',
clip: 'CLIPLoader', clip: 'CLIPLoader',
diffusion_models: 'UNETLoader',
unet: 'UNETLoader',
clip_vision: 'CLIPVisionLoader', clip_vision: 'CLIPVisionLoader',
controlnet: 'ControlNetLoader', style_models: 'StyleModelLoader',
embeddings: undefined,
diffusers: 'DiffusersLoader', diffusers: 'DiffusersLoader',
diffusion_models: 'DiffusersLoader', vae_approx: undefined,
embeddings: 'Embedding', controlnet: 'ControlNetLoader',
gligen: 'GLIGENLoader', gligen: 'GLIGENLoader',
upscale_models: 'UpscaleModelLoader',
hypernetworks: 'HypernetworkLoader', hypernetworks: 'HypernetworkLoader',
photomaker: 'PhotoMakerLoader', photomaker: 'PhotoMakerLoader',
loras: 'LoraLoader', classifiers: undefined,
style_models: 'StyleModelLoader',
unet: 'UNETLoader',
upscale_models: 'UpscaleModelLoader',
vae: 'VAELoader',
vae_approx: undefined,
} }
const display = { export const resolveModelTypeLoader = (type: string) => {
all: 'ALL', return loader[type]
checkpoints: 'Checkpoint',
clip: 'Clip',
clip_vision: 'Clip Vision',
controlnet: 'Controlnet',
diffusers: 'Diffusers',
diffusion_models: 'Diffusers',
embeddings: 'embedding',
gligen: 'Gligen',
hypernetworks: 'Hypernetwork',
photomaker: 'Photomaker',
loras: 'LoRA',
style_models: 'Style Model',
unet: 'Unet',
upscale_models: 'Upscale Model',
vae: 'VAE',
vae_approx: 'VAE approx',
}
export const resolveModelType = (type: string) => {
return {
display: display[type],
loader: loader[type],
}
} }
export const genModelKey = (model: BaseModel) => { export const genModelKey = (model: BaseModel) => {