• Stable Diffusion 自分用メモ(=超初心者向け)

    Stable Diffusionにドハマりして時間とストレージ容量が溶けるようになった麗ですコンニチワ。
    今は色々調べながら試行錯誤を繰り返して楽しんでいますが、「これ、環境の再構築をしようとしたら絶対に忘れてるわ…」と思ったのでまとめておきます。一応随時更新ってことで。
    完全俺得備忘録ですので、ご了承ください。古くなったり間違ってたりすることもあると思うし鵜呑みはだめよ。At your own risk。

    ちなみに、自分が自マシンにPythonインストールしていくタイプなので、Colab版で同じことができるのかは知りません(調べてません)。
    Nvidia GeForce GTX1080 (VRAM8GB)で始めましたが、多分VRAMはもうちょい少なくても最低限のことはできます。6GBくらいからいけるんじゃないかな(知らんけど)。足りないと黒い画面で「VRAM足りてねーよ(意訳」って言われるので動くかわかんない人はとりあえず試してみればいいと思います。
    (最低限ってのは、高詳細度でサイズのデカいのを作ろうとするとエラーが出るけど、後述のWebUIのデフォルトである512×512であれば時間をかければ生成はできるってことです。
    いろいろな記事で紹介されているように、12GBくらいあった方が楽しめるのでRTX3060くらいがいいんじゃないかなって思います。自分は積み替えました。GTX1080もだいぶ調子悪くなってきてたしね。

    下準備(GUIで生成するために)

    次のどっちか、いれよう。

    必要になるのは基本的にPythonとGit。Pythonのバージョンに関しては使うツールのリポジトリに書いてくれてあるので合わせておくこと。
    インストールに関してもどちらも記載されているので、その通りに。

    Stable Diffusion Web UI

    インストールしたら起動してブラウザでアクセス。
    ちなみに、http://127.0.0.1:7860/?__theme=dark にするとダークモードでアクセスできる。

    Setting

    セッティングの変更で、VAEをリストから選択できるようにしておく。
    setting -> User Interface -> Quicksettings list に 「,sd_vae」 を追加する。

    ModelとLORA

    huggingface や civitai などで検索してくる。商用利用の場合はライセンスにも注意。モデルによって推奨されるVAEなどもあるので、それに従ってVAEは追加・選択するのがいいと思う。よく使うのは vae-ft-mse-840000-ema-pruned 。どんなモデルやLORAでも、ダウンロードページに書いてあることはよく読もう。

    Model
    • BRA
    • BreakDomain
    • chilled_remix
    • counterfeit
    • dreamshaper
    • experience
    LORA
    • Dark and Light
    • epi_noiseoffset2
    • flat / flat2

    Extensions

    AvailableのExtension Index URL が「https://raw.githubusercontent.com/wiki/AUTOMATIC1111/stable-diffusion-webui/Extensions-index.md」になっている場合は「Load from」で読み込むことで一覧から、あるいは「Install from URL」でGithubリポジトリなどから拡張機能をインストールできる。
    一覧の方は、Hideのカテゴリのチェックを要確認。ないなと思ったらチェックついてたみたいなのがある。
    いずれもインストール後は「Installed」タブで「Apply and restart UI」すること。

    以下は今いれているもののメモ。

    • Aspect Ratio Selector
      アスペクト比を選択できるボタンを設置。一覧からインストール。
    • sd-webui-controlnet
      Githubリポジトリからインストール。https://github.com/Mikubill/sd-webui-controlnet.git
    • OpenPoseEditor
      https://github.com/fkunn1326/openpose-editor.git
    • sd-civitai-browser
      https://github.com/SignalFlagZ/sd-civitai-browser
    • dynamic prompts
    • easy-generate-forever
    • bilingual-localization
    • ultimate-upscale-for-automatic1111
    • Easy Prompt Selector
      プロンプトをポチポチするやつ。Githubリポジトリからインストール。https://github.com/blue-pen5805/sdweb-easy-prompt-selector.git
      extensions\sdweb-easy-prompt-selector\tags の中に○○.ymlを配置することでカスタマイズ可能(作者様の説明
    • image browser
      出力画像のブラウジング。一覧からインストール。
    • TiledDiffusion / TiledVAE
      VRAM使用量を節約して巨大な画像を生成。一覧からインストール。
    • Web UI RemBG
      背景抜き。一覧からインストール。

    ControlNetについて

    さまざまなポージングを使う以外にもできることが増えており、詳細化したり再構築したりできるので、メモ。

    【Tile用途(V1.1の場合)】
    stable-diffusion/extensions/sd-webui-controlnet/models に https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main からモデルをDLして配置する。(執筆時点ではcontrol_v11f1e_sd15_tile)

    Prompt(メモ)

    特殊構文

    (foo:num) // fooがnum倍の重要性になる(強調)
    [foo:bar:when] // 言葉をfooからbarにwhenのタイミングで差し替えて生成する
    [foo|bar] // ステップごとにfooとbarを入れ替えて生成する
    foo AND bar // fooとbarを(明示的に)混ぜて生成する

    styles について

    プロンプトを保存しておくstyles機能の内容は、直下のCSVに保存されるので直接編集することもできる。(文字コードに注意)
    stable-diffusion/styles.csv

    基本的な流れ

    1. modelとvaeを選ぶ
    2. t2iにプロンプトとネガティブプロンプトを打ち込んで回す
      • ネタがない? chichi-pui か majinAI か ourt-ai あたりでも眺めてたらいいんじゃない?
    3. t2iのextraでバリエーション作成
      • recycleでシード値を持ってくるのを忘れないように。
    4. t2iのcontrolNetに持ち込んで調整
    5. i2iでinPaintして細部を修正
    6. i2iに持ち込んで拡大

    おまけ:用語

    • Model(Checkpoint)
      • stable-diffusion/model/stable-diffusion/
      • こいつがないと何も始まらない核となるもの。重量がでかい。
    • LORA
      • stable-diffusion/model/lora/
      • 追加学習ファイル。ニュアンス等を調整してくれるもの。
    • VAE
      • stable-diffusion/model/vae/
      • 彩色や塗りを補助するもの
    • controlNet
      • ポージングの指示をするもの
    • Embeding
      • stable-diffusion/embeding/
      • 追加プロンプトなど
      • EasyNegative などがこれにあたる。
        • EasyNegative / EasyNegativeV2 / bad_prompt / bad_prompt_version2 / bad-hands-5 / badhandv4 / negative_hand-neg / ng_deepnegative / verybadimagenegative
    • Deforum
      • 動画を生成する。
  • エラー0x800f081f に遭遇したのでメモ

    command prompt (admin)

    install用のファイルを置いたドライブを <DRV> として記載

    1. MediaCreationToolなどOSメディアを作成しておく
    2. dism /Online /Cleanup-Image /CheckHealth
    3. dism /Get-WimInfo /WimFile:<DRV>:\path\to\install.esd ( example:: d:\sources\install.esd )
      or
      dism /Get-ImageInfo /ImageFile:<DRV>:\path\to\install.esd ( example:: d:\sources\install.esd )
    4. 出力から、自分が使用しているOSのIndexの値をメモ
    5. dism /export-image /SourceImageFile:<DRV>:\path\to\install.esd /SourceIndex:IndexNumber /DestinationImageFile:<DRV>:\path\to\install.wim /Compress:max /CheckIntegrity
      ※ IndexNumberは工程3の値に置換する
    6. dism /Online /Cleanup-Image /StartComponentCleanup
    7. dism /Online /Cleanup-Image /AnalyzeComponentStore
    8. dism /Online /Cleanup-Image /RestoreHealth /Source:WIM:<DRV>:\path\to\install.wim:1 /LimitAccess
      1. (エラーで止まった場合、再度) dism /Online /Cleanup-Image /RestoreHealth
    9. sfc /scannow

    memo

    DISM /Online /Cleanup-Image /RestoreHealth /source:ESD:<DRV>:\path\to\Install.esd:IndexNumber /LimitAccess

    1. <DRV>にmountディレクトリを作成
    2. dism /Apply-Image /ImageFile:<DRV>:\path\to\install.esd /index:IndexNumber /Applydir:X:\mount
      ※ IndexNumberは上述
    3. <DRV>:\mount に Windows フォルダがあるか確認
    4. dism /Online /Cleanup-Image /CheckHealth
    5. dism /Online /Cleanup-Image /RestoreHealth /Source:<DRV>:\mount\windows /LimitAccess
    6. dism /unmount-wim /Mountdir:<DRV>:\mount /discard
    7. dism /Cleanup-Wim
    8. sfc /scannow
    9. powershell
    10. Get-AppXPackage -AllUsers  |Where-Object {$_.InstallLocation -like “*SystemApps*”} | Foreach  {Add-AppxPackage -DisableDevelopmentMode -Register  “$($_.InstallLocation)\AppXManifest.xml”}
    11. SHUTDOWN -> WAKE
  • うっかりよく忘れるからGoogleの検索フォームがらみをメモっておく

    検索語句はsampleとする

    OR検索

    sampleA OR sampleB

    除外検索

    somewords -sample

    フレーズ検索

    "sample phrase"

    タイトル検索

    intitle:sample / allintitle:sampleA sampleB

    テキスト検索

    intext:sample / allintext:sampleA sampleB

    URL文字列検索

    inurl:sample / allinurl:sampleA sampleB

    サイト内検索

    word site:https://foo.bar

    リンク検索

    link:https://foo.bar

    関連サイト検索

    related:https://foo.bar

    地域検索

    location:japan sample

    ファイルタイプ検索

    filetype:pdf sample

    SNS検索

    sample @Twitter
  • うっかりよく忘れるし同期も取りたくないからChromeの拡張周りをメモっておく

    拡張機能(Addon)

    • Always Clear Downloads 2
    • Asuka.IO Whois
    • Awesome Screenshot
    • BuiltWith Technology Profiler
    • Chrome Remote Desktop
    • Clear Cache
    • DeepL
    • DevTools z-index
    • Evernote Web Clipper
    • GhostText
    • Google翻訳
    • Gutenberghub
    • Headless Recorder
    • Lighthouse
    • LiveReload
    • META SEO inspector
    • Momentum
    • NoMiner
    • OneTab
    • Page Analytics (by Google)
    • Print Friendly & PDF
    • QuickQR
    • React Developer Tools
    • Redirect Path
    • Share Extensions
    • Ubersuggest
    • Utime
    • VisBug
    • Vue.js devtools
    • Wappalyzer
    • Web Developer
    • Web Vitals
    • WhatRuns
    • Window Resizer
    • WPSNIFFER
    • XPath Helper
    • 強振モニタ

    Chrome アプリ

    • HostAdmin App
  • 「No Boot Device Found」に遭遇したのでメモ

    電源が急に落ちたりして不意に再起動させられたら「No Boot Device Found」の表記。
    OS(Windows10)がそもそも立ち上がらない…!
    という事態に久々になったのでメモ。
    ググれば詳細なものがいくらでも出てくるので、手順のみ。

    【参考】

    https://www.diskpart.com/jp/articles/how-to-fix-no-bootable-device.html
    https://www.partitionwizard.jp/partitionmagic/boot-device-not-found.html

    【要件】

    • なるべく再インストールや初期化は避ける

    【用意しておくもの】
    用意してなくて手元にない!!って場合はどうすりゃいいんだろうね(?
    どっかにあいてるPCとかあったらそれ借りて作ろうね

    • OSの復旧用メディア。Windows10ならメディアクリエイションツールで作れます。
      別のパーティションにあるからいいじゃんっていう方は、ドライブが物理的に逝ったときを考えておきましょう。
    • 万が一のときにデータを移動させたい方、初期化する可能性が高い方は
      • Ubuntuなど、LiveDVD/LiveUSB
        インストールせずに使えるOS。
        USB等から起動して、HDD/SSDが生きていればマウントして退避先に移したりできる。
      • データの避難場所(USBや外付けHDDなど)

    手順概略

    要所要所で起動確認等はしてみてください(いちいち書いてません)

    1. いったん電源を抜いて数分時間を置く
      電源さしなおしで起動したら運がよかったねってことで。
    2. 必要最低限の機器以外のUSBデバイス等を外す
    3. BIOS/UEFI設定疑い
      BIOS/UEFIの設定画面の表示についてはマザーボードメーカーによって異なったりしますが、だいたいF2~F12のどっかでしょ。
      画面に一瞬表示されたりすることもあるので、そういうの覚えておくのもいいかも。
      単純にブートモードが変わっちゃってOS立ち上がらないだけなら、ここだけで戻ったりします。
      1. デバイスが認識してるか確認
        物理的にお亡くなりになってるとどうしようもない。接触不良の線もあるっちゃあるので、PCバラすことに抵抗がない人は蓋をあけてドライブ周りのプラグを1回抜いて時間をおいてから挿すのもいいかもしれない。
      2. ブートモード確認
        BIOSの設定値が書き換わってるとブートモードが変わったりしてるので、確認。
        また、Legacyの場合はSecureBootを切っておく。
    4. CMOS疑い
      電池着脱(あまりに古い場合は電池交換)
    5. ここまでで進展が見られない場合には起動順序確認
      光学ドライブやUSBの順序を確認しておく。
    6. MBR破損疑い:Windows10のDVDから起動(このあたりから最悪再インストールだなって覚悟を決めましょう)
      1. 修復(インストールするわけではないので)
      2. 詳細オプション→コマンドプロンプト
        bootrec /fixmbr
        bootrec /fixboot
        bootrec /scanos
        bootrec /rebuildbcd
      3. 対象が見つからないなど言われたら一旦中断する。ここからはDISKPARTを使用したりします。
    https://www.partitionwizard.jp/partitionmagic/the-requested-system-device-cannot-be-found.html

    MBR修復でもどうにもならなかったらいよいよ再インストールです。
    念のためLiveDVDなどでデータを抜いておいてから再インストールしましょ。

    https://day-2-day.info/pc%e3%83%bb%e3%83%8f%e3%83%bc%e3%83%89%e3%82%a6%e3%82%a7%e3%82%a2%e9%96%a2%e9%80%a3/10098/
  • うっかりよく忘れるからWindowsの操作周りのをメモっておく

    CMD(かPowershell)からファイルを削除

    del "¥¥?¥<DriveLetter>:¥<PATH>¥<TO>¥<FILE>"

    【余談】Win+Rでcmdと入力して起動するときは、Ctrl+Shit+Enterで管理者モードとして起動可能


    sfc

    sfc /scannow

    chkdsk

    chkdsk <Drive>

    DISM

    DISM.exe /Online /Cleanup-Image /RestoreHealth
    DISM.exe /online /Cleanup-Image /StartComponentCleanup

    ROBOCOPY

    robocopy "src_dir" "dest_dir" /mir

    Hibernate(休止状態の変更)

    powercfg.exe /hibernate off

    デバイスマネージャーの非表示デバイスを表示

    set devmgr_show_nonpresent_devices=1
    start devmgmt.msc
    // 表示>非表示デバイスの表示

    「Windowsの機能」ダイアログを表示(ファイル名を指定して実行)

    OptionalFeatures

    dns更新(cmd)

    ipconfig /flushdns    // 解放
    ipconfig /registerdns // 構築

    dhcp更新(cmd)

    ipconfig /all      // 確認
    ipconfig /release  // 解放
    ipconfig /renew    // 再構築

    Hashチェック(SHA256)

    certutil -hashfile [path/to/file] SHA256