n8n攻略!自分でノードを作ってホームサーバー最大の敵を倒した話

n8n攻略!自分でノードを作ってホームサーバー最大の敵を倒した話 AI制作・自動化

「AI環境を作る」と聞くと、何時間もパソコンの前に張り付いている姿を想像するかもしれません。

でも今日の私は違いました。

昼食の時間。 子どもたちのご飯を作りながら、片手にはGalaxy Z Fold7。

家のLinuxマシンにはTermiusでSSH接続し、もう片方の画面ではn8n。

そんな状態で、ここ数日ずっと私を苦しめていた最大の敵と戦っていました。というのも、あることを思いついたからです。

最大の敵は「Read/Write Files from Disk」ノード

ComfyUIで生成した画像を保存したい。

たったそれだけなのに、

  • ファイルが存在しない

  • 書き込みできない

  • パスがおかしい

  • 権限がない

と、何度挑戦しても失敗。

Dockerのマウントも確認。 Linuxの権限も確認。 パスも何度も見直しました。

それでも動かない。

「またこのノードか……」

そう思うくらい、このノードには何度も苦しめられてきました。

しかし、ファイルの読み込み、保存程度を一々手動にしたのでは何のためにこんな苦労して自動化してるんだかわからないくらい手間が増えそうなことも予想されました。だからこそ、ここで投げ出すわけにはいきませんでした。

正直、ファイルの保存と読み込みなんて、自動化の中では一番地味で基本的な処理のはずです。
コードに詳しいわけではありませんが、それでも構造はシンプルなことは想像がつき、凝ったコードが必要な部分ではないんじゃないかと思いました。

発想を変えた

「このノードを使わなければいいんじゃないか?」

そう思い、一度ChatGPTに海外フォーラムやGitHubの情報も含めて調べてもらいました。

すると、Read/Write Files from Diskノードについては、n8nのバージョンアップ後に「突然書けなくなった」「以前は動いていたのに動かない」「権限やパスに問題がないのに失敗する」といった報告がGitHubやコミュニティで繰り返し挙がっていることが分かりました。

もちろん全ての環境で起きるわけではありませんし、原因もケースごとに異なります。

それでも、

「私だけがハマっているわけではない」

と分かったことで、設定を延々と見直すよりも別の方法を考えよう、と発想を切り替えることができました。

そこで試したのがCodeノードです。

Dockerの設定を少し変更し、JavaScriptからNode.js標準のfsモジュールを使えるようにしました。

最初はEACCES(Permission denied)という権限エラー。

そこで保存先ディレクトリの権限を確認・調整し、Codeノードから書き込みを試したところ、テキストファイルの保存に成功しました。

さらに、ComfyUIからHTTP Requestで取得したPNG画像も、

ComfyUI → HTTP Request → Codeノード

という流れで、NAS用ライブラリへ保存することができました。

敵はn8nではなかった

今回分かったことがあります。

n8n自体が悪かったわけではありません。

Codeノードからは問題なく保存できます。

つまり、私の環境ではRead/Write Files from Diskノード側で既知の問題や環境との相性が起きていた可能性があります。

原因は断定できません。

しかし、海外でも同様の報告が継続的に挙がっていること、そして同じ保存先ディレクトリに対してCodeノードでは正常に保存できたことから、

「このノードを待つより、自分で代替ノードを作ろう」

という判断をしました。

結果として、

Read/Write Files from Diskノードに頼らず、

自分専用の保存ノード

を作ることができました。

そして今回、一番衝撃だったのはここです。

「ファイルを読み込む」「ファイルを保存する」という、自動化の土台とも言える基本ノードが、自分の環境では思うように動かなかったこと。

もちろん全ての環境で同じ現象が起きるわけではありません。

しかし、GitHubやコミュニティにも同様の報告が複数あり、私自身も何度検証してもCodeノードでは保存できる一方で、Read/Write Files from Diskノードでは保存できませんでした。

だからこそ、「動かないものを追い続ける」のではなく、「動く仕組みを自分で作る」という発想に切り替えることができました。

今振り返ると、この考え方こそがホームラボを作る一番の面白さなのかもしれません。

Galaxy Z Fold7だからできた

今回驚いたのは、ほとんどの作業をGalaxy Z Fold7だけで進められたことです。

折りたたみ画面で、

  • 左にTermius(Linux操作)

  • 右にn8n

  • 必要に応じてChatGPT

という構成。

子どもたちの昼食を作りながらでも、

  • Dockerを再起動し

  • Linuxを操作し

  • JavaScriptを書き

  • ワークフローを修正する

ことができました。

以前なら、

「帰宅してからパソコンを開こう」

と諦めていた作業です。

折りたたみスマホは、大画面で動画を見るためだけの端末ではありません。

家中どこでもホームサーバーを開発できるモバイル開発環境にもなるのだと、改めて実感しました。

次はいよいよ本命

これで、

  • ComfyUI画像生成

  • 自動保存

までは完成しました。

次は、

  • FFmpegで動画化

  • 音声合成

  • 字幕付け

  • YouTube・SNS投稿

という、自分が本当に作りたかった自動生成パイプラインへ進みます。

子どもたちの昼食を作る合間に、ホームサーバー最大の敵を一つ倒した休日。

一歩ずつですが、自宅の古いパソコンが「AI動画を自動で生み出すホームラボ」へと進化しているのを実感した一日でした。

コメント

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