スポンサーリンク
diffusersでembeddingを使えるようになっていたので、試してみました
この記事は導入の備忘録です
目次
スポンサーリンク
この記事でわかること
diffuserrsでembeddingを導入する方法
1.実行環境
Google Colab
Diffusers:0.15.0
transformers:4.26.0
2.コード
以前diffusersで画像生成するコードを作成しました
technoxs-stacker.hatenablog.com
今回は上記コードに以下のembedding読み込み処理に追記します
# --- embeddingの読み込み処理 --- emb_path=path/to/embedding file#ダウンロードしたsafetensorファイルのパスを指定 pipe.load_textual_inversion(pretrained_model_name_or_path=emb_path, token=token_word, local_files_only=True) #token_wordはembeddingを有効化するときの言葉を指定 例:easynegative # ---------------------------------------
以下が完成したコードになります
model_name = modelname save_name = filename.png save_dir = path/to/save/directory os.makedirs(save_dir, exist_ok=True) save_path = os.path.join(save_dir, save_name) seed = 3000000 device = "cuda" pipe = StableDiffusionPipeline.from_pretrained(model_name, torch_dtype=torch.float32) pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) pipe = pipe.to("cuda") if pipe.safety_checker is not None: pipe.safety_checker = lambda images, **kwargs: (images, False) # --- embeddingの読み込み処理 --- emb_path=path/to/embedding file#ダウンロードしたsafetensorファイルのパスを指定 pipe.load_textual_inversion(pretrained_model_name_or_path=emb_path, token=token_word, local_files_only=True) #token_wordはembeddingを有効化するときの言葉を指定 例:easynegative # --------------------------------------- positive=possitive prompt negative=negative prompt generator = torch.Generator(device).manual_seed(seed) image = pipe(positive, negative_prompt=negative, generator=generator).images[0] image.save(save_path)
スポンサーリンク