fix: Model type is not match comfyui
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
@@ -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]))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user