Extensions/comfyui-anima-artist-browser
ComfyUI Extension

comfyui-anima-artist-browser

ComfyUI custom node for browsing and selecting up to 3 artist tags, outputting them as a single concatenated string for prompt generation. (Description by CC)

By Shiba-2-shiba·Created 5 months ago·Updated 3 months ago· 0
Shiba-2-shiba/comfyui-anima-artist-browser
Nodes
On cloudLocal install
Stars0
Updated3 months ago
Readme

Anima Artist Browser (Anima-2b)

ComfyUI 上でアーティストタグを探しながら、最大 3 つの artist タグを 1 本の文字列として出力できるカスタムノードです。

このノードはコミュニティ製の独立ツールです。
フォークやミラーではなく、別実装の ComfyUI ノードとして整理しています。
元サイトへ接続したり、元サイトへリクエストを送ったりするものではありません。


概要

Anima Artist Browser は、最大 3 人分のアーティストタグを選び、@artist,@artist,@artist 形式の STRING を 1 本だけ出力するノードです。

このノード自体は CLIP エンコードを行いません
出力された文字列を必要な後段ノードへ接続して使います。


インストール

  1. このリポジトリをダウンロードまたは clone します
  2. フォルダを以下に配置します
ComfyUI/custom_nodes/
  1. ComfyUI を再起動します

ノード名:

Anima Artist Browser

入出力

入力

  • artist_1 1 枠目のアーティストタグです。
  • artist_2 2 枠目のアーティストタグです。
  • artist_3 3 枠目のアーティストタグです。
  • output_format 出力形式です。既定値は従来互換の Browser default (@artist,@artist) です。
  • weight_1 / weight_2 / weight_3 各 artist スロットの重みです。1.0 の場合は出力へ重み表記を追加しません。

出力

  • artist_string

各出力は次の形式で生成されます。

@artist,@artist,@artist

空のスロットは無視され、選択済みの artist だけが左から順に連結されます。

Anima-Artist-MixerAnimaArtistPack.artist_chain へ直接つなぐ場合は、output_formatMixer comma (artist, artist) または Mixer newline に変更します。Mixer 用形式では先頭の @ を外して出力します。

各スロットの weight_n1.0 以外の場合、出力形式に応じて重み表記を追加します。

Browser default: @artist:1.5
Mixer formats:  ::artist::1.5

Mixer comma / Mixer newline の重み表記は、Anima-Artist-Mixer の linear injection-layer weight syntax に合わせています。


基本的な使い方

  1. ブラウザやランダム選択で artist_1..3 を埋めます
  2. 必要に応じて 1 つから 3 つまで artist を選びます
  3. 出力された artist_string を後段ノードへ接続します

例:

Anima Artist Browser
   └─ artist_string -> downstream string input

Anima-Artist-Mixer へ接続する場合

Anima-Artist-Mixer を併用する場合は、Anima Artist Browserartist_stringAnimaArtistPackartist_chain に接続します。通常プロンプトは Browser 側には含めず、AnimaArtistPackbase_prompt に入力します。

Anima Artist Browser
  ├─ output_format = Mixer newline
  └─ artist_string -> AnimaArtistPack.artist_chain

AnimaArtistPack
  ├─ clip
  ├─ artist_chain <- Anima Artist Browser.artist_string
  └─ base_prompt  <- 通常プロンプト

AnimaArtistCrossAttn
  ├─ model
  └─ artist_pack <- AnimaArtistPack.artist_pack

推奨設定:

output_format = Mixer newline
weight_1/2/3  = 1.0  # 重みなし。必要なスロットだけ変更

weight_n1.0 以外にすると、Mixer 用形式では ::artist::weight を出力します。これは Anima-Artist-Mixer の linear injection-layer weight syntax に合わせた表記です。

weight_1 = 1.5
weight_2 = 0.5
weight_3 = 1.0

Mixer newline output:
::artist one::1.5
::artist two::0.5
artist three

ノード上の操作

Artist Browser

スタイルブラウザを開きます。
一覧から選んだアーティストは、空いているスロットに順番に入ります。空きがない場合は現在選択中のスロットを上書きします。

After Queue

After QueueNext ArtistRandom ArtistFavorite Random のいずれかにすると、Queue 実行時は現在のスロット内容で出力しつつ、送信直後に次回用の artist 構成へ更新します。

Random Artist は、現在スロットに入っている artist 数だけを対象にランダム更新します。未使用スロットは空のまま維持されます。

Favorite Random は、favorites に登録済みの artist だけを候補にしてランダム更新します。現在埋まっているスロット数だけを更新し、未使用スロットは空のまま維持されます。

Pin FavoritesOn にすると、現在スロットに入っていて favorites 登録済みの artist は固定したまま、残りの枠だけを更新します。

Clear Artist

artist_1..3 をすべて空にします。

スロット表示

ノード下部に S1, S2, S3 の表示が追加され、各スロットに現在どのアーティストが入っているか確認できます。
ハイライトされている行が、現在の操作対象スロットです。


主な機能

ビジュアルスタイルブラウザ

サムネイル付きでアーティストを一覧表示し、視覚的に選択できます。

3 スロット同時管理

1 ノードで最大 3 人分のアーティストを保持し、1 本の artist 文字列として出力できます。

Filled Slot Count Preservation

Random Artist は、現在埋まっているスロット数だけを対象に更新します。
たとえば 2 スロットだけ埋まっている場合は、3 枠目を勝手に増やさず 2 枠だけを再抽選します。

Favorite Random

Favorite Random は、favorites に登録した artist だけから再抽選したい場合のモードです。
favorites が少ない場合は、その件数ぶんまでだけ埋まり、残りは空のままになります。

お気に入り固定ランダム

favorites に登録済みで、かつ現在スロットに入っている artist を固定し、残りだけをランダム追加できます。

Auto Cycle

アーティストを順に切り替えながらキュー実行できます。スタイル探索用です。

スタイルデータ更新

内蔵のアーティストデータベースを手動で更新できます。


フロントエンド構成

リファクタリング後の主な責務は次の通りです。

  • js/index.js ComfyUI 拡張エントリポイント
  • js/queue_behavior.js queue hook と after-queue 更新
  • js/node_ui.js ノード widget/UI 注入
  • js/node_runtime.js ノード runtime 状態と timer
  • js/browser.js ブラウザ側 composition root

より詳しい責務分割は ARCHITECTURE.md を参照してください。


注意点

  • このノードの出力は STRING です
  • KSampler に直接つなぐことはできません
  • 出力は artist タグ文字列のみで、base prompt は含みません
  • Anima-Artist-Mixer 連携時の通常プロンプトは、後段の AnimaArtistPackbase_prompt に入力します
  • 空スロットは空文字を返します

クレジット

Style explorer / dataset concept by @ThetaCursed
https://thetacursed.github.io/Anima-Style-Explorer

このリポジトリは独立実装であり、元リポジトリのフォークやミラーとして運用しない方針です。
データ整理、タグ付け、プレビュー参照の権利は原作者に帰属します。
原作者から修正または削除要請があった場合は尊重します。
元リポジトリに残す謝辞文面は ACKNOWLEDGEMENTS.md にまとめています。


対応環境

  • ComfyUI
  • Anima 2B

ライセンス

コード: MIT License

データセット: オフライン補完・ブラウズ用途でのみ同梱。権利表記は元プロジェクトに帰属します。