ComfyUIの次はIrodori TTS!n8nからローカルAI音声生成を完全自動化

ComfyUIの次はIrodori TTS!n8nからローカルAI音声生成を完全自動化 AI制作・自動化

前回の記事では、n8nからComfyUIを呼び出し、画像を自動生成するところまで成功しました。

画像が作れるようになったことで、次はいよいよ音声生成です。

目標は、

「記事を渡したら、自動でナレーション音声まで作る」

そんなワークフローを完成させることでした。

今回の相手はIrodori TTS

Irodori TTS自体は以前から使えていました。

ブラウザで文章を入力すれば、自然な日本語音声を生成できます。

しかし、それでは毎回手作業になります。

欲しいのは、

n8nから自動で音声を作る仕組み。

ここから苦戦が始まりました。

APIとの格闘

最初はPythonからGradio APIを呼び出そうとしました。

しかし、

  • 引数の順番が分からない

  • Value is not in the list of choices

  • APIには届くのに動かない

  • Pythonでもエラー

など、試行錯誤の連続。

さらに、UIでは普通に音声生成できるのに、APIでは失敗するという状態にも悩まされました。

最も苦労したのは、

「APIは存在するのに404になる」

という状況です。

最初は、

/api/predict/_run_generation

を呼び出していました。

しかし何度試しても404エラー。

しかも途中では接続先IPを間違えていたため、タイムアウトまで発生。

IPを修正すると通信自体は成功しましたが、それでも404は変わりませんでした。

ここで、

「通信はできている。ということは、URLそのものが違うのでは?」

と考え直すことにしました。

UIからヒントを探す

発想を変え、

「UIは裏で何を送っているのか」

を調査。

Gradioの設定ファイルを解析し、

  • エンドポイント

  • 入力パラメータ

  • 引数の順番

を一つずつ確認していきました。

そこで分かったのが、

Gradio 5系ではAPIの入口が変わっていた

ということです。

これまで使っていた

/api/predict/…

ではなく、

/gradio_api/call/…

が正しいエンドポイントでした。

半信半疑でURLを書き換えて実行すると、

それまで404しか返ってこなかったAPIから、

event_id

が返ってきました。

「あ、やっと正しい入口を見つけた。」

ここが今回一番うれしかった瞬間です。

たどり着いた答え

最初はPythonスクリプトが必要だと思っていました。

実際、PythonでAPIを試しながら挙動を確認したことで、Gradioの仕組みを理解することができました。

しかし最終的には、

HTTP Requestノードだけ

で完結できることが判明しました。

ワークフローは、

POSTでevent_id取得
↓
GETで生成完了待機
↓
音声URL取得
↓
WAVダウンロード

という、Gradio独特のイベント方式でした。

Pythonで試行錯誤したことが、結果的に「Pythonを使わなくても実現できる方法」へたどり着く近道になったのです。

ついに完全自動化

最終的には、

  • 音声生成開始

  • 生成完了待機

  • 音声URL取得

  • WAVファイル取得

まで、すべてn8nだけで成功。

PythonもExecute Commandも不要でした。

思わぬところで気付いた課題

実は、この作業の途中で別の問題にも気付きました。

気が付くと、パソコンのファンの音が以前より大きくなっていました。

「何か動きっぱなしなのでは?」

と思い、メモリ使用量を確認すると、16GB中14GB近くが使われている状態。

そこでhtopでプロセスを確認してみると、試しに起動したComfyUIとIrodori TTSが、そのままバックグラウンドで動き続けていることが分かりました。

ブラウザを閉じても、AIモデルはメモリを保持したまま待機していたのです。

その結果、生成を繰り返すたびにメモリを圧迫し、パソコンの動作も重くなっていました。

そこで、まずSwapの使用状況を確認。以前メモリ不足になった際のデータが残っていたため、一度RAMへ戻して整理しました。

さらに、ComfyUIとIrodori TTSをsystemdサービスとして登録。

これにより、

  • 必要なときだけ起動

  • 使い終わったら停止

  • 起動用ターミナルを探す必要がない

  • PC再起動後も簡単に管理できる

という運用に変更できました。

今回の目的は音声生成の自動化でしたが、その過程でホームラボ全体の運用方法まで改善できたのは思わぬ収穫でした。

一歩ずつ動画生成システムへ

今回完成したのは、動画生成パイプラインの音声生成部分です。

現在の構想は、

note記事
↓
Qwenで要約・台本生成
↓
ComfyUIで画像生成 ✅
↓
Irodori TTSで音声生成 ✅
↓
Whisperで字幕生成
↓
FFmpegで動画化
↓
YouTube・Xへ投稿

ここまで来ると、ようやく目指していた「ローカルAI制作工場」の形が少しずつ見えてきました。

LinuxもDockerもn8nも、数日前まではほとんど初めてでした。

それでも、一つずつエラーを解決しながら進めた結果、自動化だけでなく、その環境を安定して運用する仕組みまで整い始めています。

次はいよいよ、Whisperによる字幕生成とFFmpegによる動画自動生成。

画像・音声までは自動化できたので、ここまで完成すれば、

記事 → 台本 → 画像 → 音声 → 字幕 → 動画

という一連の流れが、ローカルAIだけで完結する「AI制作工場」にかなり近づくはずです。

まだ試行錯誤は続きますが、一歩ずつ積み上げながら、自分だけのAI制作環境を完成させていこうと思います。

コメント

タイトルとURLをコピーしました