3/2

2026

Apple SiliconでStable Diffusion — セットアップから自動生成まで

#Stable Diffusion#Apple Silicon#AI#画像生成#PythonApple SiliconでStable Diffusion — セットアップから自動生成まで

Apple SiliconでStable Diffusion — セットアップから自動生成まで

ゲレンデのリフトの上からスマホでNotionに「SD環境構築して」と書いたら、家に帰る頃にはStable Diffusionが使える状態になっていた。AIエージェント(足軽)が全部やってくれた。

この記事では、Apple Silicon MacでStable Diffusionをローカルで動かすセットアップ手順と、AIエージェントと連携して画像を自動生成する方法を書く。このサイトのサムネイル画像も全部この仕組みで生成している。

そもそもの目的は、ゲーム用のドット絵をStable Diffusionでリアルなイラストに変換することだった。iOSゲーム(PlayTime)に登場するキャラクターは100x100pxのドット絵スプライトで描かれている。これをimg2img1に通して、図鑑画面に載せるための一枚絵を自動生成したかった。

つまり最初からtxt2img2(テキストから画像生成)ではなく、img2img(画像から画像へのスタイル変換)がメインユースケース。ドット絵→リアルイラスト変換という実践的な目的があったからこそ、品質を追い求めてパラメータ実験を重ねることになった。

これが変換元のドット絵。100x100pxのキャンバスに描かれた、ミラージュキツネの卵と幼体。

変換元ドット絵: 卵(stage0)— 19x20pxの極小スプライト

変換元ドット絵: 幼体(stage1)— 可愛い子狐のドット絵

この小さなドット絵が、試行錯誤の末にE5パイプラインを通すと↓こうなる。

E5パイプラインで変換後: 卵の中に狐が眠る神秘的なイラスト

💡 19x20pxのドット絵が512x512の一枚絵に化ける。ただしここに至るまでに、背景黒化・顔崩壊・ピクセルグリッド残存など数々の失敗を経ている。


Stable Diffusionとは

テキストから画像を生成するオープンソースのAIモデル。クラウドサービスを使わずに自分のMacで動かせるのが最大のメリット。生成した画像の権利も気にしなくていい。

💡 ローカルで動かせる = クラウドAPI課金なし。好きなだけ生成できる。

環境情報

項目
マシンApple M4 Pro / 64GB RAM
Python3.10.14 (pyenv)
PyTorch2.10.0 (MPS対応)
diffusers0.36.0
モデルDreamShaper 8 (2.0GB)
生成速度約10-15秒/枚 (512x512, 20 steps)

セットアップ手順

1. Python環境の準備

pyenvでPython 3.10系をインストールする。3.10が安定していておすすめ。

brew install pyenv
pyenv install 3.10.14

2. 作業ディレクトリと仮想環境

mkdir -p ~/.claude-tmp/stable-diffusion-webui
cd ~/.claude-tmp/stable-diffusion-webui
python3.10 -m venv venv
source venv/bin/activate

3. PyTorchとdiffusersのインストール

Apple Silicon MacではMPS3(Metal Performance Shaders)を使って推論する。CUDA4は不要。

pip install torch torchvision
pip install diffusers transformers accelerate safetensors
pip install Pillow

4. モデルのダウンロード

DreamShaper 8を使っている。ファンタジー寄りの汎用モデルで、サムネイル生成にちょうどいい。

mkdir -p models/Stable-diffusion
curl -L -o models/Stable-diffusion/dreamshaper_8.safetensors \
  "https://huggingface.co/Lykon/DreamShaper/resolve/main/dreamshaper_8.safetensors"

📝 モデルファイルは約2GB。HuggingFaceから直接ダウンロードする。他のモデルも同じ方法で追加可能。

5. 生成スクリプトの作成

scripts/sd_generate.py として画像生成スクリプトを配置する。CLIからプロンプトを渡すだけで画像が生成される。

./venv/bin/python scripts/sd_generate.py \
  --prompt "your prompt here" \
  --output /path/to/output.png \
  --steps 20 --seed 42

AUTOMATIC1111は動かない

2026年時点で、有名なAUTOMATIC1111 WebUIはStability-AIのリポジトリ削除により起動不可になっている。Couldn't clone Stable Diffusion エラーが出る。代わりにHuggingFaceのdiffusers5ライブラリを直接使う構成がおすすめ。

⚠️ AUTOMATIC1111は2026年現在、そのままでは動かない。diffusersを直接使う構成を推奨。

基本的な使い方

テキストから画像生成 (txt2img)

from diffusers import StableDiffusionPipeline
import torch

pipe = StableDiffusionPipeline.from_single_file(
    "models/Stable-diffusion/dreamshaper_8.safetensors",
    torch_dtype=torch.float32,
    safety_checker=None
)
pipe = pipe.to("mps")
pipe.enable_attention_slicing()

image = pipe(
    prompt="fantasy landscape, mountains, sunset, digital painting",
    negative_prompt="lowres, bad anatomy, blurry, ugly",
    num_inference_steps=20,
    guidance_scale=7.0,
    generator=torch.Generator("mps").manual_seed(42),
).images[0]

image.save("output.png")

画像から画像生成 (img2img)

既存の画像を入力にして、スタイルを変換する。ドット絵をアニメ調イラストに変換する、といった使い方ができる。

from diffusers import StableDiffusionImg2ImgPipeline

pipe = StableDiffusionImg2ImgPipeline.from_single_file(
    "models/Stable-diffusion/dreamshaper_8.safetensors",
    torch_dtype=torch.float32,
    safety_checker=None
)
pipe = pipe.to("mps")
pipe.enable_attention_slicing()

input_image = Image.open("input.png").convert("RGB")
input_image = input_image.resize((512, 512), Image.LANCZOS)

image = pipe(
    prompt="anime style illustration, cute, detailed",
    image=input_image,
    strength=0.65,
    guidance_scale=10.0,
    num_inference_steps=30,
).images[0]

strength6 パラメータが重要で、0.0だと入力画像そのまま、1.0だと完全にプロンプト依存になる。0.5〜0.7あたりが入力画像の特徴を活かしつつスタイルを変換するのにちょうどいい。

パラメータ解説

主要パラメータ

パラメータ説明推奨値
steps推論ステップ数。多いほど精細だが遅い20-30
guidance_scale7 (CFG)プロンプトへの忠実度。高すぎるとコントラスト過剰7.0-10.0
seed同じシードなら同じ画像が生成される。再現性に必須任意の整数
width / height出力サイズ。512x512が安定512
strength (img2img)入力画像からの変換度合い0.5-0.7

スケジューラー(サンプラー)

デフォルトのスケジューラー8でも十分だが、DPM++ 2M Karras9 がシャープで安定した出力になる。

from diffusers import DPMSolverMultistepScheduler

pipe.scheduler = DPMSolverMultistepScheduler.from_config(
    pipe.scheduler.config,
    use_karras_sigmas=True,
    algorithm_type="dpmsolver++"
)

ネガティブプロンプト10

「生成してほしくないもの」を指定する。これを入れないと品質がかなり落ちる。

lowres, bad anatomy, bad hands, text, watermark, blurry,
ugly, duplicate, morbid, mutilated, extra fingers,
poorly drawn hands, poorly drawn face, mutation, deformed

💡 realistic, photorealistic をネガティブに入れると、アニメ調・イラスト調に寄せやすい。

プロンプトの書き方・コツ

基本構造

{背景色/画風}, {スタイル指定}, {主題の説明}, {品質タグ}

例:

white background, anime style, cel shading,
cute fox creature, big adorable eyes,
fantasy game art, soft pastel colors

CLIP 77トークン制限

Stable Diffusion 1.xはCLIP11テキストエンコーダーの77トークン制限がある。プロンプトが長すぎると末尾が切れる。

対策:

  • 重要なキーワード(背景色、画風)を先頭に配置
  • 冗長な修飾語を削る
  • 1プロンプト77トークン以内を目安に

背景色の指定

「white background」を入れても背景が暗くなることがある。特にRGBA画像をRGBに変換する際に注意が必要。

# ❌ これは透明ピクセルが黒になる
rgb = rgba_image.convert("RGB")

# ✅ 白背景に合成する
white_bg = Image.new("RGB", rgba_image.size, (255, 255, 255))
white_bg.paste(rgba_image, mask=rgba_image.split()[3])

⚠️ .convert("RGB") は透明→黒になる。必ず白背景に合成すること。これはハマりポイント。

ドット絵の情報量不足をプロンプトで補完する

img2imgでドット絵を入力するとき、最大の課題は情報量の少なさ。100x100pxのドット絵は色数も解像度も限られている。SDに「これをイラストにしてくれ」と渡しても、SDからすれば情報が少なすぎて何を描けばいいのかわからない。

ここで重要になるのが、ドット絵では表現しきれないキャラクターの特徴をプロンプトで言語化して補完するテクニック

プロンプト補完の具体例

たとえばミラージュキツネ(echo)の卵段階。元のドット絵はたった19x20pxで、色つきのドットが並んでいるだけ。ここにキャラクター設定から特徴を言語化して補完する。

ドット絵だけの情報:

  • 丸い形
  • ピンク・紫・青系の配色
  • 小さな模様

プロンプトで補完する情報:

white background, anime style, cel shading, cute creature,
soft pastel colors, adorable big eyes, fantasy game art,
centered composition, fox, mystic, illusion creature,
egg, dormant, potential energy

ここで加えているのは:

  • 生物種: fox(狐であること — ドット絵からは判別不可能)
  • 属性: mystic, illusion creature(幻影属性 — 色の意味を補足)
  • 進化段階: egg, dormant, potential energy(卵の中に秘めた力 — ドット絵では表現しきれない概念)
  • 画風: anime style, cel shading, cute creature(ゲームの世界観に合わせた指定)

キャラ別プロンプトテンプレート

この補完を効率化するため、全20体のキャラクターについて統一テンプレートを作った。

固定部分(全キャラ共通のヘッダ):

white background, anime style, cel shading, cute creature,
soft pastel colors, adorable big eyes, fantasy game art,
centered composition

キャラ別部分(素材感・生物種だけ追加):

キャラ追加プロンプト
ファイアドラゴンfire, dragon, flame creature
フォレストスピリットwood, forest spirit, plant creature
ミラージュキツネfox, mystic, illusion creature
クリスタルタートルcrystal, turtle, stone creature
アイスウルフice, wolf, animal

キャラクター設定書(playtime_characters.md)から素材感と生物種のみを抽出する。外見の詳細(「緑の毛皮に蔓草が巻きついている」等)をプロンプトに詰め込みすぎるとCLIP 77トークン制限を超えるし、SDの解釈の自由度を奪ってしまう。素材感と種だけ指定して、あとはSDに任せるのがコツ。

進化段階ごとのキーワード

6段階の進化に応じて、段階を表すキーワードも追加する。

段階キーワード
egg, dormant, potential energy
幼体baby, small, cute, newly hatched
少年young, growing, developing features
青年adolescent, emerging power
成体mature, powerful, full-grown
究極ultimate, legendary, transcendent

ドット絵だけなら「丸い形→少し大きい形→もっと大きい形」としか区別できない。プロンプトで進化段階の概念を補完することで、SDが「卵の中に眠る力」「究極の九尾狐」といった物語性のあるイラストを生成してくれる。

⚡ ドット絵は設計図。プロンプトが注釈書。この2つを組み合わせてはじめて、SDは意図通りのイラストを生成できる。

試行錯誤の過程 — 最初は顔がぐちゃぐちゃだった

最初からうまくいったわけではない。ゲーム(PlayTime)のドット絵キャラクターをイラスト化しようとしたとき、最初に出てきた画像を見て絶望した。

v1: 背景が真っ黒、顔がぐちゃぐちゃ

最初のアプローチは素のimg2imgにドット絵を放り込むだけ。結果は散々だった。

  • 背景が黒い: RGBA画像を.convert("RGB")で変換したら、透明ピクセルが全部黒になった
  • 顔が崩壊: 目の位置がおかしい、顔のパーツがぐちゃぐちゃ
  • 画風がリアル調: ファンタジーゲームのキャラなのに写真みたいな質感

殿(指示する人間)から「顔崩れすぎ。アニメ調にせよ。目を可愛くせよ」とダメ出しが来た。

v2-v3: プロンプト改善 → でもまだ暗い

「anime style, cel shading, cute big eyes」をプロンプトに追加。しかしまだ背景が暗い。原因は.convert("RGB")の透明→黒変換を直していなかったから。プロンプトをいくら変えても入力画像が黒ければ出力も暗くなる。

ここでもう1つハマったのがCLIP 77トークン制限。プロンプトを長くしすぎて、末尾に書いた「white background」が切れていた。重要なキーワードほど先頭に置くべきだと学んだ。

v4: 白背景合成で突破

根本原因に気づいた。.convert("RGB")ではなく白背景に合成する方法に変更。

# ❌ 透明→黒になる
rgb = rgba.convert("RGB")

# ✅ 白背景に合成
white_bg = Image.new("RGB", rgba.size, (255, 255, 255))
white_bg.paste(rgba, mask=rgba.split()[3])

これで背景問題は解決。アニメ調で目も可愛くなった。ただし品質にバラつきがあった。

品質安定化: 小さすぎるスプライト問題

品質がバラつく原因を調べたら、入力画像の実体サイズだった。100x100pxのキャンバスに対して、卵(stage0)の実体はわずか19x20px(占有率4%)。ほとんど白背景で、SDが「自由に描いていいんだな」と解釈して毎回違うものが出てくる。

段階実体サイズ占有率品質安定度
19x20px4%不安定
幼体19x18px3.4%不安定
少年28x27px7.6%やや不安定
青年47x38px17.9%安定
成体86x57px49%安定
究極78x77px60%安定

対策としてbbox crop12(実体部分だけ切り出して75%占有率にパディング)を導入。これが品質安定化の最大要因だった。

しかしcropだけでは解決しない問題があった。以下は卵段階(stage0)のcrop後の出力。ピクセルグリッドのアーティファクトがそのまま残っている。

cropだけではピクセルグリッドのアーティファクトが残る

E1〜E5: パラメータ総当たり実験

ここから本格的にパラメータ実験を回した。

  • E1: DPM++ 2M Karrasスケジューラー → 大差なし
  • E2: Euler Ancestralスケジューラー → 大差なし
  • E3: GaussianBlur13 + Lanczos14劇的改善! 卵のピクセルグリッドが完全消滅
  • E4: guidance_scale=12 → コントラスト過剰。暗くなる。逆効果
  • E5: E3 + E1 + CFG=10の組み合わせ全段階で最高品質。推奨設定に確定

E3のGaussianBlur(radius=1)がブレークスルーだった。ドット絵特有のギザギザしたピクセルグリッドが、たった1pxのぼかしで消える。同時にアップスケールをNearest NeighborからLanczosに変えたのも効いた。

そしてこれが最終推奨のE5パイプラインで生成した出力。同じドット絵入力から、ここまで品質が変わる。

E5パイプライン: 白い子狐、青い瞳。アプリの図鑑アイコンとして使えるクオリティ

E5パイプライン: 虹色オーロラをまとう成体。色彩の美しさが際立つ

E5パイプライン: 究極段階の九尾狐。プリズムオーラと威厳ある姿

同じE5パイプラインを別のキャラクターに適用しても、安定した高品質が出る。キャラ別プロンプトを差し替えるだけで、種族の異なるキャラクターが同じクオリティで生成される。

フォレストスピリットの幼体。葉っぱの体に大きな緑の瞳

ストームフェニックスの究極段階。嵐雲を背に翼を広げる威厳ある姿

ティアマナティの成体。水面を泳ぐ穏やかな姿

⚡ 品質を決めるのはパラメータよりも入力画像の前処理。crop + blur + Lanczosの3つが核心。同じパイプラインで20体×6段階=120枚を量産できる安定性がある。

人間化事件

品質が安定したので量産に入ったら、別の問題が発生。フォレストスピリット(木の精霊キャラ)をアニメ調で生成したら、中間段階(少年期〜青年期)がアニメ少女に化けた。鹿の角に緑の髪の人間キャラになっていた。

原因は「manga style」というプロンプト。SDのモデルは「manga」と聞くと人間キャラを描きたがる。対策として「manga style」を外して「creature design, non-human fantasy creature」を入れ、ネガティブに「human, humanoid, girl, boy」を追加したら解決した。

目が3つ問題

さらに別のキャラで目が3つ生成される問題が発生。ネガティブプロンプトに「extra eyes, multiple eyes, three eyes」を追加して解消。こういう細かいアーティファクトはネガティブプロンプトで潰していく。

成功例: ミラージュキツネの6段階生成

試行錯誤の末にたどり着いたE5パイプラインで、ミラージュキツネ(echo, rawValue=18)の6段階進化イラストを生成した。

成功時のパラメータ:

パラメータ
モデルDreamShaper 8
strength0.65(全段階均一)
guidance_scale10.0
サンプラーDPM++ 2M Karras
steps30
seed181818(6段階統一)
前処理bbox crop → 75%pad → GaussianBlur(r=1) → Lanczos 512x512

結果は卵(神秘的な卵の中に狐が眠る)から究極体(九尾狐、プリズムオーラ)まで、全6段階で安定した高品質。ピクセルアーティファクト完全消滅。色味や画風も段階間で統一感がある。

これを初期のv1パラメータ(前処理なし、.convert("RGB")、strength=0.65、guidance_scale=7.5)で生成すると、背景黒・顔崩れ・ピクセルグリッドだらけの出力になる。パラメータ選択と前処理が品質に直結する

💡 同じモデル・同じドット絵でも、前処理とパラメータ次第で出力品質は天と地ほど変わる。


こうした試行錯誤を経て、最終的な推奨パイプラインが固まった。

最終推奨パイプライン

入力画像の前処理が品質を決める

img2imgで小さなドット絵(100x100px程度)を入力するとき、前処理が品質に大きく影響する。実験を重ねて最適なパイプラインを見つけた。

E5パイプライン(最終推奨)

bbox crop → 75% paddingGaussianBlur(r=1) → Lanczos 512x512
  1. bbox crop: 画像の実体部分だけを切り出す。小さなスプライト(占有率4%程度)をそのまま拡大するとSDの自由度が高すぎて不安定になる
  2. 75% padding: 切り出し後に適度な余白を追加。構図のバランスを維持
  3. GaussianBlur: ドットのピクセルグリッドを緩和。これが品質改善の最大要因
  4. Lanczos upscale: Nearest Neighborは使わない。ピクセル構造が保持されてアーティファクトになる

strengthは均一でいい

小さなスプライト(stage0)はstrengthを下げたほうがいいかと思ったが、逆だった。低strengthはピクセル構造を保持してアーティファクトの原因になる。0.65均一が安定。

guidance_scaleは8-10が最適

12以上にするとコントラストが強すぎて暗い表現になる。8.0〜10.0が最適範囲。

人間化の罠

「manga style」「Japanese anime aesthetic」をプロンプトに入れると、動物や幻獣が人間キャラに化ける。ファンタジークリーチャーを生成するなら「creature design, non-human fantasy creature」を入れて、ネガティブに「human, humanoid, girl, boy, person」を追加する。

📝 "manga style" は人間キャラ専用と心得よ。動物・幻獣には "anime style, cel shading, creature design" を使う。

目のアーティファクト対策

目が3つ生成されることがある。ネガティブプロンプトに以下を追加すると解消する。

extra eyes, multiple eyes, three eyes, extra limbs, mutation

AIエージェントとの連携

ここからが本題。Stable DiffusionをCLIから呼べるようにしておくと、AIエージェントが自動で画像を生成できる。

CLIスクリプト

sd_generate.py をCLIツールとして作ってある。

~/.claude-tmp/stable-diffusion-webui/venv/bin/python \
  scripts/sd_generate.py \
  --prompt "fantasy dragon boss, detailed, game art" \
  --output /tmp/boss.png \
  --width 512 --height 512 \
  --steps 20 --seed 42 \
  --cfg-scale 7.0

オプション:

フラグ説明
--prompt生成プロンプト(必須)
--negativeネガティブプロンプト
--width / --height出力サイズ
--steps推論ステップ数
--cfg-scaleCFGスケール
--seedシード値 (-1でランダム)
--transparent-bg白背景→透過変換
--crop余白自動切り抜き
--resize W H出力リサイズ

実用例: サムネイル自動生成

エージェントに「記事のサムネイルを生成して」と指示すると、こんな流れで自動的に画像ができる。

  1. エージェントが記事の内容からプロンプトを考える
  2. sd_generate.py を実行して画像生成
  3. public/images/{記事名}/thumbnail.png に配置
  4. meta.tsx でサムネイルを参照

自分は何もしていない。記事を書いたらサムネイルも自動で付いてくる。

実用例: ゲームアセット自動生成

iOSゲーム(PlayTime)のキャラクターイラストもSDで自動生成している。ドット絵スプライトをimg2imgでアニメ調イラストに変換する。

  1. ドット絵(100x100 RGBA)を前処理(E5パイプライン)
  2. キャラクターごとに統一プロンプトでimg2img生成
  3. 全6進化段階を同一シードで生成して画風統一
  4. Assets.xcassets に配置

20体 × 6段階 = 120枚のイラストを量産する仕組みがすでに自動化されている。

⚡ CLIで呼べるようにしておけば、AIエージェントが勝手に画像を生成してくれる。人間は指示するだけ。

LoRA学習15(画風再現)

既存の画像の画風を学習させて、同じスタイルで新しい画像を生成することもできる。

必要パッケージ

pip install peft datasets

学習の流れ

  1. 教師データ準備: 既存画像を512x512にアップスケール + キャプション付与
  2. LoRA学習: DreamShaper 8をベースに微調整。Apple Silicon MPSで約12分/52枚
  3. 生成: 学習済みLoRAを適用して画像生成

推奨パラメータ:

パラメータ
LoRA rank32
alpha16
learning_rate1e-4 (cosine)
epochs15
batch_size1
gradient_accumulation4

出力は約24MBのアダプターファイルで、ベースモデルにマージして使う。

Apple Silicon固有の注意点

MPS (Metal Performance Shaders)

Apple Silicon MacではCUDAの代わりにMPSを使う。

pipe = pipe.to("mps")
pipe.enable_attention_slicing()  # メモリ最適化、必須
  • torch_dtype=torch.float32 を使うこと(float16はMPSで非対応の演算あり)
  • CUDAの警告が出ても無視してOK
  • 64GB RAMなら512x512は余裕。768x768以上は不安定になることがある

CLIPインストールエラー

ModuleNotFoundError: No module named 'pkg_resources'

setuptools 69.x以下にダウングレードして対処する。

pip install "setuptools<70"

推奨モデル

モデル特徴用途
DreamShaper 8ファンタジー/汎用(使用中)サムネイル、ゲームアート
Anything V5アニメ/イラスト寄りキャラクターイラスト
RealisticVisionフォトリアル写真風画像

モデルは .safetensors16 形式でHuggingFaceからダウンロードして models/Stable-diffusion/ に置くだけ。

まとめ

  • 環境: Apple M4 Pro + diffusers + DreamShaper 8。AUTOMATIC1111は使わない
  • 生成速度: 512x512で10-15秒/枚。実用十分
  • 品質のコツ: 前処理(crop + blur + Lanczos)が最重要。パラメータよりも入力画像の質
  • プロンプト: 77トークン制限に注意。重要語を先頭に
  • エージェント連携: CLIスクリプトにしておけばAIが勝手に画像を作る

セットアップは足軽がスノボ中にやってくれた。画像生成も足軽が自動でやってくれる。自分がやるのはNotionに「サムネイル作って」と書くだけ。


用語解説

Footnotes

  1. img2img — 既存の画像を入力として、それをベースに新しい画像を生成する手法。入力画像の構図や色味を参考にしつつ、プロンプトに従ってスタイルを変換する。

  2. txt2img — テキスト(プロンプト)のみから画像を生成する手法。入力画像なしで、言葉の指示だけでゼロから画像を作る。

  3. MPS (Metal Performance Shaders) — Apple Silicon Mac用のGPU計算フレームワーク。NVIDIAのCUDAに相当するApple独自の技術で、機械学習の推論をGPUで高速に実行する。

  4. CUDA — NVIDIAのGPU計算フレームワーク。Stable Diffusionは元々CUDA前提で開発されたが、Apple Silicon MacではMPSで代替する。

  5. diffusers — HuggingFaceが開発した画像生成AIライブラリ。Stable Diffusionのモデルをロードして画像生成するためのPythonパッケージ。

  6. strength — img2imgで元画像をどれだけ変化させるかの度合い。0.0で元画像そのまま、1.0で完全にプロンプト依存。0.5〜0.7が実用的な範囲。

  7. CFG Scale (Classifier-Free Guidance Scale) — プロンプトへの忠実度を制御するパラメータ。値が高いほどプロンプトに忠実だが、高すぎるとコントラスト過剰になる。

  8. スケジューラー(サンプラー) — ノイズ除去の順序と量を決めるアルゴリズム。画像生成はノイズから徐々にクリアな画像にしていく過程で、その過程の制御方法がスケジューラー。

  9. DPM++ 2M Karras — 高速かつ高品質な画像生成が可能なサンプラーの一種。Karrasノイズスケジュールと組み合わせることで、少ないステップ数でもシャープな出力が得られる。

  10. ネガティブプロンプト — 「生成してほしくないもの」を指定するプロンプト。品質向上に必須で、lowres, bad anatomy, blurry などを指定して低品質な出力を防ぐ。

  11. CLIP — OpenAIが開発したテキストと画像を結びつけるAIモデル。Stable Diffusionはプロンプト(テキスト)をCLIPでベクトル化し、画像生成の方向性を決定する。SD 1.xでは77トークンが上限。

  12. bbox crop (Bounding Box Crop) — 画像内の実体部分(透明でないピクセル)のバウンディングボックス(外接矩形)を検出し、その部分だけを切り出す処理。

  13. GaussianBlur — ガウス分布に基づくぼかし処理。ドット絵のピクセルグリッド(ギザギザ)を滑らかにする。radius=1でも効果は劇的。

  14. Lanczos — 高品質な画像リサイズアルゴリズム。Nearest Neighbor(最近傍補間)と違い、滑らかな拡大が可能。ドット絵のピクセル構造を保持しない点がSD入力には有利。

  15. LoRA (Low-Rank Adaptation) — 大規模モデルを少ないデータ・計算量で微調整する手法。ベースモデルの重みを変えずに小さなアダプター層を追加学習させる。出力は数十MBの軽量ファイル。

  16. safetensors — HuggingFaceが策定したモデルの安全な保存形式。従来のpickle形式と違い、コード実行のリスクがなく安全にモデルをロードできる。