Kohya S.

小説を書いたり機械学習で遊んだり電子工作をしたりしています。

Kohya S.

小説を書いたり機械学習で遊んだり電子工作をしたりしています。

マガジン

  • DreamBooth、fine tuningなど

    自作スクリプト関連の記事をまとめました。

記事一覧

ローカルLLMに小説を書いてもらう

はじめにn番煎じですが何かの参考になれば幸いです。 「君に綴る手紙」~ Command R+に小説家と編集者を両方やってもらったCommand R+のGGUF、Q4_K_Mを用います。laksjdjf…

Kohya S.
12日前
32

自作小説をLLMにレビューさせてみる(ローカル4モデル、サービス型4モデル)

24-5-14: ChatGPT 4o追加 24-4-29: Qwen1.5-110B-Chat-gguf Q4-K-M 追加(結果のみ) 24-4-18: Command-R+ (cohere playground) 追加(結果のみ) 簡単なまとめ 見返し…

Kohya S.
1か月前
122

SDXLでコピー機学習法を試す

はじめにコピー機学習法は、LoRAを教師画像と同様の画像しか出力されないレベルまで過学習し(コピー機と呼ばれる理由です)、そこから目的のLoRAを取り出す手法です。詳…

Kohya S.
8か月前
110

sd-scriptsで任意の画像とキャプションで学習する

はじめにsd-scriptsのリポジトリでは画像ファイルとキャプションファイルを指定してStable DiffusionやLoRA等を学習できますが、場合によってはより柔軟な学習をしたいこと…

Kohya S.
11か月前
22

LoRA学習用サンプルデータ

LoRAの環境整備がうまく行っているか、学習を試すためのサンプルデータです。 サンプルデータ作業ディレクトリを作成し、以下のzipを展開してください。 学習の手順展開…

Kohya S.
1年前
42

Stable DiffusionのU-Netでブロックごとに異なるプロンプトを与えて画像生成する(ブロック別プロンプト)

はじめに※1/10追記:コメントでご指摘いただきましたが、キャプションが有効(CrossAttentionが存在する)なのはblock 1, 2, 4, 5, 7, 8, 12, 16 ~ 24です。他のblockのキ…

Kohya S.
1年前
31

DiffusersベースのDreamBoothについて

はじめにStable DiffusionのDreamBoothについて、以前の記事では記事にスクリプトを添付していましたが、新たにgithubのリポジトリを作成しました。そちらを用いた学習につ…

Kohya S.
1年前
35

Stable Diffusion checkpointとDiffusersモデルの相互変換スクリプト(SD2.0対応)

はじめにStable Diffusion checkpointとDiffusersモデルの変換スクリプトは、Diffusers公式からStable Diffusion v1.xのものは提供されていますが、2.0対応のものは12/3時…

Kohya S.
1年前
48

Stable Diffusion画像生成スクリプト(Diffusersベース、SD2.0、一括生成対応)

はじめに多くの方はWeb UI他の画像生成環境をお使いかと思いますが、コマンドラインからの生成にも、もしかしたら需要があるかもしれませんので公開します。 Pythonで仮想…

Kohya S.
1年前
62

DiffusersベースでStable Diffusionをfine tuningする

NovelAIの提案した学習手法、自動キャプションニング、タグ付け、Windows+VRAM 12GB(v1.4/1.5の場合)環境等に対応したfine tuningです。 ※12/17:v9に更新しました。…

Kohya S.
1年前
77

DreamBoothスクリプトのfine-tuning機能について

※fine tuning専用のスクリプトを作成しましたので、通常はそちらをご利用いただければ幸いです。 はじめに前回の記事の続きです。スクリプトのfine-tuning機能の解説です…

Kohya S.
1年前
29

StableDiffusionのcheckpointに任意のVAEをマージする

概要Stable Diffusionのモデルは大きくVAE(Auto-Encoder)、Text Encoder、U-Netからなりますが、VAEは画像と潜在空間の変換を行っています。VAEを入れ替えることで出力さ…

Kohya S.
1年前
26

8-bit optimizer(bitsandbytes)をWindows(非WSL)で動かす

概要学習の省メモリ化に有効なbitsandbytesの8-bit optimizerですが、Windows用のDLLが提供されていないためそのままでは動きません。 以前の記事に8-bit optimizerをWind…

Kohya S.
1年前
14

DiffusersベースのDreamBoothの精度をさらに上げる・augmentation編

※12/1 (v2):顔が見つからないと落ちるバグを修正しました。 はじめに前回の記事の続きです。アニメ等のキャラクタを学習させるための記事になります。また環境整備が面…

Kohya S.
1年前
20

DiffusersベースのDreamBooth(SD2.0対応、Windows対応、必要VRAM 12GB~)

(12/20)新たにリポジトリを作成しましたので最新版はそちらから取得してください。解説記事は以下になります。 (12/17)スクリプトをv18に更新しました。目次から「学…

Kohya S.
1年前
52

Stable DiffusionのモデルをU-Netの深さに応じて比率を変えてマージする

概要Stable Diffusionでは、複数のモデルの重みをマージすると中間的な出力が得られることが知られています。 以下の比較結果が大変参考になります。 またマージ用のスク…

Kohya S.
1年前
116

ローカルLLMに小説を書いてもらう

はじめにn番煎じですが何かの参考になれば幸いです。

「君に綴る手紙」~ Command R+に小説家と編集者を両方やってもらったCommand R+のGGUF、Q4_K_Mを用います。laksjdjf氏のchatuiにモデル同士で対話させるsimulate機能がありますので、UIはそちらを利用しました(モデル状態を保存して高速化するため一部変更して利用しています)。チャットのuserとassis

もっとみる

自作小説をLLMにレビューさせてみる(ローカル4モデル、サービス型4モデル)


24-5-14: ChatGPT 4o追加
24-4-29: Qwen1.5-110B-Chat-gguf Q4-K-M 追加(結果のみ)
24-4-18: Command-R+ (cohere playground) 追加(結果のみ)

簡単なまとめ

見返したらあまりにも長くて読みづらかったので、Opusの力も借りて、要約を追記しておきます。

【ローカルLLM】

LightChatAss

もっとみる

SDXLでコピー機学習法を試す


はじめにコピー機学習法は、LoRAを教師画像と同様の画像しか出力されないレベルまで過学習し(コピー機と呼ばれる理由です)、そこから目的のLoRAを取り出す手法です。詳細は以下の月須和・那々氏の記事をご覧ください。

今回、SDXLでコピー機学習法を試してみました。品質的にはいまひとつですが、一応成功はしましたので、設定等を共有します。

学習にはsd-scriptsを利用しています。

教師デー

もっとみる

sd-scriptsで任意の画像とキャプションで学習する

はじめにsd-scriptsのリポジトリでは画像ファイルとキャプションファイルを指定してStable DiffusionやLoRA等を学習できますが、場合によってはより柔軟な学習をしたいこともあるかと思います。たとえば画像を動的に生成したい、augmentationを自由に行いたい、画像やキャプションをステップに応じて変化させたい、などです。
この記事ではそのような場合に、任意のDatasetを定

もっとみる

LoRA学習用サンプルデータ

LoRAの環境整備がうまく行っているか、学習を試すためのサンプルデータです。

サンプルデータ作業ディレクトリを作成し、以下のzipを展開してください。

学習の手順展開したディレクトリにmodel.ckptという名前で、学習対象のモデルをコピーします。
(シンボリックリンクでも構いません。)
(コピーしない場合は、以降のコマンド内の ..\model.ckpt をモデルファイルの所在で書き換えて

もっとみる

Stable DiffusionのU-Netでブロックごとに異なるプロンプトを与えて画像生成する(ブロック別プロンプト)

はじめに※1/10追記:コメントでご指摘いただきましたが、キャプションが有効(CrossAttentionが存在する)なのはblock 1, 2, 4, 5, 7, 8, 12, 16 ~ 24です。他のblockのキャプションは無視されます。確認が足らず失礼いたしました。
ご指摘いただいたgcem156氏に感謝します。

U-Netの構造については以前の記事に書きました。

U-NetはText

もっとみる

DiffusersベースのDreamBoothについて

はじめにStable DiffusionのDreamBoothについて、以前の記事では記事にスクリプトを添付していましたが、新たにgithubのリポジトリを作成しました。そちらを用いた学習について解説する記事です。

リポジトリはこちらです。

スクリプトの主な機能は以下の通りです。

8bit Adam optimizerおよびlatentのキャッシュによる省メモリ化(ShivamShrirao

もっとみる

Stable Diffusion checkpointとDiffusersモデルの相互変換スクリプト(SD2.0対応)

はじめにStable Diffusion checkpointとDiffusersモデルの変換スクリプトは、Diffusers公式からStable Diffusion v1.xのものは提供されていますが、2.0対応のものは12/3時点でリリースされていません。拙作のDreamBooth学習スクリプトでモデル自体の変換はすでに実装済みですので、それにコードを追加して、相互に変換を行うスクリプトを作成

もっとみる

Stable Diffusion画像生成スクリプト(Diffusersベース、SD2.0、一括生成対応)

はじめに多くの方はWeb UI他の画像生成環境をお使いかと思いますが、コマンドラインからの生成にも、もしかしたら需要があるかもしれませんので公開します。
Pythonで仮想環境を構築できるくらいの方を対象にしています。また細かいところは省略していますのでご容赦ください。

※12/16 (v9):img2img等でフォルダ指定したときファイル名をソートして処理するよう変更しました。目次から「スクリ

もっとみる

DiffusersベースでStable Diffusionをfine tuningする

NovelAIの提案した学習手法、自動キャプションニング、タグ付け、Windows+VRAM 12GB(v1.4/1.5の場合)環境等に対応したfine tuningです。

※12/17:v9に更新しました。「Diffusersの環境構築とスクリプトの準備」に飛んでください。

はじめに先日、DiffusersベースでDreamBoothを行う記事を書きましたが、U-Netの学習の仕組みを使うこ

もっとみる

DreamBoothスクリプトのfine-tuning機能について

※fine tuning専用のスクリプトを作成しましたので、通常はそちらをご利用いただければ幸いです。

はじめに前回の記事の続きです。スクリプトのfine-tuning機能の解説です。

概要DreamBoothはモデルのU-NetとText Encoderを学習しています。ですので、画像とプロンプト(キャプション)の取り扱いを変えるだけでそれらのfine-tuningが可能です。

教師データ

もっとみる

StableDiffusionのcheckpointに任意のVAEをマージする

概要Stable Diffusionのモデルは大きくVAE(Auto-Encoder)、Text Encoder、U-Netからなりますが、VAEは画像と潜在空間の変換を行っています。VAEを入れ替えることで出力される画像が変化し、たとえば特定のジャンル(アニメ絵など)がより高精細に出力される、といったことが期待できます。

そこでcheckpointのVAEだけを入れ替えて新しいcheckpoi

もっとみる

8-bit optimizer(bitsandbytes)をWindows(非WSL)で動かす

概要学習の省メモリ化に有効なbitsandbytesの8-bit optimizerですが、Windows用のDLLが提供されていないためそのままでは動きません。

以前の記事に8-bit optimizerをWindows(非WSL)で動かす方法について書きましたが、わかりやすいように記事として独立させました。

手順仮想環境等を適宜設定しておいてください。

bitsandbytesのインスト

もっとみる

DiffusersベースのDreamBoothの精度をさらに上げる・augmentation編

※12/1 (v2):顔が見つからないと落ちるバグを修正しました。

はじめに前回の記事の続きです。アニメ等のキャラクタを学習させるための記事になります。また環境整備が面倒なわりに効果は限定的ですので、それでもという方のみお試しください。

以下のツイートで紹介されていたAnime Face Detectorを使っています。

概要あらかじめAnime Face Detectorを用いて教師用画像

もっとみる

DiffusersベースのDreamBooth(SD2.0対応、Windows対応、必要VRAM 12GB~)

(12/20)新たにリポジトリを作成しましたので最新版はそちらから取得してください。解説記事は以下になります。

(12/17)スクリプトをv18に更新しました。目次から「学習用スクリプトのダウンロード」に飛んでください。

はじめに先日、Diffusers版DreamBoothをText Encoderまで学習するようにして精度を上げる記事を書きましたが、依然としてXavierXiao氏のSta

もっとみる

Stable DiffusionのモデルをU-Netの深さに応じて比率を変えてマージする

概要Stable Diffusionでは、複数のモデルの重みをマージすると中間的な出力が得られることが知られています。

以下の比較結果が大変参考になります。

またマージ用のスクリプトは以下で公開されています。

また(ざっくりとした私の理解では)Stable Diffusionは大きくText Encoder (CLIP)、Denoising Auto Encoder (U-Net)、Auto

もっとみる