今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
いま読んでいる一膳leejet/stable-diffusion.cppStable DiffusionやFluxなどの拡散モデルをC/C++で実行し、テキストから画像や動画を生成するツール信頼度 1.28ほかの一膳lissy93/awesome-privacyプライバシー尊重型アプリ・ソフトウェア・サービスの厳選リスト信頼度 1.26ほかの一膳mcmonkeyprojects/SwarmUIAI画像・動画生成に対応したモジュール型Webインターフェース信頼度 1.25
今日の優良食堂 · ギット飯が代わりに導入・分析

leejet/stable-diffusion.cpp

Stable DiffusionやFluxなどの拡散モデルをC/C++で実行し、テキストから画像や動画を生成するツール

Pythonも重い依存ライブラリも入れず、C/C++だけでビルドしたバイナリ1つでSD、FLUX、Qwen Imageなど30種類以上のモデルを動かせる感覚を、まず手元で試してほしいです。GPUメモリが限られたノートPCでもFlash AttentionやVAEタイリング、量子化のおかげで画像生成が現実的な速度で走り、CUDAやMetal、Vulkanなど手持ちの環境に合わせてバックエンドを選べる自由さも実感できます。MiniMax-H3やIdeogram4のような新しいモデルにもすぐ対応しているので、プロダクションのアプリやAndroidなどエッジ端末に画像生成機能をそのまま組み込む道筋が、コードを読むだけで見えてきます。

01 / 概要
何をするものか一文で言うと
ひとことでStable DiffusionやFluxなどの拡散モデルをC/C++で実行し、テキストから画像や動画を生成するツール

stable-diffusion.cpp は、ggml をベースにした純粋なC/C++実装で、Stable Diffusion系列やFlux、Wan、Qwen Image、Z-Imageなど多数の拡散モデルの推論を行うライブラリ兼CLI/サーバーツールです。外部依存を最小限に抑えつつ、CPUからCUDA・Vulkan・Metal・SYCLまで多様なバックエンドで画像・映像生成を実行できます。llama.cppと同じ設計思想で作られており、モデル変換やGGUF量子化にも対応しています。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

コア部分はsrc/以下のC++コードで、model_loaderがsafetensors・ckpt・GGUFなど複数形式の重みを読み込み、conditioner.hpp内のSDConditionがテキストエンコーダ(CLIP・T5・LLM)からの条件付けテンソルを保持します。examples/cli/main.cppがコマンドライン引数を解析してSDCliParamsを構築し、stable-diffusion.hのAPI経由でサンプラーとVAEを呼び出して画像を生成します。examples/server/main.cppはhttplibを使ったHTTPサーバーで、非同期ジョブキューを介してsd_ctxを共有しながらリクエストを処理します。convert.cppはテンソルごとの型ルールを適用してGGUFやsafetensors形式へエクスポートする変換パイプラインを担っています。ビルドはCMakeLists.txtとdocker/Dockerfileに定義され、GGML_BACKEND_DLやGGML_CPU_ALL_VARIANTSといったオプションでバックエンドを切り替えます。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    releasesページからsd-cli実行ファイルをダウンロードするか、docs/build.mdに従ってCMakeでソースからビルドします。

  2. STEP 02

    Hugging FaceからSD1.5などの.safetensorsファイルをcurlで取得し、models配下に置きます。

  3. STEP 03

    ./bin/sd-cli -m モデルパス -p プロンプト文字列 を実行すると、コンソールにロード進捗とサンプリングステップのログが表示されます。

  4. STEP 04

    生成が終わるとoutput.pngが出力され、PNGのテキストチャンクにwebui互換の生成パラメータが埋め込まれているのが確認できます。

  5. STEP 05

    examples/server/main.cppをビルドしたsd-serverを起動すると、httplib経由のHTTP APIで非同期に画像生成ジョブを投げられます。

  6. STEP 06

    dockerディレクトリのDockerfileを使えばNode/pnpmで組み込みWeb UIも同時にビルドされ、コンテナ内でsd-cliまたはsd-serverを直接実行できます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

1枚以上のPNG画像(または動画モデルならmp4・webm等)が生成され、画像にはプロンプトやサンプラー設定などの生成パラメータがwebui互換形式でメタデータとして埋め込まれます。CLIログには読み込んだモデル情報、使用バックエンド、各サンプリングステップの進行状況が表示され、変換モードを使えば元の重みファイルをGGUF量子化形式に変換した新しいファイルも得られます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

READMEにも明記されている通り、開発が活発でAPIやコマンドラインオプションが頻繁に変わる可能性があります。

02

対応モデルの種類が非常に多い(SD1.x〜Z-Image、Wan、LTX-2など)ため、モデルごとに必要なdocs/*.mdの手順やパラメータが異なり、把握コストがあります。

03

大規模モデル(Flux、Wan14Bなど)を動かすにはGPUメモリやディスク容量が相当必要になると推測されますが、具体的な要件は提供資料からは確認できません。

04

GGML_BACKEND_DLやCPU_ALL_VARIANTSなどビルドオプションが多く、環境に合った適切なCMake設定を選ぶ必要があります。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

C/C++環境で外部Python依存なしに拡散モデル推論を組み込みたい開発者、あるいはllama.cpp的な軽量スタックで画像・映像生成をローカル実行したい人に向いています。CLIとサーバーの両方のソースコードから、引数解析・モデル読み込み・条件付け・サンプリング・出力保存という一連の処理経路が具体的に確認でき、Dockerfileやdocs群も対応モデルごとに整備されているため、実行フローの信頼性は資料だけでも十分に判断可能です。ただし対応モデル数が多く変化も速いため、実際に使う際は該当モデルのdocsを都度確認するのが安全です。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する