开发者社区 > ModelScope模型即服务 > 正文

FaceChain训练的人物Lora能否导出safetensors文件使用?

已解决

目前使用notebook版本的FaceChain
FaceChain训练的人物Lora:pytorch_lora_weights.bin似乎是一个二进制文件?

其他版本的FaceChain也是如此吗?
能否导出到本地部署的stable-diffusion中使用?

展开
收起
cynic8 2023-08-30 19:31:38 286 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长
    采纳回答

    我已经认真阅读了 你的问题:

    【 FaceChain训练的人物Lora能否导出safetensors文件使用?

    并思考了

    建议如下:


    是的,其他版本的 FaceChain 也是类似的。在训练过程中,人物 Lora 的权重通常会保存在一个二进制文件中,如您提到的 pytorch_lora_weights.bin。这个文件包含了模型在训练过程中学到的参数。
    要将训练好的人物 Lora 导出到本地部署的 stable-diffusion 中使用,您需要执行以下步骤:

    1. 确保您的本地环境中已经安装了 PyTorch 和 stable-diffusion。
    2. 将训练好的人物 Lora 的权重文件(例如:pytorch_lora_weights.bin)和模型文件(例如:pytorch_lora_model.pt)从训练环境导出到本地环境。
    3. 在本地环境中使用 PyTorch 加载模型和权重。例如:

    import torch
    model = torch.load('pytorch_lora_model.pt')
    weight = torch.load('pytorch_lora_weights.bin')
    CopyCopy

    1. 使用 stable-diffusion 加载模型和权重。在稳定扩散的 Python API 中,您需要使用 load_model 函数加载模型和权重。例如:

    from stable_baselines3 import PPO
    from stable_baselines3.common.policies import ActorCriticPolicy
    from stable_baselines3.common.env_util import make_vec_env
    from stable_baselines3.common.callbacks import BaseCallback
    from stable_baselines3.common.vec_env import VecNormalize

    创建一个 PPO 模型

    model = PPO(ActorCriticPolicy, env='Pendulum-v0', verbose=1)

    加载训练好的模型和权重

    model.load_model('pytorch_lora_model.pt', 'pytorch_lora_weights.bin')

    创建一个环境

    env = make_vec_env('Pendulum-v0', n_envs=4)

    创建一个回调

    class CustomCallback(BaseCallback):
    def _on_step(self) -> bool:
    return True

    设置回调

    model.learn(env, total_timesteps=10000, callback=CustomCallback())
    CopyCopy

    这样,您就可以在本地部署的 stable-diffusion 中使用训练好的人物 Lora 了。

    2023-08-31 07:32:59
    赞同 3 展开评论 打赏

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载