見出し画像

【ComfyUI】 ComfyUI Registryに自作のカスタムノードを登録し、公式のカスタムノードとして利用してもらおう!

先日、初めてComfyUIのカスタムノードを作成し、GitHubで公開しました。以下が作成したカスタムノードになります。このカスタムノードは、fal.aiのFLUX.1[dev]のAPIを実行するためのノードになります。

今回は、このカスタムノードをComfy Registryに登録し、公式のカスタムノードとしてComfyUI Managerからインストールできるようにするまでの過程を解説します。


1. はじまりはPRから

リポジトリを公開した翌日、ComfyUIの公式チームのRobin氏からPR(Pull Request)が届いていました。内容としては、ComfyUIが公式で管理しているカスタムノードの公開コレクションのComfy Registryに私が作成したカスタムノードを登録してほしいという旨でした。

https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux/pull/1

私もカスタムノードを公開するにあたり、ComfyUI Managerからインストールできないのは不便だと感じていたので、Comfy Registryに登録することにしました。

PRでCommitされたファイルは、以下の2点でした。

  • pyproject.toml: ComfyUI Registryにカスタムノードを登録する際の情報をまとめたファイル

  • .github/workflows/publish.yml: pyproject.tomlの更新をトリガーに発動し、リポジトリの更新をComfyUI Registryに反映するworkflow

これらのファイルとPRのメッセージを基に登録を進めて行きたいと思います。

2. Comfy Registryとは

Comfy Registryは、ComfyUI用のカスタムノードを発見し、インストールするためのプラットフォームです。開発者はカスタムノードを公開し、バージョン管理や非推奨化、メトリクスの追跡が可能です。ユーザーはこのレジストリを通じてカスタムノードを見つけ、インストールし、評価することができます。

Comfy Registryの特徴

  • バックエンドとしての役割: Comfy Registryは、ComfyUI Managerのデフォルトバックエンドとして統合されており、カスタムノードのシームレスなインストールを自動化するために使用されます。

  • ノードの検証: Comfy Registryは、カスタムノードが悪意のある動作をしないかどうかをスキャンし、検証済みのノードにはUI-manager上で確認フラグが表示されます。

  • 自動テスト: Comfy Registryは、新しいバージョンのカスタムノードが既存のワークフローに対して問題なく動作するかどうかを自動的にテストします。これにより、ユーザーは安心してノードをアップデートできます。

3. Publisher IDの発行

まず、以下のリンクからComfy Registryにアクセスしてください。

Comfy Registryのトップ画面にある「Sign up」をクリックしてください。

ログイン方法の選択画面に遷移します。ログインは、GoogleまたはGitHubのアカウントとの連携によりログイン可能です。今回は、GitHubアカウントでログインします。「Continue with GitHub」をクリックしてください。

「Authorize Comfy-Org」をクリックします。

ログインが完了し、登録済みノード一覧の画面に遷移します。「New Publisher」をクリックします。

Publisher IDの作成画面に遷移します。UsernameDisplay Nameを入力し、「Create」をクリックします。ここで、UsernamePublisher IDになります。

これでPublisher IDの発行が完了します。

4. APIキーの発行とリポジトリのSecretsへの登録

GitHub Actionsで自動でComfy Registryにカスタムノードを登録するために、Comfy RegistryのAPIキーを取得します。

Your Nodes画面にある「Create new key」をクリックします。

APIキーの作成画面に遷移します。ここで、APIキーを識別する名称をNameに入力し、「Create Secret Key」をクリックしてください。Descriptionは、必須入力ではないので、必要に応じて入力してください。

APIキーが作成されます。APIキーが表示されている欄の右にある「Copy」をクリックすると、APIキーをコピーできます。

次に、このAPIキーをGitHubのSecretsに登録します。該当リポジトリの「Settings」タブを開き、「Secrets and variables」セクションの「Actions」を選択してください。その後、表示された画面の「New repository secret」をクリックしてください。

Secretの新規作成画面に遷移します。Name「REGISTRY_ACCESS_TOKEN」と入力し、Secretに先ほど作成したAPIキーを貼り付けてください。最後に「Add secret」をクリックします。

APIキーがSecretに登録されます。

5. publish.ymlの追加

.github/workflowsディレクトリにpublish.ymlを追加します。publish.ymlの中身は以下になります。各自で変更が必要な箇所は、branchesくらいかと思います。

name: Publish to Comfy registry
on:
  workflow_dispatch:
  push:
    branches:
      - main
      - master
    paths:
      - "pyproject.toml"

jobs:
  publish-node:
    name: Publish Custom Node to registry
    runs-on: ubuntu-latest
    # if this is a forked repository. Skipping the workflow.
    if: github.event.repository.fork == false 
    steps:
      - name: Check out code
        uses: actions/checkout@v4
      - name: Publish Custom Node
        uses: Comfy-Org/publish-node-action@main
        with:
          ## Add your own personal access token to your Github Repository secrets and reference it here.
          personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }}

6. pyproject.tomlの追加

リポジトリのルートディレクトリにpyproject.tomlを追加します。ここで、PublisherIdには、先ほど発行したPublisher IDを先頭の"@"なしで追記します。

[project]
name = "comfyui-fal-api-flux"
description = "This repository contains custom nodes for ComfyUI that integrate the fal.ai FLUX.1 [dev] with LoRA API, specifically for text-to-image generation. These nodes allow you to use the FLUX.1 model directly within your ComfyUI workflows."
version = "1.0.0"
license = {file = "LICENSE"}
dependencies = ["requests==2.32.3", "configparser==7.1.0", "fal-client==0.4.1", "numpy==1.24.3", "torch==2.1.1+cu121"]

[project.urls]
Repository = "https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux"
#  Used by Comfy Registry https://comfyregistry.org

[tool.comfy]
PublisherId = "your-publisher-id"
DisplayName = "ComfyUI-Fal-API-Flux"
Icon = ""

7. Comfy Registryへの登録

ここまでの設定が完了していると、pyproject.tomlをコミットすると、workflowが発動し、自動でComfy Registryへの登録が進みます。

手動で登録したい場合は、comfy-cliをインストールし、"comfy node publish"を実行することで登録可能なようです。

pip install comfy-cli
comfy node publish

登録が完了すると、Your Nodesの画面にカスタムノードが表示されます。

カスタムノードをクリックすると、以下のように詳細が表示されます。


この記事でご紹介したAI技術の応用方法について、もっと詳しく知りたい方や、実際に自社のビジネスにAIを導入したいとお考えの方、私たちは、企業のAI導入をサポートするAIコンサルティングサービスを提供しています。以下のようなニーズにお応えします。

  • AIを使った業務効率化の実現

  • データ分析に基づくビジネス戦略の立案

  • AI技術の導入から運用・教育までの全面サポート

  • 専門家によるカスタマイズされたAIソリューションの提案

初回相談無料ですので、お気軽にご相談ください。以下のリンクからお問い合わせください。


この記事が気に入ったらサポートをしてみませんか?