Stable_Diffusion_提示词位置

发布时间 2023-07-07 23:26:52作者: 胡安

重点:提示词位置不一样,效果不一样

在网上学习Stable Diffusion时,发现有作者提出了这一点,并且做了实验,为了验证效果,加深理解,特此重新实验一遍。

SD官方提到過提示詞不僅可以使用權重來調整圖片的結果,甚至連不同的順序都會有不一樣的效果!至於效果差多少,有時候可以差很多。

我心血來潮測試了一下,將一個seed,負面提示詞,各種設定完全一樣的設定,只是將正面提示詞的詞位置調換,出來的成品大致相同,但是細節差很多!


第一组测试:

种子:1791102673

第一张正面提示词:

an young beautiful Ukrainian woman with silver hair and black robe and dark cloak and wearing tiara, by agnes cecile, half body portrait, extremely luminous bright design, pastel colors, (ink:1.3), autumn lights, (8k, best quality, masterpiece:1.2),(best quality:1.0), (ultra highres:1.0), watercolor

image-20230707193823493

交换部分提示词的顺序:

image-20230707193923839

第二张正面提示词:

an young beautiful Ukrainian woman with silver hair and black robe and dark cloak and wearing tiara, by agnes cecile, autumn lights, (8k, best quality, masterpiece:1.2),(best quality:1.0), (ultra highres:1.0), watercolor, half body portrait, extremely luminous bright design, pastel colors, (ink:1.3)

image-20230707194003710

头发的颜色有点区别,但是并不一定就是提示词顺序引起的,其它并没有什么明显区别

那么生成多张图,看是否有明显区别

第二组测试:

种子不变

第一组正面提示词

sad, an young beautiful Ukrainian woman with silver hair, bluegray eyes, black robe and dark cloak, autumn lights, (8k, best quality, masterpiece:1.2),(best quality:1.0), (ultra highres:1.0), watercolor, half body portrait, extremely luminous bright design, pastel colors, (ink:1.3), by agnes cecile, 3d render

image-20230707194531209

第二组正面提示词:

sad, autumn lights, (8k, best quality, masterpiece:1.2),(best quality:1.0), (ultra highres:1.0), watercolor, half body portrait, extremely luminous bright design, pastel colors, (ink:1.3), by agnes cecile, 3d render, an young beautiful Ukrainian woman with silver hair, bluegray eyes, black robe and dark cloak

image-20230707194744697

这两组提示词,第一组先描述对象,第二组先描述图片的光影属性,而最终出图,人物整体看不出明显区别,人物背景略有不同。

这是原作者的猜想

會造成這個差別的原因,可能是因為Automatic1111把文字轉換成Token的時候,並不是一個Set,而是一個List,加上在推論時,所謂隨機挑選提示詞並不是真的隨機,而是依照給的種子來產生偽亂數。這樣的話提示詞位置的不同就會影響被挑中的文字,所以可能A組合會挑到維多利亞時代的倫敦街頭,但B組合會挑到現代都市(因為AB組合裡面都沒提到背景,所以是偽亂數決定)。

根據Stable Diffusion的操作手冊,在沒有特意把權重標示出來的情況下,越前面輸入的提示詞就越容易被選中。但是在我們輸入的提示詞其實是一樣的,不同的只是順序。但是在不同順序中,當它挑選我們沒有指定的提示詞時,會造成不同程度的影響!(是的,Stable Diffusion在去噪過程中會常常挑到我們沒有指定的提示詞,甚至會小機率挑到負面提示詞!)

结论:

也就是說,當你算到你心儀的圖片時,就可以靠重新排列正面、負面提示詞創造出許多臉蛋,表情大致相同(因為你已經用正面提示詞鎖定了),但是動作姿態、光影與環境都不一樣的圖!挑到同一角色,但場景與動作更棒的圖的機會就更大了!

个人觉得影响不大,可能和生成图片时和具体的模型也有一定的关系。

附:出图时其它参数配置

Steps: 30, Sampler: Euler, CFG scale: 7, Seed: 1791102673, Face restoration: CodeFormer, Size: 512x768, Model hash: e4a30e4607, Model: majicmixRealistic_v6, Version: v1.4.0

参考资料:

  1. Stable Diffusion提示詞訣竅(一)