準備中…
軽量イラスト生成ソフト「NGUI v2」
概要
NGUIはパラメータ調整を自動で行い、キーワードを入力するだけで鮮明なイラストを生成するソフトです。VRAMが2GB程度のローエンドGPUから動作します。AIモデルはNGUI独自の「Hina」か他のモデルを読み込んで使えます。スマホ等による遠隔生成に対応。Python、C#勉強のため無料にて公開します。コメント欄にて質問承ります。
ダウンロードリンク(v2.1.7) 2/15更新(2.1.9は複数GPU環境で不具合あり)NGUIv2 : インストーラー版
NGUIv2_local : ポータブル(非インストール)版
不具合報告フォーム
https://forms.gle/aYmzJvNeL4t1LKaR9
過去の対応はコメント欄にて
基本的な使い方
・ソフトをインストールして起動
・AIモデル(通常版 or NSFW強化版)を選択してOKボタンを押す
・キーワードを入力して生成ボタンを押す(1girl, curvy, t-shirts のようにカンマでワードごとに区切る)
使える主なキーワード(プロンプト)は以下のサイトから見られる
Tags | Danbooru
ここにない単語や日本語でもNGUIはある程度理解できます
遠隔モードの使い方(スマホなどから生成する方法)
~ローカルリモート~
・設定->リモート設定->ローカルリモート を選択してOKボタン
~ネットワークリモート~
・設定->リモート設定->ローカルリモート を選択(OKは押さない)
・青字のNgrokを押してサイトを開く
・LoginからGoogleアカウントなどでログインする
・登録処理を済ませてマイペースに入るとYour Authtokenに長い文字列が現れるのでこれをNGUIのAuthtoken欄にペーストしてOKボタン
再起動してから通常どおり起動するとQRコードが表示され、これをスマホ等で開くとNGUIの操作画面につながるのでホストPC以外からでも画像を生成・取得できるようになる。遠隔モードからローカルに戻すにはリモート設定でスタンドアローンを選択する。
上手くいかない場合(QRコードが表示されないなど)
設定 -> コンソールを開く から以下のコマンドを入力してEnter
Set-ExecutionPolicy Unrestricted -Force
最小システム要件
・14.5GBの空きストレージ
・RAM 8GB以上
・OS Windows10(Win11推奨)
・バージョン474.64以上のドライバー(GTX700番台が目安)
リリースノート
v3.0.0 (in progress) ✅:完了 ➡:作業中 ⏸:Pending
Electron/Tauriフレームワークへの移行➡
Stable diffusion 2.0モデルへの対応 SDXLモデルへの対応⏸
Loraへの対応⚠️(Hinaとの相性問題に対応中)
Hina 2.0⏸
高画質化機能の追加✅
Hires.fixの複数生成への対応✅
NGUIのWebUIフォーク⏸
ロード時間の短縮✅
UIの刷新➡
v2.2.0 (in progress)
改良版モデルHina 1.6+NSFW版
マルチGPU環境での不具合修正
フロート通知でボタンが押せないバグ修正
Seedを指定して再度生成すると画像がノイジーになる問題の修正
ギャラリーの画像が消える問題の修正
一部GPU相性問題の修正
v2.1.9 (2024/2/15)
v2.1.8修正版
v2.1.8 (2024/2/13) 不安定
v3.0に向けてUIフレームワークを変更
RTX4000シリーズで速度低下が起こる問題の修正
WindowsAPICodePackの廃止
Python3.11.8への更新
v2.1.7 (2024/1/27)
「生成条件を画像ファイル名にマージする」がOFFの時に複数生成画像の保存に失敗する問題の修正
ライブラリの依存関係修正
v2.1.6 (2024/1/23)
DPM++_2M_V2で生成に失敗する問題の修正
FP16が利用できないGPUでFP32モードに移行しない問題の修正
NVIDIA Tesla K80サポート追加
以下のGPUの自動設定最適化
・GT 700番台
・GTX 1650 (Ti)
・GTX 1080 (Ti)
・RTX 2000番台
・Quadro P400~P6000
v2.1.5 (2024/1/13)
特定のVAE読み込みに失敗する問題のバグ修正
.NET 8ベースへの更新
プラグインの更新
Pascal世代(GTX1080など)のGPUで極端な速度低下が起こる問題の修正
生成条件の保存処理におけるバグ修正
v2.1.4 (2023/10/20)
次世代サンプラー「Restart」の追加
DDIMサンプラーで画像の生成に失敗する問題の修正
Python3.11.6への移行
PyTorch2.1.0安定版への移行
その他細かなバグ修正
v2.1.3 (2023/10/1)
DPM++ 2M Karras、DPM++ 2M v2 サンプラーの追加
→vae-ft-mse-840000-ema-pruned などのVAEと相性良好画像調整コマンドの追加(絵柄には影響しません)
CT_数値, → コントラスト(数値0~)
CL_数値, → 鮮やかさ(数値0~)
BR_数値, → 明るさ(数値0~)
※数値1.0で変化なし
Hires.fix有効時におけるプログレスバーのバグ修正
ライブラリのアップデート
生成画面の日本語対応
解像度リストの変更(Large 768x1152)
v2.1.2 (2023/9/25)
自動保存関連のバグ修正
連続生成時で構図が単調になる傾向の微修正
Hinaモデルの最適化
その他細かなバグ修正
v2.1.1 (2023/9/24)
Hires.fixが有効の際、2枚以上の複数枚生成時に同じ画像になる問題の修正
任意のVAE(ckpt/safetensors形式)の読み込み機能を追加
VAE処理の修正
ファイル名の最大長の拡張(160-> 240前後)
埋め込みseed値のバグ修正
v2.1.0 (2023/9/22)
改良版モデルHina 1.4+NSFW版追加
出力画像の高解像度処理
RTX4000番台のGPUへの対応
標準サンプラーの改善
複数枚でのHires.fixへの対応(高画質における構図の崩れ軽減・高速化)
Python3.11.5ベースのバックエンド
旧NGUI (NovelGUI)由来のソース整理
Hypernetworks処理の削除(LoRA機能開発の都合)
NVIDIAドライバー(version 536.40)で生成速度が低下する問題の修正
プラグインのアップデート
その他バグ修正
2023/5/26 Hina(NSFW版)を更新
https://huggingface.co/NMOEYA/NGUI/resolve/main/hina_passpruned202305020918.safetensors
2023/5/21 Hina(NSFW版)を公開
v2.0.7 (2023/5/13)
32bitソフトとしてインストールされる問題の修正
ddimサンプラーで生成した画像のEnhanceができない問題の修正
ddimサンプラーの生成精度の改善
euler a/eulerサンプラーでのプロンプト再現度の向上
高画質における精度改善(Hires.fix)の実装と高速化
旧バージョンと干渉する問題の修正
設定UIの変更
その他バグ修正
v2.0.6 (2023/5/4)
操作画面のコンテキストメニューの修正
プロンプト強調・抑制処理をv1.14にロールバック
保存形式(PNG / JPG / BMP)の追加(自動保存でのみ有効)
画像ファイル名長さの拡張
画像メタデータに使用モデル名を追加
Hypernetworkへの対応
Pythonの安定性に関する修正
その他バグ修正
v2.0.4.1 (2023/4/29)
アップデートの依存関係・フォルダ構成に関する修正
v2.0.4 (2023/4/28)
安定性に関するアップデート
生成枚数の表示
NVIDIAデータベースを用いたモード決定
一部環境で生成速度が低下する問題の修正
生成の中止機能の追加
起動時のオーバーヘッド解消
webui互換の強調構文の追加 強調: ( ) 抑制: [ ]
(これまでの 強調: { } 抑制: [ ] はそのまま使えます)
UIの仕様改善
v2.0.3 (2023/4/24)
自動保存の設定が反映されない問題の修正
モデル名に特定の文字列が含まれていた時にクラッシュする問題の修正
生成処理中にモデル変更が行われた時の挙動変更
細かなバグ修正
v2.0.2 (2023/4/23)
Powershell起因の問題修正
モデル選択画面が表示されなくなる症状の修正
ランタイム統合インストーラーでの配布
モデル読み込みの高速化
その他バグ修正
v2.0.1 (2023/4/14)
マルチGPUへの対応(制約あり)
設定周りのUI改善
一部機能不備の修正(ネットワークリモートなど)
高解像度モデル「Arina」の追加
多数のバグ修正
v2.0.0β (2023/4/7)
生成速度が2倍以上に高速化(v1.14比)
safetensor形式のネイティブサポート
スマートフォンなどからの遠隔操作・生成
バッチの廃止(C#ベース)
640x960学習のNGUI独自モデル(Hina)の採用
「Hina」はクロップ(頭などが見切れること)が少なく、プロンプトへの再現性と緻密な描写を得意とするモデルです。
[ ] 括弧による弱化、{ } 括弧による強化構文の対応
Windows下ディレクトリにインストールするとシステムファイルの生成に失敗する問題の修正
機能とUIの刷新
v1.14.5 (2022/11/6) ひとまずバッチベースのNGUI開発はここまで
v1.14.4 (2022/11/5)
細かなバグ修正
v1.14.3(γ) (2022/11/3)
Windowsバッチのバグ対処
v1.14.2(β) (2022/10/30)
python依存関係の修正
v1.14.1(α) (2022/10/29)
生成完了時の通知音
v1.14.0 (2022/10/27)
起動の高速化
GPU検出精度の改善
テンソルの勾配計算を無効化
Pillow 9.0.0 -> 9.2.0
旧バージョンが残ったままアップデートすると起動時にクラッシュする問題の修正
過去に生成した画像がアップデートで消えないよう仕様変更
v1.13α (2022/10/24)
細かなバグ修正
v1.13 (2022/10/24)
ユーザーにより設定ファイルが変更された時のエラー回避・復帰操作
VRAMプロファイル生成における分岐処理の修正
例外処理の充実
Python3.10.6 -> 3.10.8 に更新
v1.12 (2022/10/23)
ポートエラー[Errno 10049]で画像を出力できない問題の修正
ハイエンド環境(RTX30**等)で"The system cannot find the path specified"のエラーで起動できない問題の修正
v1.11以前の環境が残っている状態でインストールするとソフトがクラッシュする問題の修正
その他、細かなバグ修正
v1.11 (2022/10/22)
conformance profile: MID_HIGH でシステムファイル読み込みに失敗する問題の修正
低VRAM環境で出力がセンシティブ寄りな傾向になる問題の修正
v1.10 (2022/10/22)
軽量モードの実装(VRAM 2~4GBのエントリーGPU向け)
イニシャライズの高速化(積極的なマルチスレッド利用、その他最適化)
起動時判定の強化(対応GPUが増加)
ダンプファイルが消えない問題の修正(インストール時不具合)
ファイルサイズの削減(v1.02 12.1GB → v1.10 7.2GB)
その他、細かなバグ修正
v1.03 (Skipped)
ディスクリートGPU非搭載のPCでも実行可能なローエンドモード実装
インストール時のキャシュが消えない問題の修正
その他、細かなバグ修正
v1.02 (2022/10/20)
exeからの起動ではなくインストールして使えるようにしました。
ファイル容量増殖バグあり(2次配布されてるみたいですがお気を付けて)
v1.01 (2022/10/19)
たまに起動しない問題を修正しました。
v1.01β (2022/10/19)
初期リリース
耳寄り情報
ありがたい検証結果
自作チップマウンターの制御ソフト【オープンソース利用 or 自作】
オープンソースの制御ソフト【OpenPNP】
自作チップマウンターという道に踏み込むと一度は目にする名前かと思います。基本的なヘッド部分の制御やチップを認識するための画像処理関連の機能などチップマウンターに必要なものが一通り揃っており、Maker Faireでもこれを利用している作例をいくつか拝見できます。素晴らしいソフトですので完成を急ぐのであればOpenPnPを使わない手はないですが、”既成のツールに頼らずに作りたい”という思いが強いので今回の利用は見送りました。やはり自作したチップマウンターの制御は自作ソフトでしたいですよね!
実装するべきもの等々
制御ソフトを自作するに当たり、機械的なものも含めチップマウンターに必要な機能(自分が求めるもの)を書き出してみます。
- Kicadの.posファイルを投げるだけで使える
- 実装精度±0.06mm(想定している最小部品のパッドに対する許容ズレ)
- ピックした部品の位置を画像処理で検出して補正(上記を満たすため)
- スプロケットホールを自動検出
- 座標とスロット情報等をシリアル通信で投げる
- 原点およびZ軸自動調整(実装前に一回走る)
- SMTノズルの自動交換
- ヘッド軌道の干渉判定
- 静音(昼夜構わずに使いたい)
- リッチな操作GUI(優先度低)
こんなところでしょうか…。実装精度はかなり辛目の基準なので実装速度との両立が難しければ妥協する可能性大です。.posを読み込んで適当にいじってから座標をUART等で投げるだけならWindows Formで容易に実装できそうですが画像処理まわりが殆ど未経験なので時間を要しそうです、諸事情で11月までにまとまった進捗を出す必要があるのでこれでは困ります。色々試した結果、上記の機能を比較的容易に実装可能そうなUnityを使うこととしました。
Unityで制御ソフト作り
ゲームエンジンであるUnityを制御ソフトに投入するに至った経緯として
- 秀逸なGUIエディタ
- 画像処理など高レイヤーとの相性の良さ
- 情報が多い(情報が多い)
が挙げられます。UnityはSystem.IO.Portsライブラリでシリアル通信もできるのでハード部分も特に問題なさそうです。過去にKicadと連携(?)したギャグソフトを作ったことも今回の選定を後押ししました。
kicadで作った基板を走れるクソゲーできた。 pic.twitter.com/qjyN1N5Xia
— やえ (@tokyotoniosumai) October 11, 2020
これまで作ったUI関連のスクリプトも流用することができ、短期間である程度の完成度が見込めると判断しました。
UI設計
モチベーション高ぶっている内にイメージする完成像をUnityに落とします。最近人気のシンプル(ミニマル?)なUIを目指します。UnityなのでUI作りは直感的でラクチンでした。ひとまずボタン配置などに加え、C#で「部品位置情報ファイルを読み込み」→「中の部品情報をリスト」→「部品数カウント(機能していない)」の機能を実装しました。設定画面のボタンはOnClick処理が空っぽなので押しても何も起こりません^^;
そろそろハード側にも着手しないと…
ノートPCのm.2からUSBポートを増やす
※2020年11月ごろに行った実験をまとめたものです。
注意
この改造(増築?)によって大事なPCに損傷を与える可能性が無きにしも非ずです。それにノートPCの背面カバーを開けた時点でメーカー保証は消えて無くなりますので自己責任でお願いします。
今回の改造ができるPCの条件
- B-keyもしくはB+M-keyのm.2空きスロットがある(M-keyは不可?)
- Windows Vista以降(LSPMが必要)
m.2スロットについて
前述したようにm.2には"key"と呼ばれる切り欠け形状により幾つかの種類が存在します。このうち、B-keyおよびB+M-key(SATA用に多い)にはUSBのD+/-が通っているためこれを引き出すことで新たなポートとして利用できるわけです。また、USB3.0用の差動2対もあるためSS(SuperSpeed)に対応させることもできます。ただし、SS用の信号線がPCIe Lane 1と排他になっていることがあるため、NVMe SSD対応を謳ったポートでUSB3.0は利用できないと思われます(未確認)。図1に実際のm.2(B+M-key)のピンマップを示します。
図1において7pinがD+,9pinがD-となっています。図1ではN/CとなっていますがSS用のTX-,TX+,RX-,RX+はそれぞれ29,31,35,37pinです。
実際にUSBを接続してみる
早速背面カバーを外してスロットを探してみましょう。ここ数年に発売された15.6型のノートであれば複数m.2スロットが存在していることも珍しくありません。私のPC(Acer AN515-44-R99Q) にはまだコネクタが実装されていないものも含めて3つのスロットが確認できました。今回は図2左端のスロットを利用することにしました。
ピンマップと照らし合わせながらUSBの信号線をつなぐと…
問題なくあっさりと動作してくれました。スロット付近にUSB用のTVSダイオードと思われる未実装のフットプリントがあったので信号線はそちらにつないでいます。
それと電源もお忘れなく。今回はメインのNVMe SSD(図3左上)の平滑コンから5Vを拝借しました。とりあえず当時作ったUSB/UART変換モジュールを接続しています。
しっかり認識しているようです。
振り返り
無事USBポートを新設できたのですが、考えてみるとやはりメリットが少なすぎる気がします。PCを破壊するリスクを孕むわけで、よっぽど何かノートPC内に組み込みたいものが無い限りはUSBハブを使えばいいと改めて感じました。