IrisRainbowNeko / HCP-Diffusion

A universal Stable-Diffusion toolbox
Apache License 2.0
896 stars 75 forks source link

finetune unet训练得到safetensors支持直接推理吗? #22

Closed huxian0402 closed 1 year ago

huxian0402 commented 1 year ago

@Coxy7 @KohakuBlueleaf @7eu7d7 finetune unet训练得到的unet-100.safetensors,还需要使用diffuser的脚本转换成diffuser的格式才能推理吗?

IrisRainbowNeko commented 1 year ago

可以通过配置文件中的merge模块,加载训练的部分模型。

_base_: [cfgs/infer/text2img.yaml]

merge:
  group1:
    type: 'unet'
    base_model_alpha: 0.0 # 基础模型权重0.0,part部分新模型权重1.0,表示用part模型覆盖原有模型
    part:
      - path: 'unet-100.safetensors的路径'
        alpha: 1.0
        layers: 'all'

  group2: # 如果没有练text_encoder,这部分可以不加
    type: 'TE'
    base_model_alpha: 0.0 
    lora:
      - path: 'text_encoder-100.safetensors的路径'
        alpha: 1.0
        layers: 'all'

在配置文件中额外加入save_model的配置,可以把整个模型存成diffusers格式的。

save_model:
  path: ckpts/model
  to_safetensors: true

具体可以参考cfgs/infer/save_model.yaml的实例配置文件。