ComfyUI+TIPOのワークフローデモ解説
簡単に言うとTIPO(正式名称:z-tipo-extension)はA1111における拡張機能、ComfyUIでいうカスタムノードの1つで「簡単なプロンプトから破綻しない程度に追加のプロンプトを加え、クオリティを向上させる」ものです。
たとえば、
1girl, original, (ningen mame:1.1), (ninjin nouka:1.1), (quasarcake:1.1025), (ciloranko:1.1576), snow leopard girl, snow leopard ears, snow leopard tail, very long hair, scenery, solo, indoors, medium breasts, fur trim, off shoulder, tail, long shirt, bedroom, no pants, light blue hair, silver hair, loli, thighhigh, absurdres, masterpiece, sensitive
というプロンプトを書きTIPOを使うと、
1girl,
original,
(ningen mame:1.1), (ninjin nouka:1.1), (quasarcake:1.1025), (ciloranko:1.1576),
snow leopard girl, snow leopard ears, snow leopard tail, very long hair, scenery, solo, indoors, medium breasts, fur trim, off shoulder, tail, long shirt, bedroom, no pants, light blue hair, silver hair, loli, blue theme, long sleeves, jacket, hair between eyes, breasts, fur-trimmed jacket, long hair, looking at viewer, white thighhighs, thighhighs, window, aqua shirt, collarbone, curtains, on bed, blush, shirt, sitting
She wears an aqua-colored shirt that contrasts beautifully with her light gray furry tail. The room around her is softly lit, with curtains framing a window in the background, creating a serene and cozy atmosphere. This image exudes a sense of tranquility and innocence, characteristic of ningen mame's style
masterpiece, absurdres, sensitive
というように追記してくれます(後半(She wears ~)は自然言語学習モデルに対してより効果的に働きます)。追記されて生成された結果が以下です。

ComfyUIとModel(Stable Diffusion系)
ComfyUIでTIPOを使う解説なので、予め公式wikiを参考にComfyUIとModelをインストールしておきます。
要求されるカスタムノード

ComfyUI-Custom-Scriptsを導入しない場合は、読み込んだjson(ワークフロー)右下にあるShow textというノードを削除してください。
このノードはワイヤーで繋いだノードの処理内容(text)をアウトプットして視覚化します。役割はそれだけなので削除してもTIPOは動作します。
カスタムノード(拡張機能)の導入方法
今回のデモファイルで使うカスタムノードは上記の2つです。導入方法はwikiを参照してください。
デモファイル(TIPO ver1.0.0)

このデモファイルはKohakuBlueleaf/z-tipo-extensionから入手できるjsonでワークフローです。これをComfyUIで新規ファイルを作成し、画面にD&Dします。
予め必要なカスタムノードがインストールされていない場合は警告が出ますので2つをインストールします。
その他のエラーが出た場合は、GitHubから最新の.jsonを入手してください。
空の潜在画像(幅と高さ)

左上からXの幅、Yの高さの値を入れたノード(箱)が2つあります。
それぞれワイヤーが2本伸びており、1つは空の潜在画像というノードにつながっています。
この空の潜在画像というのは「ノイズ画像」のことです。その出力サイズのここで決めています。

TIPOにも同様の値が必要とされるので、ワイヤーはここにつながっています。
intent_imageとseed値

空の潜在画像はKサンプラーというノードのiatent_imageにつながれます。潜在画像に不規則性をもたせるのがseed値です。
色んなパターンを生成するときにsedd値は-1は不規則な潜在画像を作り、結果的な生成物に変化をもたらします。
Negativ Prompt

Negativ PromptはNegativ CLIPというノードにつながっています。

このノードを新規作成する場合は条件付きノードから作ることができます。条件はModelのノード(=チェンクポイントを読み込む)と合わせて使います。
Check Pointを読み込む(Model)

今回はNoobAI XL(NAL-XL)を使いました。このノードは3つの情報を持ちます。VAEはほとんどのモデルで使われなくなりました(多くのModelはVAEが組み込まれているためです)。CLIPは条件付きノードに付くと覚えておけばほぼ間違いないです。

一番上のModelはKサンプラーのModelにつながっています。
Kサンプラー

1回目のKサンプラーは低解像度の画像を作る目的、下絵作りです。目安としてModelの推奨値よりサンプラーのデフォルト値を採用するほうが上手くいきやすいです。基本的にModelの推奨値を参照します。
VAEデコード
今回はVAEを読み込んで使っているわけではないですが、VAEデコードのノードを使わないと出力できないのでつなぎます。
このVAEデコードは比較のため2つに出力されています。出力結果とHire Fixです。
Hires Fix(高解像度化補正=仕上げ)とKサンプラー

このHire Fixは1段階目のKサンプラーの生成物をより鮮明に大きくします。1.2~2.0倍の倍率を最終的にかけることで仕上げます。この値とKサンプラーの値は推奨値がModelごとに決まっているため、画面の値は参考になりませんが概ね多くのModelの推奨値です。
ただ今回使用したNoobAI XL(NAL-XL)の推奨値ではなく、デモデータの値を採用しています。
ノイズ除去とステップ数は半分ほどにして、スケールバイ(アップスケール)を1.2~2倍を目安にします。他の値はそのままで良いです。
TIPOとPositive Prompt(最終的にPositive CLIP)

中段はPositive Promptについてです。
TIPOではPositive Prompt=Tag imputのノードにあたります。ban tagのノードはTIPOに自動生成禁止プロンプトを設定する項目です。nl_promptは書きすぎると破綻の原因になるのでModelが推奨するネガティブプロンプトだけでOKなので使いません(そのため形式的にノードはあっても空欄になっています)
TIPOの細かな設定はGitHubをみてください。ただデフォルトのままで十分機能するので問題ないです。
出力結果

下段が出力結果です。左がHires Fixを通過していないもの(=1.0倍)、右がHires Fixを通過したもの(1.5倍)が表示されます。
もっともシンプルなT2img(公式テンプレート)

画像は公式テンプレート(画面左上のワークフロー>テンプレートを参照>Image Generation)のT2imgです。この場合、矢印の箇所にHires Fixを作ることで今回紹介したワークフローからTIPOを抜いたものが完成します。
TIPOは簡単。でもComfyUIとの組み合わせ方が難関
結論はこれです。TIPO自体はデフォルト設定で機能するので簡単なのですが、ひとたびComfyUIと組み合わせるとなると初見殺しのワークフローが必要です。
今回の解説も不十分なところ、特にKサンプラー関連は出来ていないので他の記事でまとめたいと思います。
