package models import ( "fmt" "main/configs" "time" ) type Model struct { ID int `json:"id" gorm:"primary_key"` Name string `json:"name"` Type string `json:"type"` // (lora|ckp|hyper|ti) TriggerWords string `json:"trigger_words"` // 觸發詞 BaseModel string `json:"base_model"` // (SD1.5|SD2) ModelPath string `json:"model_path"` // 模型路徑 Status string `json:"status" default:"initial"` // (initial|ready|waiting|running|success|error) Progress int `json:"progress"` // (0-100) Image string `json:"image"` // 封面圖片實際地址 Tags string `json:"tags"` UserID int `json:"user_id"` CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` UpdatedAt time.Time `json:"updated_at" gorm:"autoUpdateTime"` } func init() { configs.ORMDB().AutoMigrate(&Model{}) } func (model *Model) Train() (err error) { if model.Type == "lora" { fmt.Println("lora") return } if model.Type == "ckp" { fmt.Println("ckp") return } if model.Type == "hyper" { fmt.Println("hyper") return } if model.Type == "ti" { fmt.Println("ti") return } return } //func (model *Model) SendToTrain() error { // db, err := configs.GetDB() // if err != nil { // log.Println(err) // return err // } // defer db.Close() // stmt, err := db.Prepare("UPDATE models SET status = ?, progress = ?, updated_at = ? WHERE id = ?") // if err != nil { // log.Println(err) // return err // } // defer stmt.Close() // _, err = stmt.Exec(model.Status, model.Progress, model.UpdatedAt, model.ID) // if err != nil { // log.Println(err) // return err // } // // TODO: 創建一個新線程管理訓練任務 // // 將任務放入隊列中, 將自動回調更新任務狀態 // return nil //}