プログラミング関連のメモ帳的ブログです。 調べたものは後でまとめようとメモしているのですが、メモ止まりで全然やらないので調べたときに書こうと思います。
前回の記事では LCM (Latent Consistency Model) を使ってみました。 v0.22.0 の時点では、 DiffusionPipeline に指定するモデルが LCM 対応のモデルとなっていました。 恐らくこれでは、LCMに対応したモデルしか使えず、既存モデルは使えないと思っています。 しかし v0.23.0 で、LCM が LoRA として設定が可能になりました。 これにより、Pipeline に指定するモデルは好きなものを使えるはず! ちなみに AnimateLCM では、LoRA を使い LCM を適用していたので Pipeline のモデルは好きなものを使えまし…
AnimateLCM を先に使っていて、すっ飛ばしちゃったけど普通の LCM を使っとく
前回の記事まで長いこと AnimateDiff で遊んでいました。 AnimateDiff を触れる中で AnimateLCM に触れ、LCM という技術を AnimateDiff の中で触れていました。 今更ですが普通の LCM (Latent Consistency Model) を使ってみます。 こちらも AnimateDiff 同様 v0.22.0 のリリースノートから触れていきます。 少ないステップ数で高品質の画像を出力できるアレ!
AnimateLCM の出力では LCMScheduler とか大事!
偶然ですが、 AnimateLCM を触っていて気付いたことがあります。 「 LCMScheduler 大事!」 たぶんこれは、 AnimateDiff だけじゃなくて LCM 系で重要な気がしてきます。 他の LCM はまだ触っていないので知らんけど 少なくとも diffusers v0.22.0 で紹介されていた LCM のモデルでは LCMScheduler が使われていそうでした。
AnimateDiff と AnimateLCM を比較する!
今回は比較回です。 AnimateLCM は少ないステップ数で高品質な画像が出力できるということですので、 ステップ数を「4」に固定して比較してみます。 テスト番号 MotionAdapter AnimateLCM LoRA 備考 1 wangfuyun/AnimateLCM 有 前回の記事と同じ 2 wangfuyun/AnimateLCM 無 3 guoyww/animatediff-motion-adapter-v1-5-2 有 4 guoyww/animatediff-motion-adapter-v1-5-2 無 普通の AnimateDiff と同じ 比較パターンはこんな感じ?
この記事では AnimateLCM に触れていきます。 LCM は初めて登場するキーワードですが、併せて調べていきます。 リリースノートの一番上にあったけど既読スルーしてたやつ
とりあえず Seed (Generator) を設定しておくというマイブーム
Stable Diffusion を使うときに Seed という言葉が出てくると思います。この Seed は出力ごとに異なり、予め Seed を指定しておくことで (同じ条件であれば) 出力を固定することができます。 逆に Seed を指定しなければ、同じ条件でも、いつもランダムな出力になります。 今回は、この「ランダム出力」でも とりあえず Seed を設定しておこう というマイブームな記事です。
zako-lab929.hatenablog.com 前回の記事では FreeInit というものを有効にして AnimateDiff を出力してみました。この記事では FreeInit を有効にしたときと無効にしたときとでどう変わるのか比較してみようと思います。 また、 enable_free_init() には method という引数があり、出力が変わりそうなので触ってみようと思います。
AnimateDiff のドキュメントの中に Using FreeInit という項目があります。 FreeInit is an effective method that improves temporal consistency and overall quality of videos generated using video-diffusion-models without any addition training. It can be applied to AnimateDiff, ModelScope, VideoCrafter and various other video …
AnimateDiff の モーション LoRA を複数組み合わせて使ってみる
モーション LoRA は複数を組み合わせて使うことが可能なようです。 例えばズームアウトとスライドを組み合わせて使う感じ この記事では、再び AnimateDiffPipeline を使い、モーション LoRA を組み合わせて使ってみます。
AnimateDiffVideoToVideoPipeline で Video-to-Video をする
AnimateDiffPipeline で Text-to-Video をしていましたが、 AnimateDiffVideoToVideoPipeline を使うと Video-to-Video ができるようになります。 huggingface.co これは Hugging Face のドキュメントに使用方法が載っていましたので触ってみます。
AnimateDiff のリポジトリに居たマヌルネコが可愛すぎたのでいっぱい出力してみた
AnimateDiff をたくさん調べてて見つけた https://animatediff.github.io にいた猫が可愛すぎたので マヌルネコ LoRA を使ってみました。 この記事では AnimateDiff は触りません! ぬこを触ります!! 使用したモデル等は以下になります。 ・リアル系モデルから yayoi_mix ・イラスト系モデルから MeinaMix ・そして マヌルネコ LoRA それでは、、、 猫まみれ~
diffusers の AnimateDiff で Scheduler を調整してみる (3) - 比較してみる
前回 、前々回 と beta_schedule="linear" を付与した状態出力しました。これは出力画像を鮮やかに出したかったからです。 今回は timestep_spacing="linspace" のパラメータを使ったり使わなかったり、 beta_schedule="linear" のパラメータを使ったり使わなかったりして比較してみようと思います。 パラメータのパターンは以下のように考えています。 テストケース番号 timestep_spacing beta_schedule 備考 1 未設定 未設定 2 linspace 未設定 リリースノートと同じ 3 未設定 linear 前回の…
diffusers の AnimateDiff で Scheduler を調整してみる (2) - MeinaMix
zako-lab929.hatenablog.com 前回の記事では ToonYou のモデルを使用して、 AnimateDiff を実行する際のスケジューラーのパラメータを調整しました。 この記事では更に別のモデルも試してみます。 いつもの MeinaMix で!
diffusers の AnimateDiff で Scheduler を調整してみる
zako-lab929.hatenablog.com 前回の記事で以下のようなことを書きました。 でも、もうちょっとdiffusers v0.15.0 の Text-to-Video Zero を Google Colab で使ってみる - ジャコ Labの時みたいに、おぉーー!!っていう感じのが出てほしいな。スケジューラの問題?GitHub 版も試してみようかな? 理由としては、以下のように低画質な感じなところです。 前回出力した ToonYou の AnimateDiff これはこれで味があって良いと思いますが、ギャラリーにあるようなもっと彩度の高いものが出したいです。 こんな感じのやつ …
diffusers の AnimateDiff で Motion LoRA を使ってみる
前回、LoRA で「PEFT backend is required for this method」なエラーにハマりましたが、無事にこの記事に進めるようになりました。 Motion LoRA (モーション LoRA) で何ができるかというと、 AnimateDiff にズームインやズームアウトなどの動きを加えることができます。 早速使ってみようと思います。
LoRA で「PEFT backend is required for this method」にハマった件
/usr/local/lib/python3.10/dist-packages/diffusers/loaders/lora.py in load_lora_weights(self, pretrained_model_name_or_path_or_dict, adapter_name, **kwargs) 105 """ 106 if not USE_PEFT_BACKEND: --> 107 raise ValueError("PEFT backend is required for this method.") 108 109 # if a dict is passed, copy i…
diffusers で AnimateDiff を初めて使ってみる
github.com diffusers v0.22.0 でサポートされた AnimateDiffPipeline を使って、 AnimateDiff を使ってみます。 まずは、リリースノートにある通りのプログラムを実行してみます。
前回の記事までで GLIGEN (Grounded Language-to-Image GENeration) を使ってみましたが、GLIGEN を使用するときは バウンディングボックス が必要となります。 (矩形 や 枠 と記載したりもしているので文言は定まってませんが...) バウンディングボックスを可視化したもの バウンディングボックスは 左上のXY座標 と 右下のXY座標 の4つの値で成り立っています。 [x1, y1, x2, y2] という感じです。 この記事では、Python でバウンディングボックスの座標をマウスのドラッグ&ドロップで取得していきます。
diffusers で GLIGEN を試してみる (3) - 枠でスタイルも指示できる?
zako-lab929.hatenablog.com zako-lab929.hatenablog.com 前回の記事までで StableDiffusionGLIGENPipeline 及び StableDiffusionGLIGENTextImagePipeline を使ってきました。 後者の StableDiffusionGLIGENTextImagePipeline は、 もう1個使用例があったのですが、やや分かりづらかったので記事を分割してしまいました。 この記事では もう1個の使用例 GLIGEN でスタイルも指示するパターンを見ていきます。
diffusers で GLIGEN を試してみる (2) - 文字列の代わりに画像でキャプションする
zako-lab929.hatenablog.com 前回の記事では StableDiffusionGLIGENPipeline を用いて diffusers で GLIGEN (Grounded Language-to-Image GENeration) を試しました。GLIGEN は、バウンディングボックスとキャプションを用いて、枠に意味を持たせて Text-to-Image をするものでした。 この記事では StableDiffusionGLIGENTextImagePipeline を用いて、文字列によるキャプションの代わりに画像によるキャプションを試してみます。
help.hatenablog.com ぐぬぬ。。。 もっと早く知りたかったです。 いつも Markdown で書いているのですが、特殊なものを出すときは、いつも別タブで「雛形用の下書き」を開きに行ってからコピペしてました。。。 もっと早く知りたかったです。 (大事なことなので2回)
github.com diffusers v0.20.0 で対応された GLIGEN (Grounded Language-to-Image GENeration) を試してみます。 GLIGEN はバウンディングボックスとその矩形に対するキャプションを用いて、プロンプト+キャプション付き矩形で Text-to-Image を行うようです。
設定画面 猫モード!! チェックを付けて保存してみたところ、最初何も起こらないなぁ?って思ってました。 そのまま放置していると、画面上部に猫が歩いてきました。 画面上部に猫が歩いている様子 猫の種類 猫の種類 眺めていたところ、猫は5種類居そうな雰囲気です。 実は隠しキャラがいるかもしれません。 他のモード コーギーモード・猫モード・カニモード モードはラジオボタンではなくチェックボックスのため複数選択できます。 コーギーとカニも出てきます。 パワーレベル これは、タイピングをしてコンボになるとエフェクトが付くやつです。 まとめ 右上の「歯車」ボタンから「その他」を選択することでこの設定画面に…
T2I-Adapter をもっと色々使ってみる (SDXL 1.0)
今回の記事は SDXL 1.0 向けの T2I-Adapter です。 SDXL はメモリ消費量が多い分、やっぱり高品質ですね。 ControlNet のときにはやらなかったけど、T2I-Adapter は SDXL 版を試してみました。
T2I-Adapter をもっと色々使ってみる (SD 1.5)
前回の記事で SD 1.4 向けの T2I-Adapter をまとめました。 今回の記事では SD 1.5 向けで生成した画像と SD 1.4 向けで生成した画像を比較してみます。
うなぎ zako-lab929.hatenablog.com 前回の記事で T2I-Adapter というものを使ってみました。この記事では、ControlNet と比較しながらもっと色々な T2I-Adapter を使ってみようと思います。 ControlNet のときは1つ1つ丁寧に書いたけど、また1つ1つやるのは面倒なので一気にやりました!でも、SD 1.4 のやつだけで結構たいへんだったので SD 1.5 向けは次回がんばります。
github.com この記事では diffusers v0.19.0 の T2I Adapter について試していこうと思います。T2I Adapter は Text-to-Image の アダプター という感じでしょう。 ザックリ言うと ControlNet みたいなもの っぽいです。 SDXLとかAutoPipelineはこのバージョンで登場したのかぁ
diffusers v0.17.0 の UniDiffuser を使ってみる
github.com この記事では diffusers v0.17.0 のリリースノートにある UniDiffuser というものを使ってみます。 UniDiffuser introduces a multimodal diffusion process that is capable of handling different generation tasks using a single unified approach Google 翻訳によると UniDiffuser は、単一の統一されたアプローチを使用してさまざまな生成タスクを処理できるマルチモーダル拡散プロセスを導入します。 と記…
diffusers v0.15.0 の Text-to-Video Zero と ControleNet の OpenPose を併用する (2)
zako-lab929.hatenablog.com 前回の記事で、 Text-to-Video Zero と ControlNet の併用で「CUDA out of memory」になってしまい断念しましたが、OutOfMemory なのでメモリ使用量を少しでも減らせないかと少しパラメータを変更したところ、なんと動くようになったので、続きです。
diffusers v0.15.0 の Text-to-Video Zero と ControleNet の OpenPose を併用する
zako-lab929.hatenablog.com 前回の記事で Text-to-Video Zero で動画生成をしました。 Text-to-Video Zero は Text-to-Video だけでなく、なんと ControlNet も併用できるようです。diffusers の ControlNet は全種類使ってみましたので、凄さを知ってます! どんな動画が出力されるのか楽しみです。 と意気揚々と記事の方を書き始めながら、 スクリプトも並行して試し始めたのですが、残念ながら以下の通りです。 OutOfMemorryError CUDA out of memory になってしまい出力ま…
diffusers v0.15.0 の Text-to-Video Zero を Google Colab で使ってみる
TextToVideoZeroPipeline x Minea/MeinaMix_V11 zako-lab929.hatenablog.com diffusers v0.15.0 には上記で使用した Text-to-Video 以外に Text-to-Video Zero というものが紹介されていました。 github.com この記事では Text-to-Video Zero を Google Colab で使ってみようと思います!
diffusers v0.15.0 の Text-to-Video を Google Colab で使ってみる
github.com huggingface.co diffuser v0.15.0 のリリースノートにある Text-to-Video を使ってみます。 今だと Stable Video Diffusion を使うのが普通なんですかね? Stable Video Diffusion はそのうち調べるとして、まずは使ってみましょう。
diffusers v0.15.0 の Multi-ControlNet でバツポーズのオジサンを美少女にしてみる
github.com こちらのリリースノートにある ControlNet を複数使う Mutil-ControlNet で、 バッテンポーズをする美少女を作りたいと思います。
diffusers v0.15.0 の Stable UnCLIP というものを使ってみる
github.com diffuers v0.15.0 でリリースされたものは、 Text-to-Video や オーディオ生成 , Stable UnCLIP , Multi ControlNet など面白そうなもの機能がたくさんあります。 zako-lab929.hatenablog.com 以前の記事で触っていた Prompt Weighting の Compel も v0.15.0 で登場したようです。 知らなかった! 本記事ではその中でも Stable UnCLIP を触ってみようかなと思います。 選んだ理由としては Image-to-Image のようなノリでバリエーションを増やせ…
Paint-by-Example で写っているものを差し替えてみる
さて、この前 TripoSR で Image-to-3dModel をやりましたが、また過去のキャッチアップに戻ってきました。 ControlNet も色々使い Inpaint も含め色々触ってきたので、 コントロール画像やマスク画像がどういったものかわかりました。 この記事では diffusers v0.10.0 でリリースされた Pipeline の Paint-by-Example を使ってみます。 Paint-by-Example は、 ソース画像 , マスク画像 , リファレンス画像 の3つを使って画像を生成するようです。
Redux とは、状態管理モジュールの1つで、 Fulx アーキテクチャの影響を受けて作られたものです。 Vuex の React 版みたいな感じです。 Vuex は Vue 用の状態管理モジュールです。 だいたい Store とか State などの単語が登場します Next.js プロジェクトに導入しようとしたら、 ちょっとハマったので記録に残しておきます。
Stability AI 及び Tripo AI からリリースされた TripoSR を Google Colab で使ってみる
ja.stability.ai 数日前に Stability AI 及び Tripo AI からリリースされた TripoSR というものがあります。 Image-to-3dModel にあたるようです。 普段は、diffusers 経由で Stable Diffusion を触っていて、まだ触り始めて間もないので過去のリリースノートから追って行っている感じです。ですが、個人的に昨年は Unity とか触ってたので、3D モデル生成の TripoSR は思わず飛び付き、急に最新の情報に触れることになりました。3Dモデル生成はすごいワクワクします。 早速、使わせていただきましょう!!Google…
docs.obniz.com この記事も1ヶ月ほど前のハッカソンで使用したネタです。 初めて使ったのでまとめておきます。 Grove_EarHeartRate という心拍センサーを Web アプリ上から使うときのメモです。今回は React Component として使えるようにしました。
急に diffusers 系じゃない記事になりますが、 普段は Web アプリがメインなのでこういう記事も書きます。 1ヶ月ほど前にハッカソンでハマって大変な思いをしたので、 まとめておこうと思います。
ここ最近の記事はいつも同じような内容でしたが、 ようやく diffusers の ControlNet 全14種類を終えることができました。 ControlNet Hugging Face 記事 Canny huggingface.co zako-lab929.hatenablog.com Instruct Pix2Pix huggingface.co zako-lab929.hatenablog.com Inpaint huggingface.co zako-lab929.hatenablog.com MLSD huggingface.co zako-lab929.hatenablog.co…
huggingface.co ようやく diffusers の ControlNet の最後、14個目に到達しました。 Tile というやつを使ってみます
huggingface.co diffusers の ControlNet 残り2つです! これが終わったら、次が最後! 今回は Shuffle です
huggingface.co diffsers の ControlNet は、残すところあと3つ! 今回は SoftEdge を使ってみます
lllyasviel/control_v11p_sd15_scribble · Hugging Face もう少しで diffusers の ControlNet 完全制覇です。残すところあと4つ! 今回は Scribble を使ってみます。
huggingface.co OpenPose!! 姿勢推定ですね。知ってます!
ControlNet の LineartAnime を使ってみる
huggingface.co 今度は LineArt の Anime バージョンです ControlNet 全部使ってみるシリーズはもう少しで終わります!
huggingface.co ControlNet の Lineart を使ってみます。 Line Art、線画ですね!これは調べなくてもわかります!
huggingface.co seg ってなんだろう?ってところから始まりました。 ということで、今回は ControlNet の Seg とやらを使ってみます。
huggingface.co 今日は、NormalBae を使ってみます。 Bae って何なんでしょう? 中身的には法線マップを使った ControlNet っぽいんですが。。。
huggingface.co ControlNet を使ってみる回も5回目。今回は Depth です。
huggingface.co 今回は ControlNet の MLSD を使ってみます! 雰囲気的には Canny に似てます!
ControlNet の Instruct pix2pix を使ってみる
huggingface.co 今回は ControlNet の Instruct pix2pix を使ってみます!
前回の記事、ControlNet を使い始めました。 今回は、ControlNet の Canny を使ってみようと思います。 huggingface.co Canny Edge を条件とする ControlNet とのことです
zako-lab929.hatenablog.com 前回 runwayml/stable-diffusion-inpainting を使って Inpainting をしました。 今回は ControlNet 版で試してみます
zako-lab929.hatenablog.com 前回の記事では リリースノート v0.6.0 に沿って Inpainting を進めました。 このとき使用したモデルは runwayml/stable-diffusion-inpainting ですが、 ドキュメント版 には他のモデルも載っているのでやってみようと思います。
さて、この記事では diffusers v0.6.0 を参考に Inpainting を使ってみます。 公式ドキュメント にも Inpainting のページがありますが、今回は v0.6.0 当時のリリースノートを読みながら進めます。更に Inpainting は ControlNet にもあるようですが、今回は v0.6.0 当時のリリースノートを読みながら進めます 前回は v0.7.0 の Long Prompt Weighting Stable Diffusion を使い、それよりも前は LoRA を使って遊び、そして v0.6.0 に戻ってくるという時系列的にはグチャグチャです。 何…
「ブログリーダー」を活用して、ちびジャコさんをフォローしませんか?