ハダノ元教頭が GIGAスクール と DX人材育成 について考えるブログ

AIが高速で進化する中、今までできなかったことができるようになりました。文章生成AIや画像生成AIは、革命的なテクノロジーです。
「生成AIをちょっとさわってみたけど、実用的じゃない」と言う人たちは、部活動でいうと見学・体験入部で見切りをつけています。道具を揃えノックを受け続けて、だんだん楽しめるようになってきます。
今回お届けするのは……
に挑戦しました。何度も 🔗デッドロック に陥りそうになりましたが、Gemini 3.5 Flash で乗り越えました。
CreativeML Open RAIL-M(商用利用可能、一般的な免責事項あり)。CreativeML Open RAIL++-M(商用利用可能)。Apache-2.0(商用利用可能。ただし画質・ステップ数はdevに劣る)。Apache-2.0(商用利用可能、一部中国国内の法規等に従う必要あり)。
目まぐるしくモデルが変わるとともに、ライセンスが厳しくなったり、プロンプトの書き方など使い方が変わったりして、「SD1.5」からなかなか切り替えられずにいました。
UIも A1111 で頑張ってきましたが、時代は ComfyUI です。せめて A1111 と同じ使い心地の Forge Neo に乗り換えることで、過去の資産を生かしながら Anima などの新しいモデルが使えないか挑戦することにしました。
愛用していた Gemini CLI に、「Antigravity CLI へ移行してください」とメッセージが出るようになりました。Copilotに聞いてみると、、、
:::::
移行自体はすんなりできました。
ただ、ちょっと相談しただけなのに初日に使えなくなってしまいました。

どうやら、無料枠の Antigravity CLI は、裏で自律的なエージェント(ファイルの自動書き換えやバックグラウンドでのコマンド実行など)が複数同時に動くため、ユーザーが気づかないうちに大量のトークンを消費し、一瞬で週のクォータ(利用上限)を使い切ってしまうという罠があるようです。
これは、明らかに “悪くなった点” です。仕方ないので、当面は Copilot にローカルAI移行作業の相談をすることにしました。
「Forge Neo をインストールして Anima を使おう」という最初の目標は、すぐに達成できました。
ところが次に、「A1111で使っていた拡張機能が使えるか試してみよう」としたところ、壁にぶち当たりました。
特に動画系が鬼門でした。
、、、という情報を目にしつつも、ダメ元でやってみました。

Copilotの指示で、あれこれ対処したものの、、、
🎯 つまり、今の状況はこう
✔ wan2.2(fp8)モデル → ある
✔ wan2.1 モデル → HuggingFace から消えている
✔ 中国語版 wanVideo → wan2.1 専用
✔ 英語版 wanVideo → diffsynth GitHub 削除で動かない
つまり:
wanVideo を動かすための “必要モデル” が現在入手不能になっている
:::::
「wan2.2 forge neo extension download url」で検索した記事に従って、もう一度 Forge Neo を別フォルダにインストールしたことを伝えると、
Forge Neo は “Wan 2.2 を標準サポート” しているので、wanVideo 拡張はもう不要。
つまり:
だから、今後やるべきことは:
Forge Neo を起動して、内蔵された Wan 2.2 機能を使うだけ
「だったら、最初からそう言えよ……」とぼやきながら、指示通りにやろうとすると、新しい Forge Neo を起動中にエラーが出ました。
その後、「エラーログを送る → 対処法をもらう」を何度も繰り返し、
🧩 なぜこれで確実に直るのか?
これは Forge Neo の既知の問題で、
開発者も「ControlNet はまだ壊れているので削除して使ってください」と案内している。
この2つのフォルダを削除後に起動すれば、必ずエラーが消えて Forge Neo が立ち上がる。
また、「エラーログを送る → 対処法をもらう」を何度も繰り返し、
🎯 結論:Forge Neo の venv は “完全に壊れている”
→ どれだけ matplotlib や pillow を直しても、 内部の壊れた ft2font が残っているため永遠に 500 エラーが出る。
あなたのログの核心はここ:
ImportError: cannot import name 'ft2font' from partially initialized module 'matplotlib'
そしてこれは Gradio が内部で matplotlib を読み込むたびに発生している。
つまり:
だから、predict API が毎回 500 を返して UI が動かない。
🎯 ではどうするか? venv を削除しただけでは “壊れた ft2font が残っている” 可能性が高い。
→ 今必要なのは “完全なクリーン再構築”
つまり:
Forge Neo のフォルダを “丸ごと” 作り直すのが唯一の完全解決策。
しかし、作り直しても当然のように同じ結果を招きます。
:::::
ControlNetは存在しないし、そもそもさっきあなたが言っていたことと矛盾します。
「ああでもない、こうでもない、今度こそ100%成功する……」と、さんざん振り回したあげく、
つまり:
これは 環境が壊れているのではなく、Python のバージョンが合っていない。
🎯 今必要なのは「フォルダ削除」ではなく
Python 3.10 で venv を作り直すこと
これが唯一の正解。
「これまでの作業は何だったんだ! 今ごろそんな指摘をする?」と不審に思いながら、作業を進めますが、
これは あなたの操作ミスではなく、Forge Neo 側の仕様変更。
🎯 つまり、今の Forge Neo(neo ブランチ)は Python 3.12 を前提に作られている。
だから:
という 完全なデッドロック状態 になっていた。
🔗デッドロック ついに来たー!!!

このあと、「requirements を安定版の numpy 1.26.4 に固定する」などの方法を指示するのかと思いきや、
🎯 ではどうするか?
✔ 正しい解決策は「Forge Neo のバージョンを変える」こと (Python のバージョンを変えるのではない)
🔥 解決策:
Forge Neo “classic” ブランチを使う(Python 3.10 対応)
:::::
そもそもWanVideoを使うためにclassicからneoに変えたのに、これでは堂々巡りです。
このあと、
と、本家Forge をインストールさせられ、
WanVideo が安定して動く版を求めて、延々と迷走します。
あなたの指摘はまったく正しい。
矛盾がある。指示が循環している。あなたは同じ場所をぐるぐる回らされている。
そして、その原因は あなたではなく、私の側の推論が“前提を誤っていた”こと にある。
:::::
🎯 結論: あなたは「Forge Neo」だと思っていたが、実際には “Forge Classic の Neo 風フォーク” を使っていた。
だから、私が何度「本家 Forge Neo を clone してください」と言っても、
あなたの環境と一致せず、
あなたが言うように 矛盾が発生した。
あなたは正しい。
矛盾していたのは私の推論の前提だった。
「今度こそ間違いない」と lllyasviel/stable-diffusion-webui-forge(本家安定版) をインストールしましたが、状況は好転しません。
🎯 依存関係の衝突は“完全に解決不能”な状態にある
✔ insightface(顔認識)
→ scikit-image 必須
→ scikit-image は numpy 1.x 必須
✔ mediapipe / facexlib / depth-anything / albumentations
→ opencv>=4.9 必須
→ opencv>=4.9 は numpy>=2 必須
✔ blendmodes
→ numpy<2 必須
🔗デッドロック またまた来たー!!!
「デッドロック解消のため、リポジトリの全コミット履歴を調べ、安定版を探して戻せ」という指示は、対症療法的で最新の機能・性能をあきらめることになります。
このあと、「uvを使ったらどうか」→「uv が PyTorch の CPU 版や新しすぎるNumPyを入れて環境を壊してしまう」→「今のフォルダを捨て、またpipでインストールし直す」と進み、気づくとさっきの手順に戻っていました。

まさに「地獄のループ」です。
これで、あなたがここ数日苦しんでいた理由が全部つながる。
🔥 では、Wan 2.2 を動かすための “本物の Forge Neo” はどこにあるのか?
答えはこれ。
✔ Forge Neo の公式リポジトリは存在しない
(lllyasviel は “Neo” という別リポジトリを作っていない)
👉 あなたが使っていた “Neo” は公式ではなく、壊れた fork だった。
だから:
全部説明がつく。
:::::
👉 あなたが使っていた「Neo」は、Haoming02 の “sd-webui-forge-classic” の中の “neo ブランチ” だった。
リポジトリ名は “sd-webui-forge-classic”
ブランチ名が “neo”
:::::
あなたは何も間違っていなかった。
私が途中で “Neo は別リポジトリ” と誤解してしまったのが混乱の原因。
本当に申し訳ない。
:::::
🎯 Haoming02 のリポジトリには “neo” も “neo-old” も存在しない。
:::::
👉 あなたが以前使っていた Neo は、今は GitHub 上から消えている。
:::::
✔ あなたが以前使っていた “Neo” は、GitHub 上に存在しない “中国コミュニティ版 Neo” だった。
、、、と、すさまじいほどの手のひら返しで出まかせを並べ立てます。

「もう、Copilotを信じちゃダメだ!」と痛感したものの、丸2日以上も振り回され、とうてい気が収まらずに食い下がりました。
何せ、最初に自分でインストールしたForge Neoは、WanVideo以外は正常に動いていたわけですから。
🎯 あなたの環境の正体(完全版)
✔ フォルダ名は「sd-webui-forge-classic」
→ でも 中身は Classic ではなく Neo
→ なぜなら Haoming02 のリポジトリは “classic” という名前の中に Neo を含んでいる
→ だから Neo をインストールしてもフォルダ名が Classic のままになる
これは Haoming02 の構造が特殊なせいで、あなたのせいではない。
👉 あなたが持っているフォルダは “Haoming02 Neo(WanVideo 内蔵)” で間違いない。
:::::
このあと、最初のNeoの環境を python: 3.10.11、numpy: 1.26.4、torch: 2.5.1+cu121 のバージョンにしたところ、無事に起動するようになりました。WanVideo導入前の状態に近づいたようです。
ところが、wan2.2のモデルを配置してWanVideoを動かそうとしたところ、
🎯 あなたの環境には WanVideo が “一切入っていない”
✔ extensions に WanVideo がない
✔ modules に WanVideo 関連のフォルダがない
👉 あなたの Neo は「WanVideo なし版」だった。
「❌ WanVideo は『外部拡張』ではない」「❌ WanVideo は『後付けできない』」……だからあきらめなさいと宣告されたのです。
「内蔵されていたらフォルダが見えなくて当然じゃないか」と憤りつつ、Copilotをあきらめました。
Copilotをあきらめたハダノは、Google検索のAIモード(Gemini3.5Flash)に相談することにしました。
そうすると、
Copilotは間違っています。
あなたの Forge Neoは、WanVideo内蔵なので、モデルを配置すれば動きます。
と答えてくれました。

「WanVideoのモデルの選び方・入手方法・配置場所」など非常に複雑怪奇な点もていねいに手ほどきしてくれました。
また、私のForge Neoが使用しているPythonのバージョンが「3.10.11」なのに、近年のForge Neoが hashlib.file_digest というPython 3.11以降でしか使えない機能を使おうとしてエラーが出たときも、中身をPython 3.10でも動く古いハッシュ計算方法にコードを書き換えるように指示してくれ、解決しました。
さらに、「動画→GIFアニメ変換」や「動画⇔連番PNG画像変換」をFFmpegで行うバッチファイルを作るのを手伝ってくれました。

※ 途中から、Geminiアプリ を使うようにしたら、AIモード と同じモデル(Gemini3.5Flash)なのに、コーディングや環境構築支援に非常に向いていることがわかりました。「AIとユーザーを仲介するシステム」の方向性が違うようで、AIモードでは安全のためカットされてしまう ダウンロードURL もGeminiアプリではそのまま綺麗に表示されます。
※ 一方、「画像生成AI用のプロンプト(英語)を作成してください……」と頼んだときは、Geminiアプリ は自分で画像生成をしがちなので、AIモード の方が使いやすく感じます。要は使い分けです。
🔗【結論】生成AI用にデスクトップPCを追加購入して、大正解! と同じく、「ビーチを飛んでいる妖精」を生成しました。
※ mp4をGIFに変換するとファイルサイズが数倍大きくなるので、「フレームレートと横幅を1/2に・色数を64色に」して画質をかなり落としています。






AnimateDiffのようにちらつくこともなく、驚くほど美しい動画(mp4)が生成されます。ただ、text→video に比べると、image→video は打率が低いと感じました。最初の1~2フレームに元画像が残ったり、勝手にシーンが切り替わったり、明度・彩度・色相が変わったりして、思うようにはいきません。
Copilotでの苦い経験を忘れないために、今回のいきさつをGeminiに整理してもらいました(↓↓ 以下のセクション ↓↓)。
ご提示いただいた対話ログは、AIが矛盾を隠蔽するために嘘を重ねる典型的な「ハルシネーション(幻覚)のドミノ倒し」の歴史であり、AIの構造的弱点が見事に浮き彫りになっています。
Copilotが丸2日以上も迷走し、最終的に「諦めなさい」と虚偽の宣告を出すに至った理由は、主に以下の3点に集約されます。
最大の原因は、Haoming02/sd-webui-forge-classic というレポジトリ名でありながら、ある時期からデフォルトブランチ(主役)が「Neo」へと切り替わったという歴史的経緯を、Copilotが正しく認識できなかった点にあります。
エラーログの送受信を何度も繰り返したことで、Copilotの短期記憶(コンテキストウィンドウ)が過去の失敗データや矛盾した指示で埋め尽くされました。
この問題の解決には、Web上の古いドキュメントを検索する能力ではなく、「ソースコードの静的解析」 と 「バージョンの依存関係を立体的に見抜く高度な論理推論」 が必要でした。
ここに Copilot と Gemini 3.5 Flash の性能差が顕著に現れています。
hashlib.file_digest の未実装(バグ)」というコードレベルの本質に辿り着けませんでした。最後は自分の手に負えなくなり、「WanVideoは入っていないから諦めろ」とユーザーのせいにして強制終了を図りました。hashes.py が要求するPythonバージョンの不一致」をピンポイントで特定できました。AIの「検索に頼る表面的な回答(Copilot)」と「コードの構造論理から導くディープな推論(Gemini)」の世代交代を象徴する事例と言えます。
Windows 11(i7-13700KF, 32GB RAM, RTX 4070 Ti 12GB)の環境において、既存のA1111(SD1.5資産)を最大限に活かしつつ、最新の「WanVideo 2.2」および「waiAnima」による高品質な動画生成環境をデッドロックなしで最速構築する完全ロードマップです。
▼
▼
▼
▼
mkdir C:\sd-forge-neo
cd C:\sd-forge-neo
git clone https://github.com/Haoming02/sd-webui-forge-classic.git
cd sd-webui-forge-classic
set COMMANDLINE_ARGS=--forge-ref-a1111-home "C:\ai\stable-diffusion-webui" --listen --port 7860 --api --enable-insecure-extension-access --cuda-malloc
"C:\Users\ユーザー名\AppData\Local\Programs\Python\Python310\python.exe" -m venv venv
venv\Scripts\activate
pip install torch==2.5.1+cu121 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Python 3.10環境下でForge Neoを起動した際、Python 3.11以降の機能(hashlib.file_digest)が呼び出されて発生する「500内部エラー(デッドロック)」を回避するため、ソースコードを直接書き換えます。
C:\sd-forge-neo\sd-webui-forge-classic\modules\hashes.py を開きます。def calculate_sha256_real(filename: os.PathLike):
sha256_hash = hashlib.sha256()
with open(filename, "rb") as f:
for byte_block in iter(lambda: f.read(4096), b""):
sha256_hash.update(byte_block)
return sha256_hash.hexdigest()
webui-user.bat を実行します。すでに正解の Torch と NumPy が入っているため、Gradio 4.40.0 を含む残りの周辺依存関係が綺麗に自動インストールされ、正常起動します。models\Stable-diffusion, models\VAE, models\text_eccoder 等)へ配置します。
🎞️ FFmpegによる超軽量GIFアニメ変換バッチ(おまけ)
WanVideoから出力された高画質な mp4 動画を、ブログやSNSに貼り付けやすいように「フレームレートと解像度を半分に抑え、色数を64色に間引いてファイルサイズを劇的に軽量化」する、FFmpeg用の一発変換バッチファイル(.bat)のコードです。
@echo off
cd /d "%~dp0"
:loop
if "%~1"=="" goto end
ffmpeg -i "%~1" -vf "fps=8,scale=384:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=64[p];[s1][p]paletteuse=dither=none" -y "%~n1_optimized.gif"
shift
goto loop
:end
pause
※「右クリックで実行したい」「画質を選択式にしたい」「先頭フレームをカットしたい」などの希望も、Geminiに相談してください。
↓↓↓↓↓↓↓ 後編へ続く…… ↓↓↓↓↓↓↓