見出し画像

【ComfyUI】Dartによる画像ガチャ

どうも、ひっそり画像生成で遊んでいる者です。
今回は下記カスタムノードを使った画像ガチャの魅力をお伝えする回です。

"Danbooru Tags Transformer" は、danbooru中のタグクラウドをデータベースとして、トランスフォーマー技術により訓練されたタグ生成モデルです。ファインチューニングすることで、指定したあるトークン(タグ)に対し、関連性が高いタグを続けて出力する挙動にしているようです。

何ができるのか?

"テキスト生成AIにプロンプトを考えてもらう"をローカル環境で代替できます。以下のように、入力したタグから関連性連想ゲームでプロンプトを拡張できます。

【Input】

1girl,long hair,lying

【output】

1girl, long hair, lying, blush, closed eyes, gloves, happy birthday, hat, open mouth, short sleeves, smile, solo, star (symbol), teeth, upper teeth only, white gloves, white gloves, white headwear, watch,

以下の要素で、タグ自動生成過程を制御することが可能です。
(A) 生成プロセスでbanするタグを指定(正規表現で指定可能)
(B) sfw/センシティブなどレーティング別の出力範囲の指定
(C) キャラクター/コンテンツのタグの指定
(D) 生成するタグ群の長さ指定
(E) 生成後に削除するタグを指定

導入解説

なにはともあれComfyUI テンプレート.jsonです。

Dart カスタムノード+text stack部

①Dart Generation Config
 デフォルトで困ることはあまりありません。
②Dart Ban Tags From Regex
 生成プロセス中に出てほしくないタグを正規表現で指定します(A)。例では男を指定するタグ群や、simple background になりがちなため背景関連をbanしています。
③Dart Generate (Advanced)
 タグ生成モデルへのインプットを指定します(B)(C)(D)。この記法に関しては後述します。
④Dart Remove Tag Token
 タグ生成後に、このノードで指定したタグを消去できます(E)。
⑤Dart Decode
 生成モデルなので、デコードした後にテキストになります。
⑥String function 
 checkpointに合わせたクオリティタグ群、danbooruタグでは出にくい背景やスタイルのテキスト群などと、Dart製のタグ群を合体させ、Positive promptに流します。(ComfyUI-Custom-Scriptsを採用)

Dart Generation用インプット

Dartの作成者のガイドに従いましょう。
冒頭に<bos>、末尾に<input_end>は忘れずに。
(B)レーティング
SFWとNSFWの別に加えて、general, sensitive, questionable, explicitの計6種なります。

<rating>rating:sfw, rating:general</rating> #デフォルト
<rating>rating:nsfw,rating:sensitive</rating> #NSFW含む

(C)キャラクター/コンテンツ
素直に<copylight> </copylight>で挟むだけです。

<copyright>vocaloid</copyright><character>hatsune miku</character>

(D)生成するタグ群の長さ指定
推奨設定<long>で困りません。

<general><|long|>1girl,long hair,lying

生成/保存部分のノード群

SamplerとPrompt saver

Text Stackでポジティブプロンプトを作っているため、デフォルトのSave Imageでプロンプトがうまく保存できません。各パラメータを専用ノードで指定し、下記カスタムノードを採用して出力画像メタデータに書き込んでいます。

あまり創作エネルギーがない時のガチャ的な利用に加え、少ないタグからアイデアを膨らませるような発想の手助けに、また対応していれば様々な2次創作に、と使いどころは多いと思います。

先のタグ生成サンプル由来の出力

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