diff --git a/WebUI/src/assets/js/store/comfyUi.ts b/WebUI/src/assets/js/store/comfyUi.ts index dc496ec..25d6f24 100644 --- a/WebUI/src/assets/js/store/comfyUi.ts +++ b/WebUI/src/assets/js/store/comfyUi.ts @@ -20,6 +20,7 @@ export const useComfyUi = defineStore( const websocket = ref(null) const clientId = '12345' const loaderNodes = ref([]) + const generateIdx = ref(0) const backendServices = useBackendServices() const comfyUiState = computed(() => { @@ -163,8 +164,7 @@ export const useComfyUi = defineStore( const imageUrl = URL.createObjectURL(imageBlob) console.log('image url', imageUrl) if (imageBlob) { - imageGeneration.previewIdx = imageGeneration.generateIdx - imageGeneration.updateDestImage(imageGeneration.generateIdx, imageUrl) + imageGeneration.updateImage(generateIdx.value, imageUrl, true) } break default: @@ -194,11 +194,12 @@ export const useComfyUi = defineStore( const images: { filename: string; type: string; subfolder: string }[] = msg.data?.output?.images?.filter((i: { type: string }) => i.type === 'output') images.forEach((image) => { - imageGeneration.updateDestImage( - imageGeneration.generateIdx, + imageGeneration.updateImage( + generateIdx.value, `${comfyBaseUrl.value}/view?filename=${image.filename}&type=${image.type}&subfolder=${image.subfolder ?? ''}`, + false, ) - imageGeneration.generateIdx++ + generateIdx.value++ }) console.log('executed', { detail: msg.data }) break @@ -328,6 +329,7 @@ export const useComfyUi = defineStore( ...findKeysByClassType(mutableWorkflow, 'DualCLIPLoader (GGUF)'), ] + generateIdx.value = 0 for (let i = 0; i < imageGeneration.batchSize; i++) { modifySettingInWorkflow(mutableWorkflow, 'seed', `${(seed + i).toFixed(0)}`) diff --git a/WebUI/src/assets/js/store/imageGeneration.ts b/WebUI/src/assets/js/store/imageGeneration.ts index 0aa38b0..a680981 100644 --- a/WebUI/src/assets/js/store/imageGeneration.ts +++ b/WebUI/src/assets/js/store/imageGeneration.ts @@ -29,6 +29,7 @@ export type StableDiffusionSettings = { export type generatedImage = { id: number imageUrl: string + isLoading: boolean infoParams: KVObject | undefined } @@ -595,7 +596,6 @@ export const useImageGeneration = defineStore( const currentState = ref('no_start') const stepText = ref('') const previewIdx = ref(0) - const generateIdx = ref(-999) function loadSettingsForActiveWorkflow() { console.log('loading settings for', activeWorkflowName.value) @@ -626,25 +626,27 @@ export const useImageGeneration = defineStore( getSavedOrDefault('inpaintModel') } - async function updateDestImage(index: number, image: string) { - if (index + 1 > imageUrls.value.length) { - imageUrls.value.push(image) - } else { - imageUrls.value.splice(index, 1, image) - } - } - async function updateImage( index: number, image: string, + loading: boolean, infoParams: KVObject | undefined = undefined, ) { - const newImage: generatedImage = { id: index, imageUrl: image, infoParams: infoParams } + const newImage: generatedImage = { + id: index, + imageUrl: image, + isLoading: loading, + infoParams: infoParams, + } const existingImageIndex = generatedImages.value.findIndex((img) => img.id === newImage.id) if (existingImageIndex !== -1) { generatedImages.value.splice(existingImageIndex, 1, newImage) } else { generatedImages.value.push(newImage) + previewIdx.value = newImage.id + console.log('#################') + console.log(previewIdx) + console.log('#################') } } @@ -754,12 +756,10 @@ export const useImageGeneration = defineStore( } async function generate() { - generateIdx.value = 0 previewIdx.value = 0 stepText.value = i18nState.COM_GENERATING if (activeWorkflow.value.backend === 'default') { await stableDiffusion.generate() - console.log(generatedImages.value) } else { await comfyUi.generate() } @@ -774,7 +774,7 @@ export const useImageGeneration = defineStore( currentState.value = 'no_start' stableDiffusion.generateParams.length = 0 imageUrls.value.length = 0 - generateIdx.value = -999 + generatedImages.value.length = 0 //new previewIdx.value = -1 } @@ -794,7 +794,6 @@ export const useImageGeneration = defineStore( stepText, stopping, previewIdx, - generateIdx, imageModel, inpaintModel, lora, @@ -816,7 +815,6 @@ export const useImageGeneration = defineStore( loadWorkflowsFromJson, loadWorkflowsFromIntel, getMissingModels, - updateDestImage, updateImage, generate, stopGeneration, diff --git a/WebUI/src/assets/js/store/stableDiffusion.ts b/WebUI/src/assets/js/store/stableDiffusion.ts index c5e82ba..90ecd99 100644 --- a/WebUI/src/assets/js/store/stableDiffusion.ts +++ b/WebUI/src/assets/js/store/stableDiffusion.ts @@ -61,7 +61,6 @@ export const useStableDiffusion = defineStore( image_preview: imageGeneration.imagePreview, safe_check: imageGeneration.safeCheck, } - await sendGenerate(defaultBackendParams) } catch (_error: unknown) { } finally { @@ -123,25 +122,13 @@ export const useStableDiffusion = defineStore( if (!data.safe_check_pass) { data.image = '/src/assets/image/nsfw_result_detected.png' } - //old - await imageGeneration.updateDestImage(data.index, data.image) - generateParams.value.push(data.params) - imageGeneration.generateIdx++ //necessary? - //new - await imageGeneration.updateImage(data.index, data.image, data.params) + await imageGeneration.updateImage(data.index, data.image, false) break case 'step_end': imageGeneration.currentState = 'generating' imageGeneration.stepText = `${i18nState.COM_GENERATING} ${data.step}/${data.total_step}` if (data.image) { - //old - await imageGeneration.updateDestImage(data.index, data.image) - //new - await imageGeneration.updateImage(data.index, data.image) - } - if (data.step == 0) { - //necessary? - imageGeneration.previewIdx = data.index + await imageGeneration.updateImage(data.index, data.image, true) } break case 'load_model': diff --git a/WebUI/src/views/Create.vue b/WebUI/src/views/Create.vue index a686432..5a1bd69 100644 --- a/WebUI/src/views/Create.vue +++ b/WebUI/src/views/Create.vue @@ -2,15 +2,15 @@
-
+
- +
@@ -21,17 +21,14 @@ >
- - + +