diff --git a/models/Model.go b/models/Model.go index b429654..4c06ad7 100644 --- a/models/Model.go +++ b/models/Model.go @@ -105,6 +105,13 @@ func (model *Model) Inference(image_list []Image, callback func(Image)) { if server.ModelID != model.ID { log.Println("推理机未加载模型, 开始排队加载模型") + // 通知关注此任务的用户 + for _, img := range image_list { + img.Status = "loading" + img.Preview = "正在切换模型" + callback(img) + } + // 执行切换模型(推理机需要先处理完当前的任务才能加载新的模型) if err := goreq.Post(fmt.Sprintf("http://%s:%d/sdapi/v1/options", server.IP, server.Port)).SetJsonBody(map[string]interface{}{ "sd_model_checkpoint": model.ModelCheckpoint, @@ -133,6 +140,14 @@ func (model *Model) Inference(image_list []Image, callback func(Image)) { } if time.Now().After(timeout) { log.Println("模型切换超时:", form.SdModelCheckpoint) + + // 通知关注此任务的用户 + for _, img := range image_list { + img.Status = "error" + img.Preview = "模型切换超时" + callback(img) + } + return } time.Sleep(time.Second)