Once you have trained a model, specify the path to the saved model and utilize it for inference using the diffusers.pipeline
module.
Before inferencing, we should convert weights for diffusers format,
$ diffengine convert ${CONFIG_FILE} ${INPUT_FILENAME} ${OUTPUT_DIR} # Example $ diffengine convert stable_diffusion_v15_pokemon_blip work_dirs/stable_diffusion_v15_pokemon_blip/epoch_4.pth work_dirs/stable_diffusion_v15_pokemon_blip
Then we can run inference.
import torch from diffusers import DiffusionPipeline, UNet2DConditionModel prompt = 'yoda pokemon' checkpoint = 'work_dirs/stable_diffusion_v15_pokemon_blip' unet = UNet2DConditionModel.from_pretrained( checkpoint, subfolder='unet', torch_dtype=torch.float16) pipe = DiffusionPipeline.from_pretrained( 'runwayml/stable-diffusion-v1-5', unet=unet, torch_dtype=torch.float16) pipe.to('cuda') image = pipe( prompt, num_inference_steps=50, ).images[0] image.save('demo.png')Inference Text Encoder and Unet finetuned weight with diffusers¶
Once you have trained a model, specify the path to the saved model and utilize it for inference using the diffusers.pipeline
module.
Before inferencing, we should convert weights for diffusers format,
$ diffengine convert ${CONFIG_FILE} ${INPUT_FILENAME} ${OUTPUT_DIR} --save-keys ${SAVE_KEYS} # Example $ diffengine convert stable_diffusion_v15_textencoder_pokemon_blip work_dirs/stable_diffusion_v15_textencoder_pokemon_blip/epoch_50.pth work_dirs/stable_diffusion_v15_textencoder_pokemon_blip --save-keys unet text_encoder
Then we can run inference.
import torch from transformers import CLIPTextModel from diffusers import DiffusionPipeline, UNet2DConditionModel prompt = 'yoda pokemon' checkpoint = 'work_dirs/stable_diffusion_v15_pokemon_blip' text_encoder = CLIPTextModel.from_pretrained( checkpoint, subfolder='text_encoder', torch_dtype=torch.float16) unet = UNet2DConditionModel.from_pretrained( checkpoint, subfolder='unet', torch_dtype=torch.float16) pipe = DiffusionPipeline.from_pretrained( 'runwayml/stable-diffusion-v1-5', unet=unet, text_encoder=text_encoder, torch_dtype=torch.float16) pipe.to('cuda') image = pipe( prompt, num_inference_steps=50, ).images[0] image.save('demo.png')Inference LoRA weight with diffusers¶
Once you have trained a LoRA model, specify the path to where the model is saved, and use it for inference with the diffusers
.
from pathlib import Path import torch from diffusers import DiffusionPipeline from peft import PeftModel checkpoint = Path('work_dirs/stable_diffusion_v15_dreambooth_lora_dog/step999') prompt = 'A photo of sks dog in a bucket' pipe = DiffusionPipeline.from_pretrained( 'runwayml/stable-diffusion-v1-5', torch_dtype=torch.float16) pipe.to('cuda') pipe.unet = PeftModel.from_pretrained(pipe.unet, checkpoint / "unet", adapter_name="default") if (checkpoint / "text_encoder").exists(): pipe.text_encoder = PeftModel.from_pretrained( pipe.text_encoder, checkpoint / "text_encoder", adapter_name="default" ) image = pipe( prompt, num_inference_steps=50 ).images[0] image.save('demo.png')
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4