見出し画像

ComfyUIに自作カスタムノードが登録されるまでの過程の話@Githubでの作業

Githubにこれまで触ってこなかったので、自作したカスタムノードの登録的なところが良くわからず数日放置していたら、「pull request」のところに、ComfyUIの方からのメッセージがありましたので、それを進めてみたという記事です。

最初にこれを見た際は、何から始めて良いかさっぱりでした。チェックボックスとかあるけど。。。。出来る人っぽい感じの文章。。。

似たような経験をされる方もおられると思いますので、参考までに、ざっくりとした手順を記事にしました。一度やると手順はもっと少なくなりそうです。

Pull requestの題名は以下のようなものです。いきなり2つあるのでどうしようかと思いましたが、結論からいうと#1,#2の順でやってほしいということっぽい。

当初は何をしていいのかわからず、おそるおそるGPTに確認しながら作業を進めていきました。両方のプルリクエストの内容とかを張り付けてどいういう手順でやればいいかみたいな感じで聞いています。

とりあえずすることは、以下のサイトに入って、アカウント登録をすることの様です。やり方のyoutubeのリンクもありましたが、早すぎて何しているかついていけません。

ここからアカウントを作成することができます。
GoogleアカウントかGithubアカウントのどちらかで登録できます。
YoutubeだとGooleアカウントですが、Githubアカウントでの登録をGPTさんは推奨してきました。

<GPT解説>

①GitHubアカウントでの登録の利点:
GitHub Actionsの活用:
GitHubアカウントを使用することで、GitHub Actionsを簡単にセットアップできます。これにより、pyproject.toml ファイルやその他のファイルを更新するたびに、ノードの公開が自動化されます。
GitHubのリポジトリと直接連携するため、APIキーをGitHub Secretsに保存し、ワークフローを自動化できる点は非常に便利です。
統合環境:
既にGitHubを使用してコード管理を行っている場合、そのままシームレスにComfyUIのレジストリへの公開を行うことができます。
GitHubリポジトリに直接関連付けられるため、ワークフローの管理が一元化され、利便性が高まります。

<Googleアカウントでの登録の利点>:
簡単なアカウント管理:
Googleアカウントは、すでに他のGoogleサービスを使用している場合に便利です。すべてのサービスを1つのアカウントで管理できるため、アカウント管理が簡単になります。
オプションとしての利用:
Googleアカウントを使ってサインアップすることは、他のサービスやコミュニティへのアクセスを容易にする可能性があります。

<どちらを選ぶべきか?>
GitHubアカウントがおすすめ: ComfyUIのノードをGitHubリポジトリに関連付けて公開し、GitHub Actionsを活用することを考えると、GitHubアカウントを使用して登録する方が一貫性があり、後の管理が簡単です。また、GitHubで既に管理しているリポジトリにシームレスに統合できるため、余分な手間がかかりません。
GitHubアカウントを使用して登録し、APIキーをGitHub Secretsに保存する方法をおすすめします。これにより、GitHub Actionsを利用してノードの公開を自動化し、管理を容易に行うことができます。

ということで、YoutubeにないGithubアカウントでの登録を選択しました。

この画面は、GitHubアカウントを使用してComfyUI(Comfy Org)にアクセス許可を与えるための認証画面です。ここで行うのは、ComfyUIがあなたのGitHubアカウントの一部のデータにアクセスすることを許可する手続きです。
Public data only: このメッセージは、ComfyUIがあなたの公開データにのみアクセスすることを示しています。具体的には、GitHubの公開プロフィール情報や公開リポジトリにアクセスする権限を与えるということです。プライベートな情報やリポジトリにはアクセスしません。

進めると以下の画面になります。

「New publisher」を押して進めるようです。

登録前に知っておくと良い事。by GPT

一つのPublisherアカウントで、複数のカスタムノードを公開・管理することができます。そのため、通常は一つのPublisherアカウントを作成し、そのアカウントで複数のカスタムノードを管理することが一般的です。
例: あなたが「Shiba2Shiba」というPublisher名で登録し、そのPublisherアカウントで複数のカスタムノード(例:Colorful ASCII Art Node, Grayscale ASCII Art Nodeなど)を公開する形です。

<Username>について
内容: これは、あなたがComfyUIのレジストリで使用する一意の識別子(ユーザー名)です。この名前は他のユーザーと重複することはできません。
入力例: Shiba2Shiba のように、GitHubアカウント名と同じものや、それに近いものを使用すると覚えやすくて良いでしょう。ただし、Shiba-2-shiba(ハイフンあり)ではなく、ハイフンなしのバージョンにするか、数字を足すなどして他のユーザーと重複しないように調整してください。
⇒大文字はだめっぽい
<Display Name>について
内容: これは、他のユーザーに表示されるあなたの名前です。Usernameとは異なり、ここにはフルネームやニックネーム、もしくはプロジェクト名などを自由に入力できます。
入力例: Shiba 2 Shibaや、Shiba's ComfyUI Nodesなど、あなたのGitHubアカウント名やプロジェクトに関連する名前を使うと良いでしょう。
注意点
Usernameは後から変更ができない場合が多いので、慎重に決めてください。
Display Nameは他のユーザーからも見られるため、覚えやすく、あなたを示す名前にすると良いです。
入力が終わったらCreateをクリックしてPublisherを作成し、手続きを進めてください。

上記を参考に登録して、こんな感じになりました。

次に「Create Key」を押すようです。Youtubeの動きが早すぎる。。。

<Name (必須)>について
内容: これは、作成するAPIキーの名前です。この名前は、後でAPIキーを区別しやすくするためのものです。例えば、どのプロジェクトや目的でこのキーを使用するのかを示す名前にすると良いでしょう。
入力例:
MainAPIKey (主要なAPIキーとして使用する場合)
ComfyUINodePublish (特にComfyUIノードの公開に使用する場合)
ProjectX_APIKey (特定のプロジェクトに関連付けたAPIキーの場合)
<Description (任意)>
内容: ここには、APIキーの用途や関連するプロジェクトについての説明を簡単に記載することができます。後で複数のAPIキーを管理する際に、この説明が役立つ場合があります。
入力例:
This key is for publishing nodes to the ComfyUI registry.
API key for Shiba's ComfyUI Nodes project.

こんな感じになりました。

この後の作業が、デスクトップのGithubのものっぽいやつでしたので、ブラウザのみで作業している私には何しているか不明でした。。。。

ブラウザで行う場合は以下のようにすると良さげです。
①GitHubリポジトリにアクセス:
ComfyUIのノードを管理しているリポジトリに移動します。
②Settingsを開く:
リポジトリの右上にある「Settings」タブをクリックします。

③Secrets and Variables > Actionsを選択:
左サイドメニューから「Secrets and variables」の「Actions」を選択します。

下の方にある

④New repository secretをクリック:
「New repository secret」ボタンをクリックして、新しいシークレットを追加します。

⑤シークレットを設定:
Name: REGISTRY_ACCESS_TOKEN と入力します。
Value: 先ほど作成したAPIキーをここに貼り付けます。

このNameフィールドには、シークレットの識別子を入力します。GitHub ActionsでAPIキーを利用する際、この名前が呼び出されるので、分かりやすい名前を付けると管理がしやすくなります。

GPTのおすすめの名前:
REGISTRY_ACCESS_TOKEN: ComfyUIのレジストリに公開するためのAPIキーであることを明示するため、この名前が適しています。

⑥保存:
「Add secret」ボタンをクリックして、シークレットを保存します。

この後、最初に提示したプルリクエストの部分に戻ります。

画像を取る前に進めてしまったのですが、シークレットの設定をした後にこれらのプルリクエストをマージすると良いようです。
マージの順番は#1、#2の順が良いようです。

#1

これは「Github Action」というの設定するファイルが追加されたもののようです。何が起きているかは「file changed」のところを見ると出てきます。
<GPT解説>
このプルリクエスト(PR)のfile changedタブには、GitHub Actionsの設定ファイル(.github/workflows/publish.yml)が追加されていることが示されています。この設定ファイルにより、pyproject.tomlファイルが更新されるたびに、カスタムノードが自動的にComfyUIのレジストリに公開される仕組みが構築されます。

このプルリクエストはComfyUIの方が作成してくれたようです。至れり尽くせりですね。
GPTに確認したところ、シークレットキーがちゃんと設定されているかどうかが重要そうでしたので、先ほどまでで設定されているので、そのままマージを行いました。


#2

このプルリクエスト(pyproject.tomlファイルを追加するもの)は、前のGitHub Actionsの設定をマージした後に行うのが理想的です。
理由としては、pyproject.tomlファイルが設定されることで、GitHub Actionsが正しくトリガーされ、ノードがComfyUIのレジストリに自動的に公開されるためです。ということの様です。

ここは追加の記載が必要の様でした。
「file changed」のところに行って、「・・・」で出てくる「Edit file」で編集します。
編集部分は、「tool.comfy」にあるpublisherIDのところです。
空欄なので、先ほどアカウントを作成した名前を入れます。
そしてマージします。

これで作業は終了です。

先程ほどの「ComfyUI registry」に行くと増えています。

右下の青いところを見ると下の画面になります。
tool.comfyのアイコンを空欄にしたので、左上は空欄になったようです。

これらの作業が終わり、「ComfyUI Manager」で検索すると出てきました!!!すぐに反映されるようです。

多分、最初はフォントの入力など面倒なので、ワークフローのjsonファイルを読み込んでもらうと楽です。

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