开发者社区 > ModelScope模型即服务 > 计算机视觉 > 正文

ModelScope中,自己拉起的训练怎么转成sd的可直接导入的lora文件呢?

ModelScope中,自己拉起的训练,pytorch_lora_weights.bin 这个文件怎么转成sd的可直接导入的lora文件呢?

展开
收起
多麻辣哦 2023-11-20 09:27:11 157 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    ModelScope 提供了一种便捷的方法,将 PyTorch 生成的 *.bin 文件转换成 ONNX 格式模型以便在 Android 上运行。以下是具体的操作流程:

    1. 导入所需库

    首先,确保您已经安装了所需的环境,包括 Tensorflow 和 ONNX 工具箱,并且 TensorFlow 和 ONNX 都可以正确地运行。

    
    pip install tensorflow-onnx
    
    1. 将 PyTorch Model 转换成 ONNX Model

    在 Python 环境中,使用以下代码将 PyTorch 模型转换为 ONNX 格式:

    
    import torch.onnx as onnx
    
    # 加载 PyTorch 模型
    model = torch.load("pytorch_model.pt")
    
    # 将模型导出为 ONNX 格式
    input_names = ["input"]
    output_names = ["output"]
    
    dummy_input = torch.randn(1, 3, 128, 128)
    onnx_file_path = "model.onnx"
    
    torch.onnx.export(model, dummy_input, onnx_file_path,
                   input_names=input_names, output_names=output_names,
                   opset_version=10)
    

    这将会导出一个名为 model.onnx 的文件。

    1. 转换为 sd 文件

    然后,您可以利用 ModelScope 工具将 ONNX 文件转换成 SD 格式文件:

    
    ms convert --framework=onnx --inference-model=model.onnx --out-format=sdk sd://model_name
    

    这将会将模型转换成 SDK 格式。

    2023-11-22 17:07:30
    赞同 展开评论 打赏
  • 目前,将pytorch_lora_weights.bin文件转换为SD可直接导入的lora文件并没有直接的方法。因为Diffusers库的Lora权重文件格式为:checkpoint-1000 checkpoint-200 checkpoint-400 checkpoint-600 checkpoint-800 pytorch_lora_weights.bin,而SD WebUI并不支持这种格式。

    不过,有一种间接的方式可以尝试。首先,你需要将pytorch_lora_weights.bin转换为safetensors格式,可以使用"convert_lora_safetensor_to_diffusers.py"这个脚本。然后,你需要将转换后的safetensors文件加载到Hugging Face模型中,这个过程可以通过"hf_hub_download"和"torch.load"函数实现。最后,你可以将这个模型转换为SD WebUI支持的格式。

    2023-11-21 17:39:57
    赞同 展开评论 打赏

包含图像分类、图像生成、人体人脸识别、动作识别、目标分割、视频生成、卡通画、视觉评价、三维视觉等多个领域

相关电子书

更多
视觉AI能力的开放现状及ModelScope实战 立即下载
ModelScope助力语音AI模型创新与应用 立即下载
低代码开发师(初级)实战教程 立即下载