AI自動化作業就選 n8n 吧。在過去幾個月中,它逐漸得到普及。
那麼 n8n 一般是要付費的,但你知道有一種方法可以(合法地)免費使用它嗎?
我身邊看到許多人在不知道的情況下使用它,因此我決定將具體的步驟整理成文章發佈。
n8n 是一個可以輕鬆構建 AI 工作流程的方便工具,即使沒有程式設計知識,也可以構建工作流程進行業務自動化,實在是個非常便利的工具。
使用雲端版 n8n,每月的費用約為 4,000 日圓,讓許多人認為使用它需要一些勇氣,但其實在本地使用可以完全免費執行。
此外,雲端版中無法使用的一些節點在本地是可以使用的,因此如果是個人用途,您絕對應該使用本地安裝的方式。
如果您不知如何在本地使用或想了解具體的啟動方法,我已經將設置方法以實作形式整理了一下,希望您能挑戰看看。
1|完全免費使用 n8n
2|適合想使用 npm 的人設置
3|使用 Docker 的範例
4|附註:關於設置與持久化
在 X 平台上,我們每天發信這樣的影片和與 AI 有關的資訊,希望您能關注或者按讚來支持我們,這將激勵我們繼續努力。
我們分享使用視頻 AI 和 n8n 進行全自動視頻編輯的信息,關注後能掌握如何使用和前沿案例。
n8n 是一個可以直觀地構建 AI 工作流程的服務。類似的工具有 Dify。n8n 與 Dify 的主要區別在於,n8n 更加專注於自動化,而 Dify 則以對話型(如 ChatBot)為中心。
使用 n8n 的方式大致有三種,因此我在下面介紹其類型及簡要特徵:
npx n8n
可以立即執行ffmpeg
等命令ffmpeg
和字型,則可以從 Execute Command 節點執行ffmpeg
等,建議選擇本地版這次,我將具體解釋如何使用 npm 方式和 Docker 方式在本地安裝並免費使用 n8n。各自的 npm 版和 Docker 版都有解釋,因此有興趣或需要使用的人可以隨意閱讀。
請先進行 Node 環境的設置及 n8n 功能確認。
node -v
npm -v
即使不直接安裝 n8n,也可以使用 npx 啟動。不過如果每次使用,建議還是在全局安裝會比較好。
npx n8n
打開瀏覽器並輸入 http://localhost:5678
,如果成功顯示 n8n 就表示成功。
首次啟動時會出現註冊介面,註冊後登錄即可完成。
▼ 附註:
通過在本地安裝 n8n,可以在不需要每次都執行 npx 命令的情況下啟動它。
npm install -g n8n
n8n # 或者 n8n start
打開 http://localhost:5678
,應該會顯示相同的畫面。
更新時可以執行 npm update -g n8n
。
在此次實作中,我們將使用 ffmpeg 創建視頻,因此事先需要在電腦環境中安裝 ffmpeg。如果尚未安裝,請根據官方的步驟進行安裝。
安裝完畢後,請在終端機中執行以下命令確認是否運作正常:
ffmpeg -version
走到這一步,實際上只需要啟動 n8n 進行工作流程的執行確認。
首先,創建一個新項目並準備一個無任何顯示的工作流程畫面。
然後選擇導入 → 從 JSON 文件導入,導入下面的工作流程 JSON 文件。
可以從這篇文章中複製文件 → 直接將此文件導入即可。
<details><summary>這裡請複製:</summary>
{
"name": "【mac】n8n設置教程",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
0,
0
],
"id": "6dac773c-c31d-43cf-8eb5-dcb1fa656c0c",
"name": "執行開始"
},
{
"parameters": {
"command": "mkdir -p \"$HOME/n8n-work\" && ffmpeg -y -f lavfi -i \"color=c=#0044aa:s=1280x720:d=5\" -vf \"drawtext=text='n8n + ffmpeg (macOS)':fontsize=64:fontcolor=white:x=(w-text_w)/2:y=(h/2)-70,drawtext=text='本地執行OK':fontsize=48:fontcolor=white:x=(w-text_w)/2:y=(h/2)+10\" -pix_fmt yuv420p -movflags +faststart \"$HOME/n8n-work/output.mp4\"\n",
},
"type": "n8n-nodes-base.executeCommand",
"typeVersion": 1,
"position": [
208,
0
],
"id": "a32ecbd0-2bf4-49db-812b-84c286fcc4ab",
"name": "視頻渲染命令"
},
{
"parameters": {
"fileSelector": "={{ $env.HOME }}/n8n-work/output.mp4",
"options": {}
},
"type": "n8n-nodes-base.readWriteFile",
"typeVersion": 1,
"position": [
416,
0
],
"id": "33a1c531-aff5-44fe-bd34-8c784fd5dbca",
"name": "視頻文件確認"
}
],
"pinData": {},
"connections": {
"執行開始": {
"main": [
[
{
"node": "視頻渲染命令",
"type": "main",
"index": 0
}
]
]
},
"視頻渲染命令": {
"main": [
[
{
"node": "視頻文件確認",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "efdb46cb-6db1-4227-a0b2-02a73fdb5c56",
"meta": {
"instanceId": "a69be3ce253ea13b7eda85dc3f6912cfd85043fac5ed34f7b32921ae50f0bb7a"
},
"id": "zKM59yuqoR0Mgzk5",
"tags": []
}
成功匯入上面的 JSON 文件後,應該會顯示出下圖所示的工作流程。
按下執行按鈕後,會生成一個 5 秒的視頻,這是一個簡單的工作流程。
為了幫助第一次使用 n8n 的人,接下來將解釋出現的各種節點。熟悉的朋友可以選擇跳過!
▼ 實際的 ffmpeg 命令
ffmpeg -y -f lavfi -i "color=c=#0044aa:s=1280x720:d=5" \
-vf "drawtext=text='n8n + ffmpeg (npm)':fontsize=64:fontcolor=white:x=(w-text_w)/2:y=(h/2)-70,\
drawtext=text='本地執行・運行確認OK':fontsize=48:fontcolor=white:x=(w-text_w)/2:y=(h/2)+10" \
-pix_fmt yuv420p "C:/n8n-work/output.mp4"
執行時的注意事項:
C:\n8n-work
~/n8n-work/output_npm.mp4
drawtext
的字型解決會因環境不同而異,若顯示不正常可明示字型檔案(例:Windows C:\Windows\Fonts\arial.ttf
,Linux /usr/share/fonts/...
)▼ 運行確認:
至此,npm 方式的 n8n 設置及運行確認完成。接下來將講解使用 Docker 的本地搭建方法。
官方似乎推薦這種方法。
建立 Dockerfile,並使用 Docker Compose 進行持久化設計。
在此次的解說文章中,以進行視頻渲染的工作流程為例,因此需要先在擴展的 Dockerfile 中放入 Execute Command 需要用到的 ffmpeg 和字型。
下面將包括如何執行這個步驟。
在您喜歡的目錄下創建兩個目錄。我是放在用桌面目錄下。
在 n8n-data
中保存 n8n 的內部數據。
在 n8n-work
中保存實際工作流程中使用的文件,這次的實作假設將存放創建的視頻文件等。
mkdir -p "$HOME/Desktop/n8n-data" "$HOME/Desktop/n8n-work"
接下來啟動 Docker。這樣會掛載桌面文件夾。
docker run -d --name n8n -p 5678:5678 -v "$HOME/Desktop/n8n-data:/home/node/.n8n" -v "$HOME/Desktop/n8n-work:/files" docker.n8n.io/n8nio/n8n
現在進行實際的運作確認。如果成功,瀏覽器上應該會顯示會員註冊的畫面。
open http://localhost:5678
docker ps
docker logs -f n8n
基本的運作確認完成後,可以通過以下命令暫時關閉 n8n。
docker stop n8n
docker start n8n
docker rm -f n8n
接下來,我們將完成實際能夠運行 ffmpeg 等命令的 n8n 在 Docker 中的設置。
準備一個不同的目錄。以下命令將在桌面中創建一個新目錄。
mkdir -p "$HOME/Desktop/n8n-docker-ffmpeg/n8n-data" "$HOME/Desktop/n8n-docker-ffmpeg/work"
cd "$HOME/Desktop/n8n-docker-ffmpeg"
然後,準備 Dockerfile。這次我們將 Alplne 的軟件包中安裝 ffmpeg、fontconfig、DejaVu、Noto CJK。
準備 Dockerfile,並將以下代碼輸入。
FROM docker.n8n.io/n8nio/n8n:latest
USER root
RUN apk add --no-cache \
ffmpeg \
fontconfig \
ttf-dejavu \
font-noto-cjk \
&& fc-cache -f
USER node
接著,再創建 compose.yaml。
services:
n8n:
build: .
image: n8n-ffmpeg:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Tokyo
- TZ=Asia/Tokyo
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_RUNNERS_ENABLED=true
volumes:
- ./n8n-data:/home/node/.n8n
- ./work:/files
最終的目錄結構應該如下所示。
n8n-docker-ffmpeg/
├── Dockerfile
├── compose.yaml
├── n8n-data/
│ └── .keep
└── work/
└── .keep
在該目錄中使用以下命令來執行構建和啟動。
※ 基本上在有 compose.yaml 的層級執行。
cd "$HOME/Desktop/n8n-docker-ffmpeg"
docker compose build
docker compose up -d
執行一段時間後,若執行完成後可以打開畫面確認。
open http://localhost:5678
若打開正常的話,如同 npm 版本,則可以導入工作流程 JSON 進行執行確認。
幾乎與 npm 執行的過程相同,我們將使用 Docker 實際啟動 n8n 並在本地完成執行。
請注意,ffmpeg 的命令與 npm 版本稍有不同。(雖然這個 json 文件也是可以在 npm 版本中執行,但因為字型問題可能會出現一些文字錯誤)
我將附上 Docker 版的工作流程文件,請複製文件並導入到 n8n 項目中。
<details><summary>請從這裡複製:</summary>
{
"name": "My workflow",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
0,
0
],
"id": "94724da7-806c-4f7a-ab36-db28e78775bf",
"name": "執行開始"
},
{
"parameters": {
"command": "ffmpeg -y -f lavfi -i \"color=c=#0044aa:s=1280x720:d=5\" -vf \"drawtext=fontfile=/usr/share/fonts/noto/NotoSansCJK-Regular.ttc:text='n8n + ffmpeg (Docker)':fontsize=64:fontcolor=white:x=(w-text_w)/2:y=(h/2)-70,drawtext=fontfile=/usr/share/fonts/noto/NotoSansCJK-Regular.ttc:text='日本語OK':fontsize=48:fontcolor=white:x=(w-text_w)/2:y=(h/2)+10\" -pix_fmt yuv420p -movflags +faststart /home/node/n8n-work/output.mp4\n",
},
"type": "n8n-nodes-base.executeCommand",
"typeVersion": 1,
"position": [
208,
0
],
"id": "03fb0858-d7b6-4125-99f0-a746140b2bad",
"name": "視頻渲染命令"
},
{
"parameters": {
"fileSelector": "={{ $env.HOME }}/n8n-work/output.mp4",
"options": {}
},
"type": "n8n-nodes-base.readWriteFile",
"typeVersion": 1,
"position": [
416,
0
],
"id": "351682b0-c568-46f3-8be9-55f6c236db2b",
"name": "視頻文件確認"
}
],
"pinData": {},
"connections": {
"執行開始": {
"main": [
[
{
"node": "視頻渲染命令",
"type": "main",
"index": 0
}
]
]
},
"視頻渲染命令": {
"main": [
[
{
"node": "視頻文件確認",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "e778eff3-0e77-454b-9802-0f2260802851",
"meta": {
"instanceId": "c6c268789dd010b78843bfd8a3915fffc599acaaf824787b108bf057a2117b27"
},
"id": "GwQJb3wYuXy5mCqs",
"tags": []
}
如果顯示出下圖所示的工作流程則成功。
按下執行按鈕後,視頻應該會生成,便完成了整個過程。
如果有問題,請檢查字型和 ffmpeg 是否正確設置。重新構建可能會在某些情況下成功。
drawtext
無法的錯誤,請在容器執行 ffmpeg -filters | grep drawtext
以檢查其有無。請確認 Dockerfile 中的 apk add ffmpeg
是否正確安裝,如有需要可執行重新構建(docker compose build --no-cache
)。fontfile
。/files
找不到,請檢查 Compose 的卷設置和實際文件夾 ./work
的權限。本文介紹了使用 n8n 免費服務的本地安裝步驟。
有兩種使用 npm 方式和 Docker 方式,選擇哪種方式都可以,個人較喜歡使用 npm。
這次以 ffmpeg 在本地進行視頻渲染的方式作為主題進行了設置說明。我認為整理一下雲端版本中無法使用的節點等限制的不同也是不錯的。
如果這篇文章對你有幫助,請關注我的 note 或 X 帳號!
這將成為我未來活動的激勵來源。
原文出處:https://qiita.com/hikarun_videoai/items/de239584d7e672a31f9a