gcem156

生えてる子が好きです。

gcem156

生えてる子が好きです。

最近の記事

  • 固定された記事

Stable-Diffusionの学習設定まとめ

 なんか学習設定について、よく分からんけどデフォルト!とかよく分からんけどこうしてみたらうまくいった!みたいな感覚で議論されていることが多い気がするので、学習設定についてまとめてみようと思います。機械学習のこと知らん人にも分かるようにするはずの記事でしたが多分そうなってないです。間違いもあると思いますが、私の記事が間違っていたとしても、悪いのは私よりも頭がいい人が分かりやすい説明をしないせいであって私のせいではありません。 機械学習の簡単な説明 機械学習はモデルの数値を学習

    • 8x7B=47B?

      Mixtral「7×8は56じゃないぞ!オレたちは7×8で47だ!6.7倍だぞ6.7倍!」  MoEモデルのパラメータ数について気になったので調べてみました。 Mistral-7Bのパラメータ数 まずはただの7Bモデルについてみていきます。何番煎じだ? 実装はここみたい https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral

      • Dart+WD-Taggerでプロンプトの忠実度を計測してみる

         最近出てきたプロンプト生成器 とWD-Taggerのv3 を組み合わせて、 Dartでプロンプト生成 生成したプロンプトで画像を生成 WD-Taggerでプロンプトを予測 1と3のプロンプトを比較 すればモデルのプロンプトへの忠実度測れるんじゃねということを思いついたのでやってみます。  前置きが長すぎる気がするので、とばしましょう。少なくとも俺だったら読まない。 設定 Dart側は全モデル固定で同じプロンプトにします。 top_k=100, temper

        • ControlNetの軽量版?つくった

           ControlNetはすごいですが、UNetの3分の1~2分の1くらいの大きさのモデルが余計に必要です。今回は軽量なモデル+LoRAだけでControlNetみたいなことをやってみます。 ComfyUI用実装 https://github.com/laksjdjf/LoRTnoC-ComfyUI あーきてくちゃあ ControlNetは基本的にUNetのIN+MIDブロックのコピーですが、cannyなどの参照画像を潜在変数と同じ形状(4チャンネルでサイズが8分の1)に

        • 固定された記事

        Stable-Diffusionの学習設定まとめ

        マガジン

        • ComfyUIまとめ
          3本

        記事

          Stable Diffusionの学習コードを作る:5.ControlNet編

           今回はControlNetの学習についてやっていきます。以下のような設定を増やすことで学習できるようにします。 controlnet: train: true resume: null # model file path transformer_layers_per_block: false # default = false global_average_pooling: false # default = false DiffusionModelcreate

          Stable Diffusionの学習コードを作る:5.ControlNet編

          [ComfyUI]SamplerCustom宣伝記事

           今回は、ComfyUIにおける最強ノードである、SamplerCustomの宣伝をする記事です。  この記事の画像は全てanimagineXL-3.0及びDartが作ってくれたプロンプトを使っております。プロンプト考えなくていいの最高や~~。 画像生成ノード ComfyUIの画像生成ノードにはKSampler(雑魚)やKSampler(Advanced)(ゴミ)があります。この二つに比べてSamplerCustomは完全上位互換であるにも関わらず、全然使われていないよう

          [ComfyUI]SamplerCustom宣伝記事

          Stable Diffusionの学習コードを作る:4.LCM-LoRA編

           今回は、LCM-LoRAの学習についてやっていくよ。じつはコードの作り直しをした最大の理由はこのLCM-LoRAを簡潔に実装するためだったんだよ。 https://github.com/laksjdjf/sd-trainer/blob/main/modules/lcm/lcm_trainer.py スケジューラー 実装はめっちゃ簡単です。学習時にddimを使うので、分岐しています。こうしてみるとddimとの違いが分かりやすいですね。 class LCMSchedule

          Stable Diffusionの学習コードを作る:4.LCM-LoRA編

          Stable Diffusionの学習コードを作る:3.LoRA編

           前回はフルファインチューニングをやりましたが、今回はLoRAの学習ができるようにします。 NetworkManager モデルへ追加ネットワークを適用する処理を行うクラスです。今回はLoRAしかやりませんが、後々LoHAとかいろいろなものを実装する予定なので、NetworkManagerという名前になっています。そのくせ変数名がlora前提になっていたりとちょっと見直さなきゃいけない部分もありそう。 https://github.com/laksjdjf/sd-train

          Stable Diffusionの学習コードを作る:3.LoRA編

          Stable Diffusionの学習コードを作る:2.学習編

           前回の続きとして、学習のために必要なコードを紹介していきます。今回はLoRAではなく、フルファインチューニングができるようにします。 データセット(BaseDataset)データセットのフォルダ構造は以下のような感じです。フォルダ名はデフォルトの名前であって、設定で自由に変えられるようにします。 Dataset/ buckets.json # bucketingのメタデータ original_size.json # 任意でSDXLのみ必要 images/ # 学習画像 

          Stable Diffusionの学習コードを作る:2.学習編

          Stable Diffusionの学習コードを作る:1.生成編

           学習コードに変な機能がいっぱい増えてわけわからなくなっちゃったので作り直すことにしました。せっかくなので記事にしてみます。完全なオレオレ学習コードなので全くゆうざあふれんどりぃでないものになる予定です!  方針として、モデルの定義以外は自前で実装します。モデルの定義はhuggingfaceとの連携辺りがめんどくさいのでやりたくないです。  ※Noteに貼り付けているコードはGithubのものより古かったり簡略化している可能性があります。 https://github.co

          Stable Diffusionの学習コードを作る:1.生成編

          Stable Diffusion学習の歴史

           完全に自分目線の歴史です。時系列は適当なこともあるよ。 2022/8 モデルが公開されましたが、学習を始めた人は一部だけでしょう。 Stable Diffusionリリース 22日  これまでの画像生成AIと違いモデルがオープンになったことで、誰でも自由に学習できるようになりました。StabilityAIが公開したコードには学習コードも含まれていたので、技術力さえあればこの時点で学習できたのかな。コードやモデルファイルはStabilityAIによるコードと、Huggi

          Stable Diffusion学習の歴史

          ComfyUIにおけるUNet改造ノードの作り方

          誰が得するんだろうこんな記事 ComfyUIのカスタムノードについて新しいノードを作るには、以下の記事が詳しいです。  UNetを改造するとき、たとえばMODELを受け取って好き勝手いじって、MODELを出力するという話なら簡単です。しかし入力時にコピーされるわけではないので、適当に改変してしまうと入力側も変わってしまいます。ComfyUIはノードベースの生成UIであり、複数のノードにMODELを分岐させることがあります。たとえば新しく作ったカスタムノードを通ったMODE

          ComfyUIにおけるUNet改造ノードの作り方

          学習不要のUNet改変法まとめ

           最近になって、UNetの構造をいじって生成速度をあげたり、品質を高める方法が色々提案されたのでまとめてみます。 UNetについて 過去に記事をあげてたと思います。UNetはIN層・MID層・OUT層に分かれます。downとかupとか呼ばれることもありますが、今回はIN/MID/OUTで統一します。IN層では入力がどんどん縮小されていって、OUT層では元のサイズに戻っていきます。UNetは一直線ではなくIN層からOUT層へのSkip connectionがあることが特徴です

          学習不要のUNet改変法まとめ

          LCM-LoRAについて

           学習や生成をいろいろ試して分かったことをまとめます。 LCM-LoRAとは ただのLoRAです。サンプラーが変わったりCFG_scaleが1に近い値を設定しないといけなかったりとちょっと特殊ですが、結局LoRAであることは変わりません。 サンプラーについてLCMサンプラーは意外と直感的に理解できます。Euler ancestralの究極版みたいな感じです。 以下は1ステップ分の図です。左の完全なノイズから、右の完全な画像までを目指していくイメージで図式化しています。

          LCM-LoRAについて

          Latent Consistency Modelによる蒸留を試してみた

           1~8ステップくらいで画像生成ができるようになるLatent Consistency Modelをつくります。まずはLatent Consistency Modelの説明をし、次に蒸留体験記を書いていきます。 性能は微妙ですが、個人的にはうまくいくことが分かっただけで満足です。生成なんてしないしー。 拡散モデル 目を瞑って想像してみてください、あなたは深い森の中に迷い込んでしまいました。その森には1時間に1回の頻度で鐘を鳴らす教会があり、あなたはその音を頼りに教会へ向か

          Latent Consistency Modelによる蒸留を試してみた

          SDXLの軽量版モデルからアニメモデルをつくる

          SDXLの軽量版とかいうのが出てきたのでこれをアニメ化します。 できたモデルはい https://huggingface.co/furusu/SSD-1B-anime モデルについて このモデルは説明には載ってないですが、おそらくこの論文から着想を得ています。なぜそう言えるかというと同じ人がこの論文通りのSDv1.5軽量版をアップロードしてるからです。そちらはあんまり話題になってないですね。ただしSDXL軽量版モデルの構造は論文の説明と異なります。後でこっち用の技術レポ

          SDXLの軽量版モデルからアニメモデルをつくる