ラベル ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル ubuntu の投稿を表示しています。 すべての投稿を表示

2026年9月5日土曜日

llama.cpp を導入

これまで、ローカルLLM用のソフトウェアとしてOllamaを使ってきましたが、趣向を変えてllama.cpp を導入してみました。実際のところ、Ollamaのベースもllama.cppらしいのですが、直接実行する方が余計なオーバーヘッドがない分、多少動作が軽快になるはず…!という期待もあります。

必要なツール類のインストール
$ sudo apt update
$ sudo apt install git cmake build-essential
$ sudo apt install nvidia-cuda-toolkit

Gitからllama.cppをクローン
$ git clone https://github.com/ggml-org/llama.cpp.git
$ cd llama.cpp

CUDA版でllama.cppをビルドする
$ cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=native
$ cmake --build build --config Release -j 8

ビルドはそれなりに時間がかかるので、放置して寝ていたら朝には終わっていました。ちなみに、今回のコマンドには入れていませんが、-DCMAKE_CUDA_ARCHITECTURES=native オプションを付与すると、GPUの型番に合わせて自動で最適化してくれるらしいです。次回ビルドする機会があれば、ぜひ試してみたい。

llama.cpp を導入した最大の動機のひとつが「ブラウザからアクセスして利用できるWebUI機能を使いたかった」から。OllamaのときはSSH経由のターミナルで使っていたので、手軽にブラウザから使える環境が欲しかったのです。

というわけで、llama-server が起動できるように専用のシェルスクリプトを作りました。
---
#!/bin/bash
cd "$HOME/llama.cpp" || exit 1

declare -A MODELS
MODELS[e4b]="./models/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf"
MODELS[q4b]="./models/Qwen3.5-4B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf"

MODEL_KEY="${1:-e4b}"
MODEL="${MODELS[$MODEL_KEY]}"

if [ -z "$MODEL" ]; then
  echo "利用可能モデル:"
  printf '  %s\n' "${!MODELS[@]}"
  exit 1
fi

if [ ! -f "$MODEL" ]; then
  echo "モデルファイルが見つかりません: $MODEL"
  exit 1
fi

echo "モデル: $MODEL_KEY"
echo "ファイル: $MODEL"

LLAMA_SERVER="./build/bin/llama-server"
HOST="0.0.0.0"
PORT="8080"
CTX_SIZE="4096"
N_GPU_LAYERS="-1"
THREADS="$(nproc)"

exec "$LLAMA_SERVER" \
  --model "$MODEL" \
  --host "$HOST" \
  --port "$PORT" \
  --ctx-size "$CTX_SIZE" \
  --n-gpu-layers "$N_GPU_LAYERS" \
  --threads "$THREADS" \
  --temp 1.0 \
  --top-p 0.95 \
  --top-k 64 \
  --repeat-penalty 1.1
---
サーバーが起動後、ブラウザからアクセスすると、見覚えのある画面が表示されます。質問するとこんな感じ。
これで、ComfyUIと共にローカルLLMもブラウザで完結できる環境が整いました。なんか構築したら満足してしまった。

2026年8月27日木曜日

ComfyUI その後 (2) モデル変更と壁紙作り

先日、ローカルLLMのモデル変更について触れましたが、画像生成AIのモデルファイルも変えました。最初は「nova Anime XL」から最近登場した「Anima-Base」を経て、「nova Anime AM」に移行しています。「Anima」は最近新登場したアニメ・イラスト特化の画像生成AIモデルであり、このシリーズの将来性に期待しています。

▼ 参考記事
アニメ・イラストに強い画像生成AI「Anima」の正式版がついに登場、タグ・自然言語両対応でSDXLやIllustrious系モデルが動作するPCなら余裕でローカル実行可能(GIGAZINE)

nova Anime AMは、nova Anime XLと同じ作者様が開発されたAnimaベースの派生モデルファイルです。novaシリーズは日本の方が開発されているようです。素晴らしいモデルを公開してくださり、感謝です。

Animaは、これまで使用していた SDXL 形式のモデルファイルとは異なり、特殊なファイル構成で3つのモデルファイルから構成されています。

~/ComfyUI/models/diffusion_models/novaAnimeAM_v40.safetensors
~/ComfyUI/models/text_encoder/qwen_3_06b_base.safetensors
~/ComfyUI/models/vae/qwen_image_vae.safetensors

本体(メインモデル)はcheckpointsではなくdiffusion_modelsに配置します。(ここらへんもなぜそうなるのか理解できるようになりたいですね…) また、自然言語に対応できるようにtext_encoderにqwen_3_06b_baseを、VAEはvaeフォルダに。それぞれダウンロードしてきたファイルを配置します。加えて、ノード構成も前回から変わります。
以前は、checkpointからモデルだけでなく、CLIPやVAEもまとめてノードをつなげていましたが、今回はそれらを全て個別に読み込んでいます。

さて、今回はスマホの壁紙を作りたいと思います。私が使用しているのはPixel 8aで解像度は1080x2400(9:20)です。いきなり1080x2400の画像を生成するにはVRAMが不足する可能性が高いため、小さく作ってから拡大する手順でいきます。最初は540x1200で作成し、2倍に拡大することにします。ただし、AI側でも生成できる画像サイズには制限があるため、アスペクト比を維持できる544x1208を採用することにしました。

どんな構図にするか考えて、猫のポーズ(ミコッテの手をグーにしてるポーズ)を作りたいと思います。猫のポーズをどうやってAIに伝えるかと考えながら、プロンプトをポチポチしながら調整していきました。そして、こんな感じになった。
ここから拡大していきます。単に画像編集ソフトで2倍に拡大するとドットが荒れて汚くなってしまうため、拡大もAIを使ってキレイに引き伸ばします。画像を大きくする方法はいくつかあるようですが、今回は2つの方法を試しました。

拡大モデルを使う方法
世の中には画像を拡大するためのモデルファイルがあり、それを利用します。(ほんとに何でもあるな…)
4xUltraSharpという拡大モデルを使った場合のノード構成です。元の画像をその名の通り4倍にキレイに拡大してくれます。

Hi-Res.fix
こちらは画像サイズを拡大する際に、もう一度データをKサンプラーに投入して再描画させる手法です。拡大モデル使うよりノード構成は複雑になり時間もかかりますが、メリットは拡大と同時に再描画を行うため、細部まで描き込まれ、とてもキレイに仕上がります。
それでは、できあがった壁紙を見てみましょう!
はい!かわいい!というわけで、今後は様々な壁紙バリエーションを作成して、個人的に楽しんでいきたいと思います!

2026年8月26日水曜日

ローカルLLM モデル選び

先日、ComfyUIの記事で「プロンプト作成のためにローカルLLMをセットアップする」という内容を書きました。

▼ 前回の記事
ComfyUI その後
https://u1f.blogspot.com/2026/08/comfyui_045361163.html

Geminiに勧められ、よくわからないまま「Qwen2.5:7b」というモデルファイルをインストールしたのですが、モデルについて色々調べてみたのでまとめてみます。

モデル名「Qwen2.5:7b」の意味

まず「Qwen」は、中国のアリババ(Alibaba)が公開しているLLM(大規模言語モデル)のシリーズ名です。
  • 2.5:モデルの「世代(バージョン)」
  • 7b:モデルの「パラメータ数(70億=7 Billion)」
パラメータ数は、ざっくり言うと学習量を表す値のようなもので、数値が大きいほど賢くなるが、その分動作に必要なメモリ(VRAM)も大きくなってしまいます。

VRAM 8GBのグラフィックボードなら「7b」や「9b」あたりが実用的なターゲットになり、それ以上のモデルを動かす場合は、VRAM 16GBや24GBといった上位のビデオカードが必要になってしまいます。

世代が進むとより賢くなる

現在各AI企業はたえず進化しており、Qwenだったら同じパラメータサイズでも最新世代の「Qwen3.5:7b」のほうが「Qwen2.5:7b」よりずっと賢くなっているそうです。また、世代が進むと処理効率も上がるため、旧世代の「Qwen2.5:7b」と最新の「Qwen3.5:4b」が同等の賢さになることもあるそうです。パラメータが小さくなれば要求されるVRAM容量も減り、動作もサクサク軽くなります。

Googleの「Gemma4:e4b」に移行

……と、ここまでQwenの話をしてきましたが、今はGoogleの「Gemma4:e4b」を使っています。GoogleのLLMは「Gemma」がシリーズ名です。Qwenは3から思考モードが実装されたそうなのですが、延々と思考ループに入ってしまい、なかなか回答がでてこないことがあります。Gemma4も思考はすれど、ループにはならないのでこちらに乗り換えました。今のところ満足してます。

Google Gemma4:e4b
https://huggingface.co/HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive

上記のURLからGemma-4-E4B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf をダウンロードし、 Ollama に取り込むため、モデルファイルを作ります。
---
FROM ./Gemma-4-E4B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf

# システムプロンプトの設定
SYSTEM """
あなたは親切なアシスタントです。回答は簡潔に、日本語で答えてください。
"""

# パラメータ設定
PARAMETER temperature 0.7
PARAMETER top_p 0.9
---
パラメーターはよくわからず設定している。この辺りも理解できるようになりたいね…
Ollama に取り込み、起動
$ ollama create gemma4:e4b-uncensored -f ./Modelfile
$ ollama run gemma4:e4b-uncensored

参考資料
生成AIの出力を操る「temperature / topP / topK」完全ガイド(直感→仕組み→実務設定まで)
https://qiita.com/softbase/items/20c372b1e07873bae2b7

グーグルのオフィシャルではGemma4は temperature=1.0, top_p=0.95, top_k=64 を推奨しているらしい。

2026年8月19日水曜日

ComfyUI その後

これまでComfyUIをインストールし、チェックポイント配置し、ノード設定を行って、画像が生成できるところまで進めました。今回はテキスト生成AIのOllamaをインストールしてみようと思います。

$ curl -fsSL https://ollama.com/install.sh | sh
$ ollama run qwen2.5:7b

プロンプトが表示されるので、下記のような指示を出します。

あなたへの指示:
あなたは画像生成AI(SDXL / FLUX.1)のための優秀なプロンプトエンジニアです。
私が日本語で「描きたいイメージ」を伝えたら、それを元に高画質な画像を生成するための英語プロンプトを作成してください。

出力フォーマット:
1. Positive Prompt (英語文体・またはカンマ区切り)
2. Negative Prompt (英語文体・またはカンマ区切り、簡潔に)
3. 日本語の訳・情景解説

その後、描きたい絵を日本語で入力します。

>>> 夏の昼下がりにひまわりを持って微笑んでいる女性

### 1. Positive Prompt
a female holding a sunflower with a smile in the middle of a summer afternoon

### 2. Negative Prompt
unnatural poses, distorted face, extra limbs, low resolution, bad anatomy, extra fingers, wrong number of fingers

### 3. 日本語の訳・情景解説
夏の昼下がり、明るい太陽の光の中で、ひまわりを持って微笑んでいる女性を描きたいです。背景は
太陽の光が差し込む明るいシーンで、ひまわりはその女性の手にしっかりと持たれており、微笑んだ
表情が特徴的です。全体的に優しく、明るい雰囲気を伝える絵になります。

出力されたプロンプトをComfyUIに入力すると、それっぽいイメージの絵が生成されます。
そこから更に自キャラの特徴を入れていくと
はい!かわいい!というわけで2年前と同じ感じで作ってみました。

次はUbuntu 28.04がでたあたりで、また画像生成AIを試して進化の度合いを確かめたいと思います。

2026年8月17日月曜日

ComfyUI の続き

前回はComfyUIを導入して、起動するところまで進めましたが、難解すぎるUIに困惑してしまいました。
直感的に使うならStable Diffusion WebUIのほうがいいかもしれない、少なくともモデルを選択してプロンプトを入れれば画像生成できるし。ComfyUIは画像生成に必要なノードというものをつなげていき、最終的に画像を保存するっていう流れになっているようです。色々テンプレートがあるので、そこから始めるのもいいかもしれませんが、テンプレートも多種多様すぎてどれを選べばいいのかわからない。

で、自分なりにこれが必要最小限のノードかなっていうのがこの形です。
左からモデル、次にプロンプト、画像サイズをKサンプラーに入力し、VAEを通して、最後は画像を保存する。左から右にデータが流れる感じでノードを接続していくと勝手に解釈しました。前にSteamでUpload Labっていうゲームやったことあるんだけど、それを思い出した。

ノードには色々なものがあって、理解している人にとってはいろんなことができて便利なのかもしれない。ただ、初心者にはとっつきにくいと思いました。

起動はできて、ノードの設定が終わってもまだ画像の生成はできません。チェックポイントという絵を生成するための学習データが必要です。

前回同様このサイトからチェックポイントファイルをダウンロードします。
https://civitai.com/models

今回はこれを落としてみました。Geminiがおすすめしてきたので。
https://civitai.com/models/376130/nova-anime-xl

ダウンロードしたチェックポイントファイルは~/ComfyUI/models/checkpoints/に配置します。続く

2026年8月16日日曜日

ComfyUI

以前、画像生成AIのStable Diffusion WebUIをインストールして遊んでみたのがおよそ2年前でした。

Stable Diffusion web UI
https://u1f.blogspot.com/2024/09/stable-diffusion-web-ui.html
Stable Diffusion web UI の続き
https://u1f.blogspot.com/2024/09/stable-diffusion-web-ui_01346362620.html
Stable Diffusion web UI のその後
https://u1f.blogspot.com/2024/09/stable-diffusion-web-ui_0784456881.html

この2年の間にもAIは目覚ましい進化を遂げ、画像生成AIもComfyUIという別のツールが主流になっているようです。今回はUbuntu 26.04にComfyUIを導入し遊んでみようと思います。

以前ならインストール手順はREADMEを見て導入したりするんだけど、今回はGeminiに聞いて導入をしました。やっぱりAIで世界は変わりつつあるのかもしれない。

必要なツール類のインストール
$ sudo apt update
$ sudo apt install -y git python3-pip python3-venv wget curl

GitリポジトリからComfyUIをクローン
$ cd ~
$ git clone https://github.com/comfyanonymous/ComfyUI.git

Pythonの仮想環境を作成して、動作に必要なモジュール類をインストールする
$ cd ComfyUI
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install --upgrade pip
$ pip install torch torchvision torchaudio

正しくCUDAとGPUが認識されているかテスト
$ python -c "import torch; print('CUDA available:', torch.cuda.is_available()); print('Device:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
CUDA available: True
Device: NVIDIA GeForce RTX 2080

更に必要なモジュール類をインストール
$ pip install -r requirements.txt

ComfyUIの実行
$ python main.py --fp32-vae

自分がテストした環境はRTX2080で--fp32-vaeという引数をつけないと壊れた画像しか生成されなかった。通常なら引数は必要ないはず、このあたりもGeminiが全部教えてくれた。起動すると、http://localhost:8188にアクセスしろみたいなメッセージが表示されるのでブラウザでアクセスするとComfyUIの画面が表示される。
えーっと…なにこれ… 続く

2026年8月1日土曜日

Ubuntu 26.04 LTS インストール後の作業

今月の8/27に26.04.1がでるらしい。サブPCに26.04をインストールしたのでインストール後の手順をまとめておく。

Ubuntu 24.04 LTS インストール後の作業
https://u1f.blogspot.com/2024/05/ubuntu-2404-lts.html

以前はChromeを使っていたのだが、広告フィルターを使えなくしたり色々と使い勝手が悪くなったのでFireFoxに乗り換えました。UbuntuにはFirefoxが標準搭載なのでブラウザはデフォルトのまま使ってます。テキストエディタはウェブ版を、debで入れるのはSteamくらいしかない。

Visual Studio Code
https://vscode.dev/
Steam
https://store.steampowered.com/about/

あとは細々としたものを

Gnome の拡張機能を入れるソフトをインストール。以下の拡張機能をインストールしてる。
$ sudo apt install gnome-shell-extension-manager
$ extension-manager
* RunCat
* Allow Locked Remote Desktop

Gnomeのカスタマイズのソフトを入れて、キーボードのキーを入れ替えます。
$ sudo apt install gnome-tweaks
キーボード > 追加のレイアウトオプション > ctrl position > caps lock を ctrl として扱う

Intel の内蔵グラフィックを使うときに入れるモジュール。動画再生支援機能。
$ sudo apt install intel-media-va-driver-non-free
$ sudo apt install vainfo

Flatpak というアプリストアをインストールします。UbuntuにはSnapという同様の機能があるのですがMoonlightとか使っているとたまに落ちたりします。Flatpak版のほうが安定してるし、内容も充実してる印象です。
$ sudo apt install flatpak
$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
$ flatpak install flathub com.moonlight_stream.Moonlight
$ flatpak install flathub org.remmina.Remmina

生成AIを試してみる
https://u1f.blogspot.com/2026/08/comfyui.html

2026年1月19日月曜日

Linux で G600

ゲーミングデバイスは基本 Windows 向けで Linux に正式に対応しているものは見たことがありません。愛用中の Logicool G600 もメーカーからでているのは Windows 専用ソフトだけで Linux 向けは存在していません。ですが、なければ作っちゃおうっていうのがオープンソースソフトウェアのすごい所で Linux 向けのゲーミングマウス設定ツールが存在しています。
Piper というツールで Ubuntu でも簡単に導入できます。

sudo apt install piper

G600 を接続すると上の画像のようにちゃんとマウスを認識して、各ボタンの設定を変更することができます。基本マウス内のオンボードメモリの設定を書き換えるタイプのようです。

GシフトボタンがF12に設定されていたので、試しにEndキーに書き換えてみたいと思います。Gシフトのボタンのギアマークを押し、設定したいキーを入力します。
Apply ボタンで設定を適用。最後にメインウィンドウ上の Apply で設定完了です。

確認のため、Windows 環境に G600 マウスを接続し LGS で確認してみた所、ちゃんと End キーに書き換えられていました。
Piper は G600 以外のゲーミングマウスにも対応しています。対応デバイスはこちらにリスト化されています。

2026年1月14日水曜日

リモートデスクトップツール Moonlight Sunshine

リモートデスクトップといえば、Windows標準の RDP をはじめ、サードパーティー、オープンソースなど色々なものがありますが、最近ゲーム用のリモートデスクトップツールがあるのを知りました。

ゲーム用で有名どころといえば、以下の2つ
* Moonlight/Sunshine (URLは後述)

今回は、オープンソースの Moonlight と Sunshine を試しに使ってみたので記録に残しておく。かつて NVIDIA GameStream というリモートでゲームをプレイする機能があったそう (現在は削除) なのですが、これと互換性のあるツールとしてできたもののようです。NVIDIA 発のリモートデスクトップなのでゲーム向けってわけですね。

サーバー側が Sunshine、クライアント側が Moonlight となっています。

Sunshine

Moonlight

ちなみに Moonlight は Ubuntu App Center に登録されているため、アプリセンターから簡単にインストールできます。(これがこのツールを選んだ理由でもある) 今回は Windows 側に Sunshine、Linux 側に Moonlight を入れてリモートでゲームが遊べることを確認します。

◆ Sunshine
Windows 版のインストーラ(Sunshine-Windows-AMD64-installer)をダウンロード、インストールする。タスクバーにSunshineが常駐するので、右クリックしてOpen Sunshineを選択。

ウェブブラウザが開くので、最初にユーザー名とパスワードを登録する。これは設定画面を開く際に必要になる。ブラウザの警告画面は無視して先に進んでOK。
設定はほぼ自動で良くて、自分の場合はNVENCのプリセットをP1→P5に変更したくらい。P1が画質が悪くて速度が速く、P7へ行くと画質が良くなり速度が遅くなる。

◆ Moonlight
Ubuntu 側で App Center から Moonlight で検索するとアプリが見つかるのでインストール。起動すると Windows 側のPCが一覧に出てくるので、クリックすると4桁のPINが出てきます。
Sunshine側で PIN を入力すると認証完了です。
ストリーミングする映像とビットレートを選択します。フルHDなら1080P、WHQLなら1440Pにするのが良いのかな。ビットレートは40Mbpsくらいあれば良さそう。高くしすぎるとFF14のゲームサーバーとの通信に支障がでて、周りの人間がワープしだします。
コーデックを自動からH265に指定します。自動だと互換性を重視してH264が選択されてしまうようです。送信側受信側ともにRTX30/40シリーズを使っている場合はAV1にすると、さらに効率のいいコーデックが使えます。

設定に関してはこんなところです。ゲーム用だけあって有線LANでほぼラグは感じないで遊ぶことができています。設定値はもう少し検証しつつ詰めていこうと思います。

2024年9月12日木曜日

Stable Diffusion web UI のその後

生成AIって底なしの沼ですね。これ以上こだわりだすと新しいPCとすごいグラボが欲しくなってしまいそうなのでそっと閉じることにしました。

ただ、調べているうちにすごく有用なサイトがあったので、後日再開したくなったときのために残しておこうと思います。

【準備編】低スぺPCでもStableDiffusionでAIお絵描きを楽しんじゃおう!(NVIDIA GeForce GTX1650 VRAM4GB)

低スペックで生成AIするためのTipsサイト。準備編の後は実際にイラストを作る実践編になり、どのようにしてイラストを仕上げていくのか手順がとても参考になります。

【Stable Diffusion】プロンプト例・呪文一覧表。AI美女の作り方について

AIにどんな絵を描いてもらうかの指示がプロンプト。とても長いプロンプトを記述することになるので呪文と呼ばれるようです。モデルに対して構図やポーズ、どの視点から描くか、服装や背景などが参考画像と一緒に一覧でまとめられています。

Pony Diffusion公式おすすめのプロンプトの書き方を読む

使用しているチェックポイントが Pony 系統なのですが、作者が推奨しているお約束みたいなものがあるようです。Cvitai 等で公開されている画像には作ったときのプロンプトも一緒に掲載されています。その中に score_9 などの見たことないプロンプトがあって、調べていたら知りました。学習データによっては独自のプロンプトがあるみたいですね。

最初に目標としていた Discord のアイコンは↑の画像になりました。元々にゃんこ大戦争のフラワーキャットをアイコンにしていたので、それをモチーフにしました。

2024年9月5日木曜日

Stable Diffusion web UI の続き

前回の続き。Stable Diffusion web UI が使えるようになったので、早速使っていきます。最近所属している CWLS で Discord が導入されました。Discord 用に自キャラミコッテのアニメ風アイコンを作ることを目標にしようと思います。ちなみに Discord のアバターの推奨サイズは512 x 512 ピクセルだそうです。

まずはプロンプトに自分のキャラクターの特徴を入力していきます。

girl, cat ear, purple hair color, braid, green eye color

で、Generate ボタンを押してみる。
猫耳少女の画像が生成できました。何度も Generate すると、違うパターンの画像がどんどん生成されます。たしかにこれはすごい。驚きです。

ミコッテといえば顔に模様があったり、耳のところをピンクにするには英語でどうやって伝えればいいのだと頭を抱えていたのですが、色々調べてたら普通に Miqo'te が通じるらしい。

Miqo'te, purple hair color, braids, green eye color, smile

で、Generate ボタンを押してみる。
お前…ミコッテが理解できるんか!AIさんが優秀過ぎて驚愕した。もうちょっとパラメータをいじって理想のアイコン画像ができないかいろいろ試してみようと思います。

何度も生成しているとOSごとフリーズすることがあり、原因がPC/グラボなのかUbuntu側の問題なのかわからない状況でしたが、Stable Diffusion 起動時に表示される TCMalloc 関連の警告メッセージを消すために google-perftools を入れたら安定した気がする。

$ sudo apt install google-perftools

一応フリーズしたときの対処法も、もしものときのために残しておく。

参考にした情報

生成AIにておはミコする(この日記は削除するかもしれません)

Ubuntuフリーズ時のコマンド

2024年9月4日水曜日

Stable Diffusion web UI

Ubuntu Linux 24.04.1 の環境に Stable Diffusion web UI をインストールしてみました。画像生成って VRAM が一杯必要だとは聞いていたので、自分には環境がないので無理だと思っていたのですが VRAM が少ないと生成時間が長くなるだけで出来ないわけではないと知ってお試しでもできるのならやってみることにしました。

Stable Diffusion web UI

やり方は README に書いているんだけど、そのまま従ってもちょっと足りないものがあって少しハマりました。

$ sudo apt install wget git python3 python3-pip libgl1 libglib2.0-0
$ sudo apt install git python3-pip google-perftools
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install python3.11 python3.11-venv
$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
$ cd stable-diffusion-webui

webui-user.sh を先頭のコメントを外して編集する
---
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
export COMMANDLINE_ARGS="--medvram"

# python3 executable
python_cmd="python3.11"

# install command for torch
export TORCH_COMMAND="pip install torch==2.4.0+cu124 --extra-index-url https://download.pytorch.org/whl/cu124"
---
ターミナルから webui.sh を実行します。スクリプトが勝手に色々ダウンロードするので待ちます。成功したら自動的に Firefox が立ち上がって画像生成用の画面が表示されるはず。
起動はできても、実はまだ画像の生成はできません。チェックポイントという絵を生成するための学習データが必要です。

とりあえずここのサイトから好みの絵柄を見てチェックポイントファイルをダウンロードしてみるといいと思います。

私はこれを落としてみました。学習データは結構大きくて6GBくらいあります。

落としたファイルは ~/stable-diffusion-webui/models/Stable-diffusion に格納します。これでウェブ画面側でチェックポイントが認識されるはず。

あとはプロンプトに生成したい画像の入力して Generate ボタンで画像が生成できると思います。ここらへんは参考情報の一番下の超基本操作解説を見るとよくわかります。

参考にした情報

Stable Diffusion web UI

【第25回】Stable DiffusionをUbuntuとGTX 1650で動作させる方法

Ubuntu 24.04 で Automatic1111 する

Stable Diffusion WebUIの超基本操作を解説

2024年5月5日日曜日

Ubuntu 24.04 LTS インストール後の作業

4/25 に Ubuntu Linux の長期サポート版の最新版 24.04 がリリースされました。リリースした直後は割と不具合が多くて、夏頃に出る 24.04.1 頃に乗り換えるのが賢い選択だと思うのですが、今から 22.04.4 を入れて 3ヶ月後に 24.04.1 を入れ直すのも面倒なので不具合は許容するつもりでインストールしました。

実際に使ってみると結構仕様変更が多くて戸惑いました。まずは Chrome ブラウザをインストールしようとしたら deb ファイルを直接インストールすることができなくなっていました。ググったら deb ファイルのインストーラを入れる必要があるとのことでした。

$ sudo apt install gdebi

gdebi を入れなくてもアプリセンターで deb ファイルを開くとインストールできるみたい。そっちのほうがおすすめなようです。やり方はこちら

あとは公式サイトから deb ファイルをダウンロードしてインストールします。

Steam

さらに、Ubuntu の App Center からアプリをインストールします。
* GIMP (画像編集)
* VLC (メディアプレイヤー)

あとは細々としたものを

$ sudo apt install python-is-python3
$ sudo apt install python3-venv
$ python3 -m venv slackbot
$ source slackbot/bin/activate
(slackbot) $ pip3 install requests
(slackbot) $ pip3 install lxml
(slackbot) $ pip3 install beautifulsoup4
(slackbot) $ pip3 install slack_bolt
(slackbot) $ deactivate

Python は仮想環境作らないとモジュールがインストールできなくなってて不便でした。セキュリティとか大元の環境を壊さないためとか色々あるんだろうけどやっぱり不便。慣れの問題なのかなぁ。

$ sudo apt install gnome-shell-extension-manager
$ extension-manager

Gnome の拡張機能を入れるソフトをインストール。以下の拡張機能をインストールしてる。
* RunCat
* Allow Locked Remote Desktop

2022年8月18日木曜日

Ubuntu 22.04 LTS インストール後の作業

2年前に中古で購入した HP EliteDesk 800 G2 に Ubuntu 20.04 をインストールして使ってきました。数か月前に最新版の Ubuntu 22.04 がリリースされ、8月に 22.04.1 のポイントリリースが出て安定してきたと思われるので、そろそろ頃合いかと思ってアップグレードではなくOSの入れ替えを行いました。

Windows11に見捨てられてしまったSkylake世代の枯れたスペックのPCなのでLinuxで特に動かないデバイスもなくあっさりと動作しています。とりあえず前回に倣って今回追加でインストールしたソフト類をまとめていきます。

まずはブラウザとテキストエディタ。それぞれのサイトから Debian 用の .deb ファイルをダウンロードしてインストールします。

Chrome

Visual Studio Code

そして、前回同様 Ubuntu のストアから GIMP と VLC をインストールしました。

残りは細々としたものを入れていきます。

python コマンドがない
$ sudo apt install python-is-python3

新しい Ubuntu には python コマンドが存在しないので python コマンドで python3 が実行されるようにする。

Slack bot 用のモジュール類
$ sudo apt install python3-pip
$ sudo pip3 install slack_bolt
$ sudo pip3 install requests
$ sudo pip3 install lxml
$ sudo pip3 install beautifulsoup4

Slack のライブラリを slackbot から slack_bolt に乗り換えたのでモジュール名も変更です。前回は Mozc の設定ツールを入れたりしましたが、今回はデフォルトでインストールされていたので今回は省略できます。

また画面共有は VNC から Windows リモートデスクトップと同じ RDP に変わったとのことなので試してみたのですが、Windows 標準のリモートデスクトップ接続ツールから接続して操作をすることができました。vncviewer とはお別れ出来そうです。

2021年10月29日金曜日

Windows11 で WSL2

Windows11 は最初から Windows Terminal がインストールされているし WSL を使うには便利な環境ですね。Ubuntu の導入も簡単でコマンドラインで簡単にインストールできます。

wsl --list --online
wsl --install -d Ubuntu-20.04

コマンド実行後のインストールは自動的に進んで、最後にユーザー名やパスワードを設定するだけです。インストール直後はアップデートを実施します。

sudo apt update
sudo apt upgrade

あとは、いつも使うコマンド類をインストールします。

sudo apt install python-is-python3
sudo apt install python3-pip
sudo pip3 install slack_sdk
sudo pip3 install lxml
sudo pip3 install beautifulsoup4

本当に便利ですね。

2021年10月22日金曜日

Let's Note CF-NX4 に Ubuntu 20.04 をインストール

レッツノートに Ubuntu Linux 20.04 をインストールしました。いくつか引っかかることがあったので、再インストールしたときのために情報を書き残しておく。

* 音が出ない問題

端末で alsamixer を実行し、F6 キー → HDA Intel PCH を選択 → headphone の音量を上げると内部スピーカーから音が出るようになります。

$ alsamixer 

再起動すると headphone の音量が 0 に戻ってしまうので、alsamixer の設定をファイルに出力して起動時にファイルを読み込んで設定を復元させる。

$ alsactl --file ~/.config/asound.store store

アプリ一覧から『自動起動するアプリケーションの設定』を実行して、追加ボタンを押し

alsactl --file ~/.config/asound.store restore

が自動実行されるように設定します。

(参考情報)
ubuntu 20.04の音がでない問題を解決する

* ホイールパッド

レッツノートといえばホイールパッド。ホイールパッドがなかったらレッツノート買ってない。Linux でもホイールパッドが使えるようなので設定します。

まずタッチパッドのドライバをインストールします。

$ sudo apt install xserver-xorg-input-synaptics

設定ファイルを変更します。

$ sudo gedit /usr/share/X11/xorg.conf.d/70-synaptics.conf

17行目あたりから3行を追加する。(先頭の + が追加した行で実際に + は入力しない)

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
MatchDevicePath "/dev/input/event*"
+ Option "CircularScrolling" "1"
+ Option "CircularScrollTrigger" "0"
+ Option "CircScrollDelta" "0.3"
EndSection

再起動すると設定が有効になります。ドライバが変わるためか、マウスカーソルの速度がかわるので、設定→マウスとタッチパッド→タッチパッドの速度でお好みの設定するといいと思います。

(参考情報)
Let's Noteのホイールパッドを快適に使おう@lubuntu

2020年9月20日日曜日

Ubuntu 20.04 LTS インストール後の作業

先日、新しく買った PC に Ubuntu 20.04 LTS をインストールしましたが、なんのトラブルもなウィザード通りにやってただけなので特筆すべきものはなし。

とりあえず追加でインストールしたソフト類をまとめていきます。

まずはブラウザとテキストエディタ。それぞれのサイトから Debian 用の .deb ファイルをダウンロードしてインストールします。

Chrome

Visual Studio Code

そして、Ubuntu のストアから Gimp と VLC をインストールしました。

残りは細々としたものを入れていきます。

python コマンドがない
$ sudo apt install python-is-python3

新しい Ubuntu には python コマンドが存在しないので python コマンドで python3 が実行されるようにする。youtube-dl コマンドが実行できるようになる。

Slack bot 用のモジュール類
$ sudo apt install python3-pip
$ sudo pip3 install slackbot
$ sudo pip3 install requests
$ sudo pip3 install lxml
$ sudo pip3 install beautifulsoup4

Mozc の設定画面
$ sudo apt install mozc-utils-gui 

スペースは絶対半角派としては全角スペースがゆるせないのですが、日本語入力ツールの設定ツールがなんとデフォルトで入ってないらしい。

ifconfig コマンドが使えないので
$ sudo apt install net-tools

IPアドレスを確認するときに使うんだけど、デフォルトでは入ってなかった。今は ifconfig にかわる別のコマンドでもあるんだろうか?

ファイルからNASを参照する
$ sudo apt install samba

smb.conf の設定は以下のURLを参考にした。

画面共有

特にインストールするものはなくて設定するだけ

2018年5月21日月曜日

Microsoft Store に Ubuntu 18.04 が来ました

Microsoft Store に Ubuntu 18.04 が来てました。これで Windows 10 上でも最新の Ubuntu が利用できます。ところで、Ubuntu を起動すると /home/user というホームディレクトリでシェルが起動します。

Windows側からLinux側のストレージを参照するには C:\Users\[Windowsのユーザー名]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_(ランダムな文字列)\LocalState\rootfs\home\user というパスに格納されています。

Linux 側から Windows 側を参照する場合は /mnt/c 以下に C ドライブがマウントされています。

Windows のテキストエディタで Python スクリプトを書いて、Linux から実行するならシンボリックリンクを作成しておくと便利だと思います。
ln -s /mnt/c/Users/[Windowsのユーザー名]/OneDrive/Documents ~/Documents
自分は大体 OneDrive 上のフォルダにコードを保存しているので、ここに直接シンボリックリンクを張ってしまいます。コーディングとテスト実行が捗りそうです。

2018年5月20日日曜日

Windows Subsystem for Linux の導入

前回、Windows10 の新バージョンをインストールしたので、Windows Subsystem for Linux というものを導入します。Windows Subsystem for Linux は、Windows10 上で Linux 環境を動作させることができるツール(?)機能(?)です。

Windows Subsystem for Linux を導入する

タスクバーの『ここに入力して検索』のところに『control』と打つと、コントロールパネルが起動できます。『プログラム』>『Windowsの機能の有効かまたは無効化』を選ぶ。
 『Windows SubSystem for Linux』にチェックを入れます。
Windows Update からモジュールをダウンロードするかと聞かれるので、ダウンロードを選びます。しばらくすると機能が有効になります。

Microsoft Store から Linux を入手する

Store から Linux で検索するといくつかディストリビューションが見つかります。

最近はご無沙汰だが過去に使っていた Ubuntu もあるのでコレをチョイスしました。Ubuntu はつい先日 18.04 が出たばかりですが、ストアにあるバージョンは 16.04 みたいです。これで SSH とか SCP とか Python とか使い放題だ!

2010年12月19日日曜日

ddo.jp 自動更新スクリプト

せっかく光を引いたので、EeePC 4GにUbuntu Linux Serverをインストールして、Webサーバーをたてました。JCOMとは違って、光はモデムの電源を入れなおすとIPアドレスが変わります。ひょっとしたらDHCPの更新でもIPアドレスが変わることもあるのかも。
逆に言うと、JCOM は固定IPかよってくらいIPアドレスがまったく変わらない仕様のようです。
とりあえず、IPアドレスがわからなくなると外から接続できなくなるので、無料DDNS の ddo.jp を使ってみることにしました。

http://ddo.jp/

ブラウザで上記URLにアクセスして登録した後、IPアドレスが変更になったときにIPアドレスを自動で再登録するようにスクリプトを組みました。
元々は、ここにあったVine用のものを使ってみたものの、Ubuntu(?)だからかうまく動かなかったので、スクリプトをちょっと弄りました。


#!/usr/bin/perl
#
$CRT_IPF = '/tmp/CRT_IP.dat';
$NEW_IPF = '/tmp/NEW_IP.dat';
$LOG = '/tmp/ddns.log';

open(INPUT,$CRT_IPF);
$CRT_IP=<INPUT>;
close(INPUT);

system("/usr/bin/wget -q -O $NEW_IPF http://info.ddo.jp/remote_addr.php");
open(INPUT,$NEW_IPF);
@xx = <INPUT>;
$c = $xx[1];
$stp = index($c,"REMOTE_ADDR:")+12;
$edp = length($c);

print "c = $c\n";
print "stp = $stp, edp = $edp\n";

$NEW_IP = substr($c,$stp,($edp-$stp));
close(INPUT);

print "New IP: $NEW_IP\n";
print "Current IP: $CRT_IP\n";

if ($NEW_IP ne "" and $CRT_IP ne $NEW_IP) {
open (OUTPUT ,">$CRT_IPF");
print OUTPUT $NEW_IP;
close OUTPUT;

print "IP Address update: $CRT_IP to $NEW_IP\n";
system("/usr/bin/wget -q -O - 'http://free.ddo.jp/dnsupdate.php?dn=[登録名].ddo.jp&pw=[パスワード]'");

$now_string = localtime;
open (OUTPUT ,">>$LOG");
print OUTPUT "$now_string DDNS IP Address Updated. $CRT_IP to $NEW_IP\n";
close OUTPUT;
}


更に、これを cron で15分毎に自動で動くように設定します。
/etc/cron.d/ddns というファイルを作って、以下の2行を記入します。


# DDNS
*/15 * * * * hogehoge /home/hogehoge/ddns/ipcheck.pl


IPアドレスが変わっても15分後には新しいIPアドレスでドメインを辿れるようになります。