Algorithm Exposure
Updated: 2026-05
1. このページについて
「面白ネタ実験」3部作の2本目。アルゴリズム露出系 — 拡散モデルの内部処理を意図的に変な方向に押して、普段見えないものを見せる実験集。
「綺麗な絵を出す」のは目的ではない。AI の中身を覗くことそのものが目的。授業中に1〜2個ピックアップして見せる。学生にとっての「拡散モデルって本当に動いてるんだ」という実感がここで得られる。
この体験が、後の Runway 演習で「動画生成AIの中で何が起きているか」を想像するベースになる。
2. ネタ A: CFG ゼロの世界
Parameters で CFG は「プロンプトへの忠実度」と説明した。CFG = 0 にすると、プロンプトを 完全に無視 する。
やり方
- K-Sampler の cfg を 0 に設定
- プロンプトに何を書いても、結果は無関係になる
- 出てくるのは「そのモデルが学習データから引き出してくる平均的な何か」
SD 1.5 だとぼんやりした顔や風景。Flux だとリアルな何か。モデルの素顔が見える。
3. ネタ B: CFG 極大の壊れ方
逆に CFG を 30 や 50 まで上げる。
- 標準的なモデル(SD 1.5, SDXL): 過彩度・破綻・燃え尽きたような色
- Flux dev: 動作しない/崩壊
- Z Image Turbo: 動作しない/崩壊
CFG が壊れていく境目 を観察することで、なぜ CFG 7〜8 が標準なのかが体感できる。
4. ネタ C: ステップ数 1〜3 の混沌
ステップ数を 1, 2, 3 と極端に少なくする。
- 1 ステップ: ノイズに近い、何かの輪郭がうっすら
- 2 ステップ: 形になりかけ、ぼんやり
- 3 ステップ: ようやく主題が見える
「拡散プロセスは段階的にノイズを削る」を可視化する実験。1 ステップでは 1/20 だけ、2 ステップでは 2/20 だけ削った状態が見える。
例外: Turbo / LCM 系モデルは 1〜4 ステップで完成するよう設計されているので、極小ステップでもそれなりの絵が出る。これは「学習時に 1 ステップで完成するように訓練された」ためで、別の現象。
5. ネタ D: 潜在空間補間
2つのプロンプト(A と B)の中間状態を見る実験。
やり方
- ConditioningAverage や ConditioningCombine ノードを使う
- プロンプト A:
a cat - プロンプト B:
a dog - 重み 0.0 / 0.25 / 0.5 / 0.75 / 1.0 で5枚生成
- 「猫から犬への連続変化」が見える
これは CLIP 空間(テキスト解釈ベクトル)の補間。AI が連続的にプロンプトを混ぜている様子が観察できる。
6. ネタ E: 同じシード、違うプロンプト
シードを固定して、プロンプトだけ変える。
- シード固定 +
a cat: 特定の猫が出る - 同じシード +
a dog: その猫がいた場所に犬が出る(構図が似る) - 同じシード +
a robot: 同じ位置にロボットが出る
シードが「画像の構図・位置を決める」のに対し、プロンプトが「何が描かれるか」を決めていることが見える。両者の独立性の体感。
7. ネタ F: 途中段階の潜在画像を覗く
K-Sampler は通常、全ステップ完了後に結果を出す。途中段階を見たい場合:
- ConditioningSetTimestepRange ノードで「何%まで処理するか」を指定
- 全体を「まず Sampler1 で 0%〜30% だけ」「次に Sampler2 で 30%〜100%」のように分割
- 途中の潜在画像を VAE デコードしてプレビュー
「ステップ 5/20 でどんな絵か」「ステップ 15/20 で何が見え始めるか」が観察できる。
これは ComfyUI のノードベース UI ならではの実験。Web UI では基本できない。
8. ネタ G: ノイズの注入
K-Sampler の入力(潜在画像)を「少しノイズを足す」処理に通してから渡す。
- 通常の img2img では「元画像に少しノイズを足してから拡散プロセスへ」
- ここでは「完全なノイズに少し元画像を混ぜてから」拡散プロセスへ
denoise 値で制御するこの境界を、極端な値(0.95, 0.99)で試すと「元画像のシルエットがうっすら残ったホラーな結果」が出ることがある。
9. ネタ H: VAE をかけ間違える
「VAE デコード」を別 VAE で実行する。
- 通常: SD 1.5 で生成 → SD 1.5 の VAE でデコード
- 実験: SD 1.5 で生成 → SDXL の VAE でデコード
潜在画像のフォーマットが違うので、カラーノイズと混ざった結果が出る。「VAE が画像形式の翻訳をしている」ことが体感できる。
10. ネタ I: サンプラーの暴走
通常使わない sampler + scheduler の組み合わせを試す。
dpm_2+ddim_uniformdpmpp_3m_sde_gpu+exponential
サンプラーごとに「ノイズ削減の戦略」が違うので、ハマらない組み合わせは結果が崩れる。
これらは普段 euler/normal で固定して使うが、なぜサンプラーが複数あるのか を体感できる。
11. ネタ J: 同じ画像を何度もループさせる
img2img の出力を入力に戻して、何度も img2img を繰り返す。
- 1回目: 写真 → img2img (denoise 0.5)
- 2回目: 1回目の出力 → img2img (denoise 0.5)
- 3回目: 2回目の出力 → img2img (denoise 0.5)
- 5〜10回繰り返す
毎回「半分忘れる」を繰り返すので、徐々に 元画像から完全に離れた抽象画になる。AI が連続して「夢を見続ける」プロセスの可視化。
12. 授業での扱い
- 全 10 ネタを授業で見せる必要はない
- 1〜2 個を 5 分程度のデモ で実演
- 学生は「面白そう」と思ったものを後日試す
- 「綺麗な絵が出ない」ことに動揺しない設計(むしろ崩れこそが目的)
13. クレジット予算
ここの実験は SD 1.5 で十分(むしろ SD 1.5 のほうが面白い崩れ方をする)。 1〜2 クレジット/回 × 30〜40 回試行 = 30〜80 クレジット程度。
学生 1 人で全部やる必要はない。先生が事前に試して、面白い1本を授業で見せる運用。
14. このあと
- Edge Cases — 意図的に壊す実験(ControlNet 衝突など)
- To Runway — 動画生成AIの全体像と Runway への橋渡し
