プロンプトの重みと新しいテキスト・パーサー(ベータ版)
新しいウェイト・パーサー、更新
6月11日、より分かりやすい例題、練習問題、ミニクイズを追加更新
ウェイトはウェブUIとTelegram Botの新機能で、テキストパーサーと呼ばれるサブシステムによって可能になりました。古いテキストパーサーはウェイトをサポートしていませんでしたが、新しいものはウェイトをサポートしています。両方を切り替えることができる。
ウェブUI: 詳細オプションをクリックし、このトグルをオンにしてください:
テレグラム:レンダリング中にこのコマンドを追加する:
/render /parser:new あなたのプロンプトはここにある(犬:2) など
これらのいずれかが呼び出されない限り、ウェイトは無視される。パーサー・コマンドはベータ期間が終わると消える。
ウェイト入門
You’ve probably seen an Stable Diffusion prompt that looks like thing like this: <yae-miko:0.7>. This is a way of adding or subtracting its effect from a prompt, where the default value is 1, too much is 2, and a negative number is bad news. It is similar to negative guidance, where things get eerie.
Side note about syntax: In our system, pointed brackets like <this> means AI model, like a LoRA and round parenthesis (like this) are used for words, also called Tokens. This guide teaches both kinds.
体重の範囲と安全なデフォルト値
0より大きい数値は、たとえ端数であっても、正の重みであることに変わりはない。つまり、0.7が1より小さいとしても、(dog:0.7)のような表現は、 犬の画像が入ることを意味する。0より小さいということは負であり、負は一般的に悪い知らせである。
ウェイトでは、マイナスはネガティブプロンプトのようには機能しない。おそらくマイナスではなくゼロという意味でしょう。ネガティブウェイトはトワイライトゾーンだ。ネガティブGuidance のように不気味になる。可能性はあるが、奇妙だ。
最も使用されているウェイトは0.7
特にLoRAについては。多くの人が0.7を最も安全なスタート地点と考えている。なぜなら、ベースモデルがアートをセットできるように、style 、なおかつ仕事をするために存在するような道を与えるからだ。特にLoRAを使う場合、よほど大胆な効果を求めない限り、ウェイトを1以上にすることはほとんどありません。
図1:ウェイトとポジティブプロンプトの比較
犬という単語に特別な注意を払う3つの表現方法がある:
(dog:1.1)、(dog)、((dog:1.1))があるが、最後のものはcontrol 。
ウェイトが有用な理由
重み付けプロンプトは、相対的なアイデアを表現するのに便利です。たとえば、render 、猫の特徴を持つ犬のイメージを表現するには、次のように促します:
/render /parser:new a (cat:2,dog:0.5)
鼻と前足が少し犬のようだが、主体は猫であることに注目してほしい。
余談:重さよりも語順の方が重要であることを覚えておいてほしい。 この2つの単純な単語の順番を入れ替えると、重みは変わらないにもかかわらず、違うイメージになる。2つの動物をブレンドする場合、この考えを見分けるのは難しいので、blend 、次はconcepts 。
覚えておくと良い範囲
- 真ん中が1
- ポジティブプロンプトはこんな感じ
- (good:0.7) <– weaker positive
- (good:1.3) <–stronger positive
- このような否定的なプロンプト[(thing:1), (thing:1.3), thing:0.7)]。
- LoRAのみでネガティブウェイトを使用する(自己責任で!)。
dog - ニュートラル
(犬) - 犬は1.1倍重要
(dog:1) - ニュートラル
(dog:1.1) - 犬は1.1倍重要である
正のシンタックスと正のウエイトを混ぜることは有効である(しかし、推奨されない)
((dog:0.5)) - dog is 0.5xは(正の)構文によって強化されます。
((dog:2.0)) - dog is 2x は (positive) 構文によって強められ、この単一のプロンプトを強くしすぎるため、render が壊れる可能性が高い。
しかし、同じことがネガティブなプロンプトにも言えるわけではない。
dog - ニュートラル
犬標準的なネガティブプロンプト。
[dog:2]- 2倍は無視され、これは1.1倍のネガティブプロンプトとしてのみ処理される
[dog:2]]は無視される。- 2xも無視され、[negative]構文が引き継がれる
わかった?自分を試す
Q) ()なしで重みを使うことはできますか?例えば、good:1.6は有効ですか、それとも(good:1.6)としなければなりませんか?
A) (good:1.2)を使わなければならない。
Q) ネガの場合はどうなるのですか?同じですか?[bad:1.6]ですか?
A) [(bad:1.2)]を使わないと正しく機能しません。また、[]内の()は影響がないので気にしないでください。
精密度
小数点については、1度や2度で十分すぎるほどだ。 私たちのテストでは、(dog:0.55)は、他のすべての値がロックされている場合、(dog:0.55348567)とそれほど変わりません。
相対的な重みをテストするとき、私たちのシステムがseed、 guidance 、 sampler にランダムな値を割り当てることを覚えておいてください。 もしこれらの値が設定されていなければ、デザイン上、毎回まったく異なる写真が得られることになります。これらの値が常に同じになるような練習をして、比較してみましょう。
エクササイズ赤、青、犬、猫
ここに犬のような見た目の猫が何匹かいますが、何匹かは青、何匹かは赤です。 学んだことを使って、画像から色や動物の特徴を消すことに挑戦してみよう。できるかな? 重さはさておき、Guidance も重要です。好きなプロンプトを置くことができますが、guidance が低いと、AIはあなたの注文のほとんどを無視します。 あなたの言うことをよく聞くように、guidance を13に設定してください。
/render /seed:32745 /sampler:ddim /guidance:13 /parser:new /images:1 blue cat, red dog, [blue cat, red dog] <dreamshaper6>
まずはcontrol 。ウェイトなし。 では、赤を消してみましょう。
/render /seed:32745 /sampler:ddim /guidance:13 /parser:new /images:1 blue cat, red dog, [blue cat, (red dog:2)] <dreamshaper6>
赤犬」の負のウェイトを高くし、「犬」と「赤」というトークンを取り除いたので、これらはより明確に猫らしくなり、画像には赤い動物はいない。
別のエクササイズをやってみよう:あなたはすべての猫を追い払うことができますか?
考えられる解決策は
/render /seed:32745 /sampler:ddim /guidance:13 /parser:new /images:1 (blue cat:0.1), (red dog:2), [(blue cat:2), (red dog:0.1)] <dreamshaper6>
ブルー・キャットは、プロンプト順が最初だったためか、取り除くのが難しかった。そのため、多くのウェイトをずらして処分した。
練習1:なぜこのプロンプトは、一番最初のcontrol の画像とほぼ同じ画像を生成するのですか?
/render /seed:32745 /sampler:ddim /guidance:13 /parser:new /images:1 blue cat, red dog, [blue cat, red dog:2] <dreamshaper6>
答えネガティブプロンプトの中に括弧がないため。処理されたのはウェイトではなく、弱い[否定プロンプト]ウェイト2の否定が無視されたのです。括弧がないと、文字通り「2番」という意味になります。
では、括弧の代用として二重の角括弧を試してみよう。これは、否定タグの中の括弧と同じように機能するだろうか?
/render /seed:32745 /sampler:ddim /guidance:13 /parser:new /images:1 blue cat, red dog, [blue cat, [red dog:2]] <dreamshaper6>
ここで、処理されるのは二重の強い否定で[[このように]]、重みも無視された。つまり、括弧が必要なのだ。しかし、単に犬を排除したいだけなら、重みの代わりに否定を使うのも有効な戦略だ。ほらね。ネガティブが強くなったことで、犬の特徴が消えている。それだけなら、重みは必要ない。シンプルなネガティブが機能する。
練習2:間違いを見抜く
このプロンプトは意図したとおりに機能するのか?
Figure 1 - /render /parser:new /clipskip:1 /seed:761614 /sampler:ddim /guidance:11.5 1girl [lowres:2, blurry:2, worst quality:2, pixelated:2] <sushimix>
それとも、これがそうなるのかな?
Figure 2 - /render /parser:new /clipskip:1 /seed:761614 /sampler:ddim /guidance:11.5 1girl [lowres;2, blurry;2, worst quality;2, pixelated;2] <sushimix>
正解は、どちらも正しく機能しない、 どちらも間違っている。 どちらも(ウェイト括弧)が欠けているため、ウェイトが定着していない。加えて、図2にはポイントを証明するために意図的にセミコロンをタイプミスしている。結果は以下の通りである。誤りのある;を単語として処理したため、トークンの違いによる変化は非常に小さい。両者が些細な陰影の違いをもたらしたことは恣意的なものであり、これは物事ではない。
同じseed 、その重りを発射させれば、同じプロンプトが突然まったく違う絵になる。
/render /parser:new /clipskip:1 /seed:761614 /sampler:ddim /guidance:11.5 1girl [(lowres:2), (blurry:2), (worst quality:2), (pixelated:2)] <sushimix>
個別に括弧に入れるか、ウェイトとカンマを1つの長い括弧にするかは、あなた次第だ。どちらも機能し、相対的に似たような図になるが、ウェイトは両方で機能している。
/render /parser:new /clipskip:1 /seed:761614 /sampler:ddim /guidance:11.5 1girl [(lowres:2, blurry:2, worst quality:2, pixelated:2)] <sushimix>
もちろん、これらはどちらも美しい写真なので、ニュアンスを見分けるのは難しい。完全に迷ったときは、赤/青、犬/猫の戦略に戻って、自分のプロンプトが思っているとおりに動いていることを確認しよう。
ウェブUIでウェイトを使う
知っていれば、入力するだけで、PC版のStable Diffusionと同じように動作します。Web UIでNew Parserをオンにする:
- 詳細設定(左下)をクリック
- 画面右上のウェイトボタンをクリック(写真)
ウェイトmode 、スライダーが表示されるので、より簡単に単語を設定したり、他の種類のビジュアルconcepts を重ねてユニークな構図を作ることができます。
このページで遊べるすべての要素をおさらいしよう:
- 右上:「重み」タブが有効になっているので、個々の単語を入力し、スライダーを使用して各単語に個別に重みを追加できます。 ウェイトを追加したい場合は、「ウェイトを追加する」グレーのボタンをクリックするか、すべての単語のウェイトを等しくしたい場合は、ポジティブプロンプト全体を入力してください。
- 青いスライダーは1.0の重さを示している。 左にスライドさせると、ボックスが赤くなり、マイナスの効果があることを示します。
- オプションで、recipe を選択することができます。 レシピは、写真のようなビジュアル結果を作成するプロンプトテンプレートです。レシピには独自のベースモデルがありますが、オーバーライドすることもできます。
- Base art style, or base model, is the over-arching visual style and contents model. The base model has the biggest visual impact over the image. Here the model <revani> aka Rev Animated is selected. Base models do not have weights, they are the foundation that everything else sits on top of.
ここでは、新しいキーワードを追加し、マイナスの重み0.49を与えました。
AddConcept" ボタンをクリックすると、ベースモデルを変更したり、キャラクター、エフェク ト、ポーズなどの追加ビジュアルconcepts をスタックすることができます。
私は奇妙なファンタジーの動物を作っているので、クリーチャーのカテゴリーに入り、動物を選びました。この機能を最大限に活用する方法については、下記の「ベストプラクティスとトラブルシューティング」をご覧ください。
間違えたら、履歴ボタンを押してもう一度編集してください。
下部には、Brew ボタンがあり、簡単なウェイトなしmode に戻ることができます。また、guidance (CFG)、アスペクト比、Steps vs. 数Images のプルダウンもあります。各値は、render に同じ時間を要します。
まとめる
体重1.0のロラも追加した。 念のため0.7に調整すべきだろう。 というわけで、ビジュアルconcept "chinese dragon "が画像の被写体となり、プロンプトテンプレート "Uncased Fantasy "は、おそらく "master-piece "や "high quality "などのトークンが追加され、同時に "not mutated "などの一般的なネガティブプロンプトも追加される。
そしてこれが私の70%のドラゴン・ドッグ・キャットだ。公平を期すために、ほとんどはドラゴンの猫だ。アジア美術における猫や龍の連想の強さが、より肉付きの良い私の犬を打ち負かしたのだと思う。だから、もう一度戻って猫をさらに減らすか、犬がどのように見えるかについてもっと言葉を加えて、結果を変えることができる。
images 、ちょっと気に入らないものが出てきたら、「My Archive」をクリックしてプロンプトの履歴をさかのぼり、不要なものを消去することができる。
テレグラムでは、画像に返信することで、履歴やアーカイブから画像を消去することができます。 /deleteコマンドで、履歴やアーカイブから画像を消去できます。
ベストプラクティスとトラブルシューティング
ほとんどの問題は、ウェイトが高すぎるか、concepts が衝突したときに発生する。すべてを0.5から0.7の間に設定すれば、ほとんどの問題を回避できる。
モデルによっては非常に敏感です。不具合がある場合は、0.1まで下げてみてください。LoRAの一般的な問題の解決法については、例を挙げて別のセクションで解説しています。
concepts の数は多すぎるか?
重みの少ない2-3個のLoRAを安全に画像に加えることができるが、どのように重なるかは慎重に考えること。画像が戻ってこない場合は、サーバーのメモリー不足で画像が完成しなかったのです。 画像数を減らしてみてください。
あなたのアイデアをテストするために、「品質」settings で「草稿」を選択する。 concepts アイデアをゆっくりと練り上げ、反復していく方がよいでしょう。
ブルー・アーティファクトは一般的
LoRAとウェイトを使用する場合、必然的に衝突が生じます。例えば、ゾンビのLoRAを追加し、騎士のヘルメットのLoRAも追加すると、両者が顔に影響を与えようと争うことになり、青いアーティファクトが発生します。このような場合は、ウェイトを下げるか、別のビジュアルconcept を選択してください。 物事をシンプルに保ち、ゆっくりと構築しましょう。
画像はカラフルな正方形で戻ってくる。
私たちのシステムと互換性のないモデルも(ごく少数ですが)ありますが、一般的にLoRAのウェイトが低い場合、このようなことは起こらないはずです。赤い四角が表示される場合は、ウェイトを下げてください。それでも緑の山やノイズのようなものが表示される場合は、お知らせください。
インターネットで見たものと異なる結果
私たちはあなたのすぐそばにいます。 inpaint と Lightroom を使って images を3時間修正するなど、誰もが自分の最高の秘密を公開しているわけではありません。Stable Diffusioncommunity 内では、最高のimages を作成するために熾烈な競争が繰り広げられています。ちょっとしたズルもある。それに巻き込まれないように。
人気サイト「チビタイ」の場合、コメント欄で他のユーザーの意見を見て、すべて同じconcepts を使っていることを確認しよう。必要なモデルが見つからない場合は、お知らせください。
ローカルPCとは全く異なる結果
このような場合は、ぜひご連絡ください。AIモデルのバージョンが異なることが原因かもしれません。
私たちのシステムも、ハードウェア、ドライバー、その他のウェブコンポーネントによってキャリブレーションが少し異なりますが、一般的な画質は同等でしょう。
バグに遭遇した場合は、ぜひお知らせください。