備忘録: 今更Stable Diffusion WebUI (A1111)セットアップ on Windows, ただしuvで
はじめに
以下は実際のコマンド履歴を下にAIに書かせた内容。
1. uv と Python 環境
cd C:\msys64\home\yumetodo\stable-diffusion-webui powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" $env:Path = "C:\Users\yumetodo\.local\bin;$env:Path" uv python pin cpython-3.10.6-windows-x86_64-none
2. 仮想環境作成
uv venv
3. 必須依存ライブラリ
uv pip install -r requirements.txt uv pip install pytorch-lightning==1.9.4 uv pip install "pydantic<2" uv pip install git+https://github.com/openai/CLIP.git uv pip install sentencepiece uv pip install "gradio==3.41.2"
4. PyTorch (CUDA 12.6 対応ビルド)
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
5. 高速化ライブラリ (任意)
uv pip install xformers==0.0.32.post2 --index-url https://download.pytorch.org/whl/cu126
6. リポジトリ補助モジュール
mkdir repositories cd repositories git clone --filter=blob:none https://github.com/Stability-AI/stablediffusion.git stable-diffusion-stability-ai git clone --filter=blob:none https://github.com/Stability-AI/generative-models.git git clone --filter=blob:none https://github.com/salesforce/BLIP.git git clone --filter=blob:none https://github.com/crowsonkb/k-diffusion.git git clone --filter=blob:none https://github.com/AUTOMATIC1111/stable-diffusion-webui-assets.git cd ..
stable-diffusion-stability-aiいらんきがする
7. モデル配置
models/Stable-diffusion/に.safetensorsまたは.ckptを置く
例:v1-5-pruned-emaonly.safetensors
8. 起動
uv run .\webui.py --xformers
✅ ポイント整理
- Python 3.10.6 を固定 → WebUI が安定
- PyTorch cu126 を直接インストール → RTX 3060 + CUDA 12.6 ドライバで動作
- pydantic<2 → API モデル生成エラー回避
- clip / sentencepiece → SD 系モデルのテキストエンコーダ依存を解決
- stable-diffusion-webui-assets → UI 静的ファイルエラー回避
- xformers → 高速化(任意)
⚠️ 注意
- SD3.5 系 (Medium / Large / Turbo) は A1111 本家ではまだ未対応。
→ ComfyUI や SD.Next を使うのが現実的。 - A1111 本家で安定して動かすなら SD1.5 / SD2.1 / SDXL 1.0 がベスト。
2025年07月時点のvscodeのcline拡張からAWS Bedrockのモデルを使う方法
はじめに
個人利用なら正直わざわざAWS Bedrockを使う意味があるのかは疑問なのだが、まあ会社がそうしてるので、同じ構成に近づけとくほうが考えることが減って良さそうである。
前提
- AWSのアカウント自体はある
- 請求情報が古くなってたので更新するなどはした
- Amazon Bedrockを使ったことはない
- VSCodeには手元とRemote(ArchLinux)両方にclineの拡張は入れたけどそれ以上は何もしてない
- ホスト: Windows11
- VM: archlinux
- VSCode Remote-SSHを使用してvmのarchlinux上で作業するしclineも使う
- archlinux にaws cli 導入済み
Bedrock利用開始
自分は気分でオレゴンリージョン(us-west2)を選んだ。リージョンによっては使えないモデルとかあるので注意する。

モデルアクセス→モデルアクセスの変更で利用したいモデルを選んで

初回は↓みたいなことが聞かれるが日本語で書いて通った。
- 会社名(個人なら GitHub アカウントでも通ることがある)
- ウェブサイトURL(ポートフォリオやSNSでもOK)
- ユースケース(例:「VSCode Remote-SSH で Cline を使って Claude にコードレビューを依頼したい」など)
数時間から数日なんて話もあったが、今回は1分かからず通過した。
IAM
会社だとIAM Identity Centerを使ってるのでAWS SSOしてるのだが、個人では別に有り難みがないし、何よりもめんdなので伝統と信頼のAccessKey/SecretKeyを使うことにする。
こんな感じのポリシーを作る。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "bedrock:ListInferenceProfiles", "ce:GetDimensionValues", "bedrock:InvokeModel", "ce:GetCostAndUsage", "bedrock:InvokeModelWithResponseStream", "ce:GetCostForecast", "ce:GetUsageForecast" ], "Resource": "*" } ] }
- Resource: 厳密にやるならAI Modelをここで指定するのだろうが、そこまでしたい需要がないのでAnyに
bedrock:ListInferenceProfiles: なくてもいいのだが、aws bedrock list-inference-profilesコマンドを叩きたいのでつけてる。
あとはこれを割り当てたIAMユーザーを作ってAccessKeyを発行する
~/.aws/config
[bedrock] region = us-west-2 output = json
~/.aws/credentials
[bedrock] aws_access_key_id = <access key here> aws_secret_access_key = <secret key here>
のように記述する。aws configureコマンドで作ったらdefault profileにされたので手動でファイルを書き換えてbedrockにリネームした。別にdefaultじゃなきゃ何でも良いのだが。
Clineの設定
~/.cline/config.yaml
provider: bedrock region: us-west-2 models: - id: us.anthropic.claude-sonnet-4-20250514-v1:0 name: Claude Sonnet 4 provider: bedrock - id: us.anthropic.claude-3-7-sonnet-20250219-v1:0 name: Claude 3.7 Sonnet provider: bedrock - id: us.anthropic.claude-3-haiku-20240307-v1:0 name: Claude 3.5 Haiku provider: bedrock - id: us.deepseek.deepseek-coder:20240601 name: DeepSeek-R1 provider: bedrock
us.のprefixの意味は後述するが、リージョンによって読み替えが必要。

- API Provider: Amazon Bedrock, AWS Profile
- AWS Profile Name:
bedrock- awsのprofile名に合わせる
- AWS Region:
us-west-2- modelを利用申請したリージョン
- Use Prompt caching:
true - Model:
Custom - Model ID:
arn:aws:bedrock:us-west-2:679122520526:inference-profile/us.anthropic.claude-sonnet-4-20250514-v1:0- 後述するように推論プロファイルのみ対応するモデルを使う場合は推論プロファイルARNをかかないといけない。
- Base Inference Model:
anthropic.claude-sonnet-4-20250514-v1:0
推論プロファイル
AIくんに解説させた。↓
推論プロファイルは、AWS Bedrockの機能であり、生成AIのコストとリソース使用率を管理・追跡し、回復性とスループットを向上させるために設計されています。
- 推論プロファイルの種類:
- システム定義(クロスリージョン推論プロファイル): Bedrockサービスによって事前に定義されており、モデルのリクエストを複数のリージョンにルーティングすることで、回復性を高め、トラフィックの急増を管理します。これらは、サポートするモデルと対象リージョンに基づいて命名され、例えば
us.anthropic.claude-3-7-sonnet-20250219-v1:0のような形式をとります。 - アプリケーション定義(ユーザー定義)推論プロファイル: ユーザーが作成し、コストとモデルの使用状況を追跡したり、カスタムのコスト配分タグを適用したり、リクエストを単一または複数のリージョンにルーティングしたりするために使用されます。
- システム定義(クロスリージョン推論プロファイル): Bedrockサービスによって事前に定義されており、モデルのリクエストを複数のリージョンにルーティングすることで、回復性を高め、トラフィックの急増を管理します。これらは、サポートするモデルと対象リージョンに基づいて命名され、例えば
- 特定のモデルにおける必須性: 重要な点として、Claude Sonnet 4やClaude 3.7 Sonnetのような一部のモデルは、オンデマンド利用であっても、推論プロファイルを介した推論のみをサポートしています。これは、ベースモデルIDを直接使用して呼び出すことができないことを意味します。
Claude Sonnet 4のようなモデルがオンデマンド利用であっても推論プロファイルを必須とするのは、AWSが推論プロファイルを新しい/より高度なモデルの基盤となる抽象化レイヤーとして利用していることを示唆しています。これにより、基盤となるインフラストラクチャの管理、クロスリージョンルーティングなどの機能の実装、およびリソース割り当てのより効果的な最適化が可能になり、同時に「従量課金制」の料金モデルを提供することができます。このような設計パターンは、モデルの呼び出しとリソース管理を一元化する役割を担っています。
Model ID
一口にModel IDといっても色々ある。またしてもAI解説↓
| 呼び出し方法 | modelId形式の例 | 使用例 | 備考 |
|---|---|---|---|
| ベースモデルID | anthropic.claude-sonnet-4-20250514-v1:0 | 推論プロファイルを必要としないオンデマンドモデルの直接呼び出し。 | 特定のモデルでは、オンデマンドであっても推論プロファイルが必須となる場合があります。 |
| システム定義推論プロファイルID | us.anthropic.claude-sonnet-4-20250514-v1:0 | クロスリージョン推論など、システムが管理する推論プロファイルを介したモデル呼び出し。 | Claude Sonnet 4など、一部のモデルではオンデマンド利用でもこの形式が必須です 1。地域プレフィックス( us.など)が含まれます 24。 |
| 推論プロファイルARN | arn:aws:bedrock:us-east-1:123456789012:inference-profile/my-sonnet-profile | ユーザーが作成したアプリケーション推論プロファイルを介したモデル呼び出し。コスト追跡やカスタムルーティングに利用。 | modelIdパラメータにARNを指定します 8。 |
| プロビジョンドスループットARN | arn:aws:bedrock:us-west-2:123456789012:provisioned-model/my-custom-model-pt | カスタムモデルや、専用キャパシティを持つベースモデルの呼び出し。 | modelIdパラメータにARNを指定します 25。 |
推論プロファイルARNをどうやってしらべるかだが、
$ aws bedrock list-inference-profiles --region us-west-2 --profile bedrock | jq '.inferenceProfileSummaries[] | select(.inferenceProfileName | test("Claude Sonnet 4"))'
{
"inferenceProfileName": "US Claude Sonnet 4",
"description": "Routes requests to Claude Sonnet 4 in us-east-1, us-east-2 and us-west-2.",
"createdAt": "2025-05-20T00:00:00+00:00",
"updatedAt": "2025-07-25T19:30:55.377390+00:00",
"inferenceProfileArn": "arn:aws:bedrock:us-west-2:679122520526:inference-profile/us.anthropic.claude-sonnet-4-20250514-v1:0",
"models": [
{
"modelArn": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0"
},
{
"modelArn": "arn:aws:bedrock:us-east-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0"
},
{
"modelArn": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0"
}
],
"inferenceProfileId": "us.anthropic.claude-sonnet-4-20250514-v1:0",
"status": "ACTIVE",
"type": "SYSTEM_DEFINED"
}
こんな感じでinferenceProfileArnが求まる。これをするためにIAMにbedrock:ListInferenceProfilesを足しているのである。
雑にLinuxでDisk性能とか見る方法
hdparam
$ hdparm -tT /dev/mapper/vg_00-lv_root /dev/mapper/vg_00-lv_root: Timing cached reads: 15752 MB in 1.99 seconds = 7920.19 MB/sec Timing buffered disk reads: 602 MB in 3.01 seconds = 200.17 MB/sec
fio
[global]
ioengine=libaio
iodepth=1
size=1g
direct=1
runtime=60
directory=${TARGET}
stonewall
[Seq-Read]
bs=128k
rw=read
[Seq-Write]
bs=128k
rw=write
[Rand-Read-512K]
bs=512k
rw=randread
[Rand-Write-512K]
bs=512k
rw=randwrite
[Rand-Read-4K]
bs=4k
rw=randread
[Rand-Write-4K]
bs=4k
rw=randwrite
みたいな設定ファイルを作って
# mkdir fio_target
# TARGET_DIR="$(pwd)/fio_target"
# ls -l
-rw-rw-r-- 1 yumetodo yumetodo 329 8月 14 16:24 fio.txt
drwxr-xr-x 2 root root 6 8月 14 16:30 fio_target
# TARGET=${TARGET_DIR} fio -f fio.txt --output-format=json | tee /tmp/fioresult_hostname.json
すると計測できる。あとはjqでjq '.jobs[]|select(.jobname == "Seq-Read")|{"128kread_bw_bytes": .read.bw_bytes}'とかして必要なやつだけ取り出す
UnixBench
Dhrystone 2 using register variables 39643828.0 lps (10.0 s, 7 samples)
Double-Precision Whetstone 6746.9 MWIPS (8.9 s, 7 samples)
Execl Throughput 3371.3 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 533058.1 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 140689.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1581604.7 KBps (30.0 s, 2 samples)
Pipe Throughput 669822.4 lps (10.0 s, 7 samples)
Pipe-based Context Switching 80602.7 lps (10.0 s, 7 samples)
Process Creation 7833.5 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 5743.2 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1241.8 lpm (60.0 s, 2 samples)
System Call Overhead 415196.9 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 39643828.0 3397.1
Double-Precision Whetstone 55.0 6746.9 1226.7
Execl Throughput 43.0 3371.3 784.0
File Copy 1024 bufsize 2000 maxblocks 3960.0 533058.1 1346.1
File Copy 256 bufsize 500 maxblocks 1655.0 140689.9 850.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 1581604.7 2726.9
Pipe Throughput 12440.0 669822.4 538.4
Pipe-based Context Switching 4000.0 80602.7 201.5
Process Creation 126.0 7833.5 621.7
Shell Scripts (1 concurrent) 42.4 5743.2 1354.5
Shell Scripts (8 concurrent) 6.0 1241.8 2069.6
System Call Overhead 15000.0 415196.9 276.8
========
System Benchmarks Index Score 949.0
みたいな結果が得られる