ComfyUIのカスタムノードをGithubで公開してみた:comfyui-color-ascii-art-node
先日から作成していたアスキーアート化のカスタムノードをGithub上に載せることに成功しました。
「comfyui-color-ascii-art-node」というものです。
自作なので、不十分なところも有りますが、良い勉強になりました。
自分が辿ったGithubでの公開までの流れを備忘録的に書いておきます。
今後、Githubでカスタムノードを公開したい方は参考にしてみてください。
いつも通り、GPTさんに手順を聞きつつ作成した感じになります。
ComfyUIカスタムノードのGithubサイト作成手順
①ログイン後、新しいリポジトリを作成の作成を選択
②リポジトリ情報の入力(ここは後でも編集可能)
README fileのチェックは重要
最初はprivateで作成するのが無難(後で変更可能)
これを実行すると以下のようになります。
それっぽいのが出来てきました!
③Add fileを選択し、ファイルをアップロードする
この画面になるので、作成したスクリプトなどのファイルをドラッグアンドドロップする(複数可)
アップロードすると以下のようになり、Commit changesを押す。
すると、以下のような感じになる。気持ちは完成した感じになるがまだやることがあります。
④「README]を編集して使い方を説明する
⇒ここが一番面倒な感じのところでした。
最初は真っ白なので、何をしていいか分かりません。GPTに原稿を書いてもらうのが得策です。それを編集する感じで作成しました。
左上にある、EditとPreviewで切り替えて、完成図を確認しつつ作成しました
TIPS①:大項目は、#で記載された太字で、小項目は##の太字の部分になります。自分で入力してもうまく反映されなかったのですが、以下内容をコピペして上手くいきました(多分)
# comfui-color-ascii-art-node
png画像をカラーのアスキーアート化するカスタムノードです。
以下に記載がありますが、複数のフォントサイズが使用される仕様になっています。
生成されるファイルの解像度は入力画像と同じになるように設定しています。
## Installation
ComfyUIのカスタムノードディレクトリにインストールします。
Editで入力した上の内容をPreviewにすると以下のような感じになります。
TIPS②:コードを提示する場合は以下のようなbashとかいうのでくくるようです
```bash
cd ComfyUI/custom_nodes
git clone https://github.com/Shiba-2-shiba/comfyui-color-ascii-art-node.git
cd comfyui-color-ascii-art-node
pip install -r requirements.txt
```
TIPS③:画像を出したい場合
提示したいpngファイルをGithub際にアップロードします。
リンクをコピーして下のカッコ内に入れ込んだものを、READMEの編集部で追加するとそこに画像が出てきます。
![Example Workflow](https://github.com/Shiba-2-shiba/comfyui-color-ascii-art-node/blob/main/Asciiartnode.png)
「EDIT」では、こんな感じで記載される
⑤公開前に実際に使えるかどうか予め確認しておく
これは重要かと思います。もともとGithubサイトで作業していない場合は、間違ったファイルをアップロードしていたり、名前が変わっていたりする場合があります(経験者)。
ただ、プライベートリポジトリというのは、通常のカスタムノードのようにgitcloneを使ってインストールすることは出来ません。
そこで、私が使用したのは、ssh認証というものです。
これは、使用しているpcの場所を登録する事でgitcloneとか出来るみたいやつです。
paperspaceで行いましたが、インスタンス毎に登録する必要がありました。
⑥SSH認証の手順
Paperspaceで以下のセルコマンドを順に実行します。
⑥-①SSHキーの作成コマンド
!ssh-keygen -t ed25519 -C "paperspace@example.com" -f ~/.ssh/id_ed25519 -N ""
⑥-②SSHキーの表示コマンド
!cat ~/.ssh/id_ed25519.pub
ログに出力されたもの「ssh- .com」をコピーする
⑥-③Githubの右上のマークを押すと以下のリストが出てくるので下の方の「settings」を選択する
⑥-④「SSH and GPH Keys」を選択し、右側の「New SSH key」を押す
タイトルは分かりやすい名前にして、Keyに先ほどコピーしたものをペーストして、「Add SSH key」を押す。
これを認証するにはパスワードの入力が必要になります。
登録すると、Githubで登録したメールアドレスに通知メールが来ます。
⑥-⑤paperspaceで以下のコマンドでSSH認証を有効にする
!ssh -o StrictHostKeyChecking=no -T git@github.com
⑥-⑥paperspaceからプライベートリポジトリの内容をgitcloneする
Githubページの「Code」からSSHを選択し出てきたものをコピーする(通常のhttps・・・ではないことに注意)
これで、プライベートリポジトリの内容をカスタムノードのところにインストールできるようになります。
上のように、インストールされ、ワークフローを実行して、下のように問題なく動けば完成という形で、公開する設定に持っていけました。
以下はgithubのサイトに上げているワークフローです。上と同じ感じになります。
⑦リポジトリの内容の変更
該当するGithubリポジトリの「Settings」を選択し、下の方に行く
「Danger Zone」の一番を上を選択して進めればOK
ちなみに一番下のはリポジトリを削除するものです。間違って作ってしまったらこれで消すことが出来ます。
⑧<蛇足>Githubのプライベートリポジトリの編集を使用したGPT壁打ち
別なカスタムノード作成も行ってみたのですが、その際は以下の流れで壁打ちを行いました。
⑧-①Githubサイトをgitcloneして、confyuiを動かしてエラーを確認
⑧-②GPTから得た変更内容をGithubサイトを編集して反映
⑧-③インストールしたフォルダを削除し、再度gitcloneする。pythonのキャッシュをクリアする ⇒手順⑧-②に戻る
pythonキャッシュクリアのコマンド
import os
import shutil
def clear_pycache(directory):
for root, dirs, files in os.walk(directory):
for dir_name in dirs:
if dir_name == "__pycache__":
shutil.rmtree(os.path.join(root, dir_name))
# 実行するディレクトリを指定
clear_pycache(".") # カレントディレクトリを対象とする場合
print("Pythonキャッシュのクリアが完了しました。")