lora模型
This commit is contained in:
		@@ -93,7 +93,51 @@ func InitDefaultServer() (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))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("获取服务器中的模型列表失败: %v", err)
 | 
			
		||||
@@ -130,7 +174,6 @@ func (server *Server) InitModels() (err error) {
 | 
			
		||||
			}
 | 
			
		||||
			// 添加到模型列表
 | 
			
		||||
			server.Models = append(server.Models, model.ID)
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user