MacBook Neo (2026/6/29追記)
MacBook Neoは教育機関向け割引により学生や教職員はメモリ8GBストレージ256GB版を84800円で買えます(今は大幅に値上げしていますが)。今まで使っていたWindows 10ノートPCをリプレースするためにMacBook Neoを購入しました。
ざっと試した限り、Wordでの文書作成やExcelでのデータ処理、PowerPointでのスライドづくり、Outlookでのメールのやり取り、Teamsでの業務といったOffice 365での事務処理については特に問題ないようです。1000円で買えるダイソーの3in1ハブを奥のUSB-Cポートに差してHDMIでの画面出力が可能なことも確認しています。学生のレポート制作や一般的な事務用途ならMacBook Neoは十分活用できるでしょう。
ただ、メモリが少ないので、動画編集等あまりヘビーなことはできないと思います。
でもせっかくなので、あえてメモリを多く消費するComfyUIでのローカル生成AIを試してみました。そのままでは難しいので、WAI-illustrious-SDXL v160に高速化LoRAをマージしGGUFでQ4_K_M形式に量子化したモデル(1.63GB)を用意しました。ComfyUIとComfyUI-GGUF付属ツールを使って別マシンで変換と量子化をしています。
結果、1024x1024画像4ステップの生成に60秒〜80秒ぐらいかかりますが、一応SDXLでの画像生成は可能です。ただし、アクティビティモニタでみるとスワップが3GB消費しており、SSDの消耗が激しいです。ちなみに、メモリ16GBのM4 Mac Miniなら問題ないです。
MacBook Neoでのローカル画像生成はおすすめしませんが、一応可能だということを示すために、以下手順をメモしておきます。
stable-diffusion.cpp(sdcpp)とテキストエンコーダやVAEまでQ4_K_M量子化したモデルでタイル化VAEデコード(48x48)を行うことで、スワップせず1152x896の画像生成に成功しました。生成時間は95秒ほどかかりますが、SDXLでの画像生成も何とかなるようです(2026/3/14修正&追記)。
さらにAnimaの本体とテキストエンコーダをQ4_Kで量子化したモデルを使うことにより、8ステップで280秒ほどかかりますが、スワップせず1024x1024の画像生成にも成功しました。512x512なら100秒程度です。遅いですが、MacBook Neoでも気合いがあればなんとかなります。sdcppはC++なのでPyTorchよりiPhoneやiPadへの移植が容易だと思うので、頑張れば最新鋭モデルでの画像生成もスマホローカルで可能になると思います(2026/6/29追加)。
sdcppの手順
わかっている人向けです。何をやっているかわからない人はご遠慮ください。
ターミナルでbrewを入れて~/.zprofileに設定します。xcode-commandも自動でインストールされるはずです。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo >> $HOME/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
brewでgitとwgetとcmakeをインストールします。
brew install git wget cmake
gitでsdcppをダウンロードしstable-diffusion.cppフォルダに移動します。
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp
buildフォルダを作成しbuildフォルダに移動し、sdcppをcmakeでビルドします。
mkdir build && cd build
cmake .. -DSD_METAL=ON
cmake --build . --config Release
モデルファイルをダウンロードします。1ファイルで2.8GBあります。
wget -O 'waiIllustriousSDXL_v160_Q4_K_for_sdcpp.gguf' 'https://huggingface.co/asfdrwe/wai16DMD2/resolve/main/waiIllustriousSDXL_v160_Q4_K_for_sdcpp.gguf?download=true'
sdcppのsd-cliコマンドで画像を生成します。プロンプトは "1girl, 1boy, profile, classroom, smile, school uniform, standing anime coloring, 4k, 8k, highres(少女と少年が教室で向き合っている)"です。ステップ数4、1152x896で画像生成します。
bin/sd-cli -m ./waiIllustriousSDXL_v160_Q4_K_for_sdcpp.gguf -p "1girl, 1boy, profile, classroom, smile, school uniform, standing anime coloring, 4k, 8k, highres" -W 1152 -H 896 --steps 4 --sampling-method lcm --scheduler lcm --cfg-scale 1.0 --vae-tiling --vae-tile-size 48x48 --diffusion-fa -s -1
プロンプトは適当に設定して画像生成してみてください。画質がいまいちの場合はステップ数を4から6〜8ぐらいに増やしてください。vae-tile-sizeを増やすとメモリの消費が増えますが、速度は速くなります。多少は増やしてもスワップしないと思いますが結構ギリギリです。
あまり速くないですが、ローカルでの画像生成がMacBook Neoでもできます。
Animaの場合(2026/6/29追加)
そのままVAEデコードをGPUで行うとエラーが出ます。--vae-on-cpuオプションを指定してCPUでVAEデコードすることは可能ですが、遅くなります。
2025/10/20のllama.cppのプルリクエストをベースに2026/6/29時点のGGMLに移植したパッチを作成したので、当ててください。これでVAEデコードもGPUで行えます。
ggml-metal.metalのkernel void kernel_pad_implはChatGPTを参考にし、後の部分は手で修正して移植しました。
sdcppのトップフォルダに保存して、sdcppのトップフォルダ上で
patch -p0 < ggml-metal-diag_mask_iml2col_3d_pad_20260629.patch
としてパッチを当てて、buildに移動してビルドし直してください。
cd build
cmake --build . --config Release
モデルをダウンロードしてください。Q4_Kに圧縮したAnima本体とテキストエンコーダーのQwen3_0.6bと、公式のqwen-image-vaeです。
wget -O 'anima-turbo.q4_k.gguf' 'https://huggingface.co/asfdrwe/anima-turbo-gguf/resolve/main/anima-turbo.q4_k.gguf?download=true'
wget -O 'qwen3_06b.q4_k.gguf' 'https://huggingface.co/asfdrwe/anima-turbo-gguf/resolve/main/qwen3_06b.q4_k.gguf?download=true'
wget -O 'qwen_image_vae.safetensors' 'https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/vae/qwen_image_vae.safetensors?download=true'
bin/sd-cli --diffusion-model anima-turbo.q4_k.gguf --llm qwen_3_06b.q4_k.gguf --vae qwen_image_vae.safetensors -p 'anime coloring, best quality, anime screenshot, 1girl, solo, school uniform, classroom, looking at viewer, open mouth, smile, standing, blazer' --cfg-scale 1.0 --sampling-method euler --diffusion-fa --width 1024 --height 1024 --steps 8 --vae-tiling --seed -1 --offload-to-cpu -o tmp.png
プロンプトは適当に設定して画像生成してみてください。SDXLと違って512x512でもちゃんとした画像が生成されるので、解像度を下げればそこそこの速度で生成できます。
ComfyUIの手順
わかっている人向けです。何をやっているかわからない人はご遠慮ください。
ComfyUIの場合VAEタイリングデコードしない場合は3GB程度スワップ使うはずです。VAEタイリングデコードの場合も少しスワップするはずです。
brewでgitとwgetとpython 3.13を入れます。
brew install git wget python@3.13
gitでComfyUIを入れ、Python3.13の仮想環境を構築して有効にし、必要なモジュールとComfyUI-GGUFカスタムノードを入れます。
git clone https://github.com/comfy-org/ComfyUI
cd ComfyUI
python3.13 -m venv venv
. venv/bin/activate
pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
pip install --upgrade pip
pip install -r requirements.txt
cd custom_nodes
git clone https://github.com/city96/ComfyUI-GGUF/
cd ComfyUI-GGUF
pip install -r requirements.txt
cd ../..
wgetでモデルをダウンロードします。Unet(GGUF形式)とClip2種類とVAEの4ファイルです。
wget -O models/unet/waiIllustriousSDXL_v160-Q4_K_M.gguf 'https://huggingface.co/asfdrwe/wai16DMD2/resolve/main/waiIllustriousSDXL_v160-Q4_K_M.gguf?download=true'
wget -O models/clip/waiIllustriousSDXL_v160_clip_g.safetensors 'https://huggingface.co/asfdrwe/wai16DMD2/resolve/main/waiIllustriousSDXL_v160_clip_g.safetensors?download=true'
wget -O models/clip/waiIllustriousSDXL_v160_clip_l.safetensors 'https://huggingface.co/asfdrwe/wai16DMD2/resolve/main/waiIllustriousSDXL_v160_clip_l.safetensors?download=true'
wget -O models/vae/waiIllustriousSDXL_v160_vae.safetensors 'https://huggingface.co/asfdrwe/wai16DMD2/resolve/main/waiIllustriousSDXL_v160_vae.safetensors?download=true'
メモリをなるべく使わないようキャッシュを無効化してComfyUIを起動します。
python main.py --cache-none --auto-launch
こちらのワークフローをダウンロードしてComfyUIで開いてください。
プロンプトは適当に設定して画像生成してみてください。画質がいまいちの場合はステップ数を4から6〜8ぐらいに増やしてください。
タイル化VAEデコード (2025/3/14追記)
VAEデコードを差し替えて、_テスト用→VAEデコード(タイル)にすると、生成時間は増えますがスワップ消費量は減るはずです。さらにタイルサイズを512から256ぐらいに減らし、オーバーラップを32に減らすことで、よりスワップ消費量が削減できると思います。
