lora模型
This commit is contained in:
@@ -93,7 +93,51 @@ func InitDefaultServer() (err error) {
|
|||||||
|
|
||||||
// 初始化服务器中的模型列表
|
// 初始化服务器中的模型列表
|
||||||
func (server *Server) InitModels() (err error) {
|
func (server *Server) InitModels() (err error) {
|
||||||
// 获取服务器中的模型列表
|
// 获取服务器中的模型列表(Lora)
|
||||||
|
resp_lora, err := http.Get(fmt.Sprintf("http://%s:%d/sdapi/v1/loras", server.IP, server.Port))
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("获取服务器中的模型列表失败: %v", err)
|
||||||
|
}
|
||||||
|
defer resp_lora.Body.Close()
|
||||||
|
|
||||||
|
// 解码JSON (数组)
|
||||||
|
var data_lora []map[string]interface{}
|
||||||
|
if err := json.NewDecoder(resp_lora.Body).Decode(&data_lora); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从数据库检查此模型hash是否存在
|
||||||
|
for _, item := range data_lora {
|
||||||
|
// 打印为格式化的JSON
|
||||||
|
b, _ := json.MarshalIndent(item, "", " ")
|
||||||
|
fmt.Println(string(b))
|
||||||
|
|
||||||
|
var model Model
|
||||||
|
if err := configs.ORMDB().Where("hash = ?", item["path"].(string)).First(&model).Error; err != nil {
|
||||||
|
// 不存在则添加
|
||||||
|
model = Model{
|
||||||
|
Name: item["name"].(string),
|
||||||
|
Hash: item["path"].(string),
|
||||||
|
ModelCheckpoint: item["alias"].(string),
|
||||||
|
ModelPath: item["path"].(string),
|
||||||
|
ServerID: server.ID,
|
||||||
|
Type: "lora",
|
||||||
|
}
|
||||||
|
// 添加到数据库
|
||||||
|
if err := configs.ORMDB().Create(&model).Error; err != nil {
|
||||||
|
return fmt.Errorf("添加模型到数据库失败: %v", err)
|
||||||
|
}
|
||||||
|
// 添加到模型列表
|
||||||
|
server.Models = append(server.Models, model.ID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新数据库
|
||||||
|
if err := configs.ORMDB().Save(&server).Error; err != nil {
|
||||||
|
return fmt.Errorf("更新数据库失败: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取服务器中的模型列表(ckp)
|
||||||
resp, err := http.Get(fmt.Sprintf("http://%s:%d/sdapi/v1/sd-models", server.IP, server.Port))
|
resp, err := http.Get(fmt.Sprintf("http://%s:%d/sdapi/v1/sd-models", server.IP, server.Port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("获取服务器中的模型列表失败: %v", err)
|
return fmt.Errorf("获取服务器中的模型列表失败: %v", err)
|
||||||
@@ -130,7 +174,6 @@ func (server *Server) InitModels() (err error) {
|
|||||||
}
|
}
|
||||||
// 添加到模型列表
|
// 添加到模型列表
|
||||||
server.Models = append(server.Models, model.ID)
|
server.Models = append(server.Models, model.ID)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user