Hard Prompts Made Easy使生成图像的AI提示变得简单。
今回ご紹介するのは、画像生成AIのプロンプトを短くし、かつ画像とプロンプトの類似度を高めるHard Prompts Made Easy という技術です。
这里介绍的技术被称为 "轻松的硬提示 ",它缩短了生成图像的人工智能的提示,并增加了图像和提示之间的相似度。
2.Hard Prompts Made Easyとは?
2.什么是 "轻松的硬提示"?
従来の画像生成AIのプロンプトは、解釈可能なトークンのみで表されるため、トークン数は多くなり、画像とプロンプトの類似度を上げるためには試行錯誤や直感が必要でした。
传统的图像生成的人工智能提示仅由可解释的标记表示,这意味着标记的数量很高,需要试错和直觉来增加图像和提示之间的相似性。
一方、**Hard Prompts Made Easy(PEZ)**は、解釈可能なトークンの間に解釈出来ない連続値トークンを埋め込むことによって、少ないトークン数ですみ、画像とプロンプトの類似度を上げるために数理的手法を用いることが出来ます。
另一方面,**硬提示简易化(PEZ)**通过在可解释的标记之间嵌入不可解释的连续值标记来要求更少的标记,并可以使用数学方法来增加图像-提示的相似性。
下記は、PEZで画像と類似度の高いプロンプトを求め、そのプロンプトで再度画像を生成した例です。nucやclなどの解釈出来ないトークンが使われトークン数は少ないですが、元画像と類似度の高い画像が生成出来ていることが分かります。
下面是一个使用PEZ找到与图像高度相似的提示,然后使用该提示再次生成图像的例子,表明可以生成与原始图像高度相似的图像,尽管由于使用了诸如nuc和cl等不可解释的标记,标记的数量很少。
この技術を使うと、どんなことが出来るのか見て行きましょう。1つ目は、プロンプトの蒸留です。これはプロンプトのトークン数を減らすことです。
让我们来看看这项技术允许你做什么:首先,它是对提示的提炼。这涉及到减少提示中的代币数量。
2つ目は、スタイル転送です。左側のTarget Style4枚の画像に類似度の高いプロンプト**[A]**を求めて、A Tiger in the style of [A] という様なプロンプトにするだけで、スタイル転送が出来ます。
第二种是风格转移。只需要求提示**[A]**与左边的四个目标风格图像高度相似,并以[A]的风格做A虎 等提示,即可进行风格转移。
3つ目は、イメージの合成です。左側の Separate Generation(2枚の画像)に類似度の高いプロンプトをそれぞれ求め、その2つのプロンプトを結合するとConcatenated Generation(合成したイメージ) を得ることが出来ます。
第三是图像合成。可以分别找到与 " 分离一代"相似度最高的两个提示 (左边的两幅图像),将这两个提示组合起来,就可以得到 "串联一代"(组合图像)。
3.コード
3.代码。
コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある**「Open in Colab」**ボタンをクリックすると動かせます。
代码已经以工作的Google Colab的形式上传到Github,所以我将对它进行相应的解释。如果你想自己尝试,请点击这个"链接",然后点击出现的笔记本顶部的**'Open in Colab'**按钮。
まず、セットアップを行います。
首先,设置。
#@title **Setup** # install library & copy github code ! pip install transformers==4.23.1 sentence-transformers==2.2.2 ftfy==6.1.1 mediapy==1.1.2 diffusers==0.11.1 ! git clone https://github.com/cedro3/hard-prompts-made-easy.git %cd hard-prompts-made-easy # import library import torch import open_clip import mediapy as media from optim_utils import * import argparse # load setting args = argparse.Namespace() args.__dict__.update(read_json("sample_config.json")) args # load CLIP model device = "cuda" if torch.cuda.is_available() else "cpu"...