Tự động hóa việc tạo hình ảnh với n8n và ComfyUI
Bài viết này là phần thứ ba trong chuỗi bài viết về cách tích hợp ComfyUI với các công cụ khác để xây dựng các quy trình làm việc phức tạp hơn. Chúng ta sẽ đi sâu hơn vào việc kết nối ComfyUI từ các giải pháp mã hóa và không mã hóa, sử dụng các cuộc gọi API hoặc máy chủ MCP.
Bạn sẽ học cách sử dụng API của ComfyUI để xây dựng ứng dụng tùy chỉnh và tự động hóa các nhiệm vụ, tạo ra các hệ thống mạnh mẽ và tự động cho AI sinh tạo.
n8n là một công cụ tự động hóa quy trình làm việc, kết nối các ứng dụng, API và dịch vụ mà không cần yêu cầu kiến thức kỹ thuật sâu. Nó cho phép người dùng tạo ra các quy trình làm việc phức tạp, nhiều bước bằng cách sử dụng một trình soạn thảo hình ảnh dựa trên nút. Với n8n, bạn có thể tự động hóa các nhiệm vụ trên hàng ngàn tích hợp, từ CRM và cơ sở dữ liệu đến ứng dụng nhắn tin và dịch vụ đám mây.
Đây là một giải pháp fair-code và open-core. Bạn có thể tự lưu trữ và sửa đổi phần mềm một cách tự do, nhưng các nhà cung cấp SaaS phải đóng góp lại cho dự án nếu họ cung cấp n8n như một dịch vụ. Hơn nữa, một số tính năng nâng cao như biến toàn cục, nhiều môi trường (dev, staging, prod, v.v.), kiểm soát phiên bản bằng Git hoặc điều khiển n8n qua API không có sẵn trong phiên bản cộng đồng và mã nguồn mở của sản phẩm.
Trong bài viết này, chúng ta sẽ khám phá cách gọi ComfyUI từ một quy trình làm việc dựa trên đại lý với sự tương tác của con người và sử dụng LLM. Đại lý được hướng dẫn để biến một gợi ý đơn giản từ người dùng thành một Hướng dẫn Gợi ý JSON siêu mạnh mẽ, sau đó được truyền vào ComfyUI. Để có thêm thông tin, bạn có thể đọc bài viết trước đó của tôi về Hướng dẫn phong cách Gợi ý JSON.
Cài đặt
n8n là một ứng dụng web Vue/TypeScript rất đơn giản để cài đặt, cho dù bạn thích chạy nó trên một cài đặt Node.js hay bên trong một container Docker.
- Node.js:
npx n8n
- Docker:
docker volume create n8n_data
và sau đódocker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Sau khi tất cả các phụ thuộc được cài đặt, giao diện web của trình soạn thảo n8n có thể truy cập tại http://localhost:5678
.
Quy trình làm việc Từ văn bản đến hình ảnh
Trường hợp sử dụng
Thiết kế quy trình làm việc được thực hiện trong giao diện web của Trình soạn thảo, và đây là một quá trình rất trực quan mà không yêu cầu bất kỳ kiến thức lập trình nào, miễn là bạn sử dụng các nút đã được định nghĩa trước cho một trường hợp sử dụng tiêu chuẩn. Đó là cách tiếp cận của chúng tôi ở đây, vì chúng tôi sẽ tạo một quy trình làm việc rất đơn giản với 4 nút.
- Nút kích hoạt trò chuyện để bắt đầu quy trình làm việc với một tin nhắn từ người dùng để ghi lại gợi ý ban đầu cho các hình ảnh sẽ được tạo bằng ComfyUI.
- Nút Đại lý AI để gọi một mô hình OpenAI (mặc dù có thể là các giải pháp SaaS khác như Mistral, Anthropic, hoặc Google Gemini, hoặc các mô hình cục bộ được cung cấp qua Ollama hoặc trực tiếp bởi Hugging Face). Đại lý có hướng dẫn về cách mở rộng gợi ý ban đầu từ nút trước vào một Hướng dẫn Gợi ý JSON.
- Nút Mô hình trò chuyện OpenAI để kết nối với GPT của OpenAI.
- Nút cộng đồng n8n-nodes-comfyui để kết nối với một phiên bản ComfyUI đang chạy. Để cài đặt, hãy vào menu "Cài đặt / Nút cộng đồng".
Chúng tôi đang sử dụng một cách đơn giản nút Đại lý AI này và không yêu cầu bộ nhớ hay các công cụ bên ngoài.
Thông số quan trọng nhất là tin nhắn hệ thống được cung cấp cho LLM để mở rộng gợi ý ban đầu của người dùng. Nút Mô hình trò chuyện OpenAI xử lý thông tin xác thực để kết nối với OpenAI và cho phép chúng tôi chọn mô hình GPT 4.1 mini.
Phản hồi của LLM sau đó được gửi đến nút cuối cùng, được kết nối với ComfyUI.
Nút Cộng đồng ComfyUI
Khi đã cài đặt, nút cộng đồng này rất dễ sử dụng.
Đầu tiên, chúng ta cấu hình thông tin xác thực để kết nối với ComfyUI.
- API URL: Trong ví dụ này, nó là
http://127.0.0.1:8188
, nhưng cũng có thể là một phiên bản ComfyUI từ xa. - API Key: Điều này được sử dụng nếu bạn đã cấu hình một trên phía ComfyUI.
Tiếp theo, chúng ta chỉ định định dạng đầu ra (PNG hoặc JPEG) và thời gian chờ cho việc giao tiếp với ComfyUI. Trong vùng văn bản Workflow JSON, chúng ta sao chép nội dung của quy trình làm việc xuất khẩu từ ComfyUI (bằng cách sử dụng menu "Tệp / Xuất (API)").
Điều này có nghĩa là n8n sẽ gửi quy trình làm việc để thực thi đến API ComfyUI dưới dạng JSON. Chúng ta cần sửa đổi quy trình làm việc ComfyUI bằng cách sử dụng một biểu thức chứa biến $node["Đại lý AI"].data. Giá trị của nó được thiết lập động theo gợi ý được cung cấp bởi nút trước trong quá trình thực thi n8n.
Vị trí chính xác để tiêm gợi ý phụ thuộc vào quy trình JSON xuất khẩu từ ComfyUI. Ở đây, nó nằm trong nút "39.6" loại CLIP Text Encode, nhưng nó có thể có tên khác trong các quy trình của bạn.
Thực thi
Chúng ta đã sẵn sàng! Chúng ta kiểm tra rằng ComfyUI đang chạy và sẵn sàng để khởi động quy trình làm việc từ giao diện n8n bằng cách nhập một gợi ý trong hộp trò chuyện.
Dưới đây là một video ngắn về việc thực thi quy trình làm việc. n8n hiển thị tiến trình theo thời gian thực, và các hình ảnh được tạo có thể được hình dung bên trong nút ComfyUI.
Dưới đây là hai hình ảnh được tạo từ gợi ý này: "Một cảnh quay điện ảnh kịch tính của một thư viện cổ vào ban đêm, nơi những cuốn sách sống động và các trang của chúng bay lượn như những chú chim, tạo thành các chòm sao trong không khí."
Tất nhiên, quy trình làm việc 3 bước này rất đơn giản. Sức mạnh thực sự của việc kết hợp n8n và ComfyUI sẽ trở nên rõ ràng hơn với các trường hợp sử dụng phức tạp hơn, tận dụng khả năng tích hợp rộng rãi của n8n với nhiều thành phần và giải pháp khác.
Quy trình làm việc Từ hình ảnh đến hình ảnh
Trường hợp sử dụng
Bây giờ, hãy tạo một quy trình làm việc khác để biến đổi một hình ảnh hiện có dựa trên hướng dẫn của người dùng. Chúng tôi sẽ cố tình giữ ví dụ này siêu đơn giản để rõ ràng, nhưng trường hợp sử dụng của bạn có thể bao gồm một quy trình làm việc phức tạp hơn tận dụng sức mạnh của n8n.
Ở đây, chúng ta sẽ chỉ sử dụng ba nút:
- Nút biểu mẫu n8n / kích hoạt biểu mẫu n8n để bắt đầu quy trình làm việc bằng cách hiển thị một biểu mẫu HTML cho người dùng tải lên hình ảnh để sửa đổi và chỉ định những thay đổi cần áp dụng.
- Nút Biến đổi Hình ảnh ComfyUI cộng đồng để kết nối với một phiên bản ComfyUI đang chạy. Để cài đặt, hãy vào menu "Cài đặt / Nút cộng đồng" và tìm kiếm n8n-nodes-comfyui-image-to-image. Quy trình làm việc mẫu xuất khẩu từ ComfyUI sử dụng mô hình Kontext Edit để sửa đổi một hình ảnh hiện có.
- Nút Biểu mẫu n8n / Kết thúc Biểu mẫu để thông báo cho người dùng khi hình ảnh được tạo và cung cấp cho họ tùy chọn tải xuống.
Nút Biến đổi Hình ảnh ComfyUI
Nút này rất giống với nút n8n-nodes-comfyui mà chúng tôi đã sử dụng trước đó, với việc chèn biểu thức $json.Promt vào quy trình JSON xuất khẩu từ ComfyUI để tiêm các hướng dẫn từ người dùng.
Sự khác biệt chính liên quan đến cách mà hình ảnh đầu vào cần sửa đổi được xử lý:
- Loại đầu vào xác định cách mà hình ảnh được nhận từ nút biểu mẫu trước; chúng tôi sẽ chọn Nhị phân thay vì URL hoặc văn bản Base64.
- Thuộc tính chứa tệp nhị phân phải được xác định, đó là trường data ở đây.
- ID Nút Hình ảnh được sử dụng để xác định — trong quy trình JSON xuất khẩu từ ComfyUI — nút phụ trách tải hình ảnh đầu vào (nó phải thuộc loại LoadImage).
Chúng tôi đã thêm nút cuối cùng để hoàn tất việc quản lý biểu mẫu được bắt đầu với nút đầu tiên, lấy hình ảnh đã sửa đổi, trả lại nó dưới dạng định dạng nhị phân và cung cấp cho người dùng tùy chọn lưu nó cục bộ.
Thực thi
Hãy thực thi quy trình làm việc. n8n hiển thị một biểu mẫu để chúng tôi nhập cả hình ảnh và các hướng dẫn liên quan đến việc sửa đổi của nó.
Dưới đây là một video ngắn về việc thực thi quy trình làm việc.
Hình ảnh ban đầu:
Hình ảnh đã sửa đổi với gợi ý "Biến đổi cảnh vào ban đêm với ánh trăng và ánh sáng của mặt trăng":
Quy trình làm việc thứ hai này đơn giản đến mức chúng tôi có thể thực hiện chính xác điều đó trực tiếp bằng cách sử dụng giao diện ComfyUI. Nó ở đây chỉ để minh họa cách tích hợp với n8n có thể được thực hiện. Một quy trình làm việc có giá trị hơn có thể, ví dụ, bao gồm một vòng lặp cho phép người dùng tiếp tục sửa đổi các đầu ra hình ảnh cho đến khi họ hài lòng.
Ngoài ra, lưu ý rằng gói n8n-nodes-comfyui cung cấp các nút tùy chỉnh khác để tích hợp vào các quy trình làm việc của bạn, chẳng hạn như:
- Biến đổi Hình ảnh Đôi
- Hình ảnh Đơn thành Video
- Tạo Video Hình ảnh Đôi
Cũng cần lưu ý rằng mặc dù n8n cung cấp các nút Biểu mẫu, nó chủ yếu được dự định được sử dụng ở phía backend thông qua các cuộc gọi API. Tuy nhiên, tính năng này bị giới hạn cho các nhà cấp phép Doanh nghiệp.
Với hai quy trình làm việc này, chúng tôi đã chứng minh cách n8n có thể phục vụ như một bộ điều phối mạnh mẽ cho ComfyUI. Bằng cách tận dụng trình soạn thảo trực quan và thư viện tích hợp rộng lớn của nó, chúng tôi đã biến một gợi ý của người dùng đơn giản thành một hướng dẫn cấu trúc phong phú cho việc tạo hình ảnh và tạo ra một quy trình chuyển đổi hình ảnh sang hình ảnh liền mạch.
Trong khi các ví dụ của chúng tôi rất đơn giản để minh họa các khái niệm, giá trị thực sự của n8n nằm ở khả năng kết nối ComfyUI với một hệ sinh thái công cụ rộng lớn, từ cơ sở dữ liệu và CRM đến dịch vụ nhắn tin và các mô hình AI khác. Điều này mở ra các khả năng mới để xây dựng các ứng dụng tinh vi, từ đầu đến cuối, vượt xa những gì giao diện ComfyUI độc lập có thể cung cấp.
Trong bài viết tiếp theo của chuỗi này, chúng ta sẽ khám phá một mô hình khác để kết nối ComfyUI với các giải pháp dựa trên đại lý. Chúng ta sẽ đi sâu vào Giao thức Ngữ cảnh Mô hình (MCP), được thiết kế để tối ưu hóa và chuẩn hóa cách mà các mô hình AI giao tiếp và chia sẻ thông tin ngữ cảnh. Điều này sẽ cung cấp một phương pháp mới, hiệu quả hơn để các đại lý tương tác với và kiểm soát ComfyUI.