一幅霧氣彌漫的錯綜幻想森林場景,特色為超現實的金色蟾蜍菇與高聳的碧藍蘑菇,兩位菲律賓人物沿著細緻的林徑行走。

推薦提示詞

award-winning Art Nouveau xlmrblng15-1300, analog realistic colour photo of a Japanese mermaid sitting on a rock in the midst of crashing waves, very detailed

cybernetic nun, xlmrblng15-1300

fantasy winter landscape, xlmrblng15-1300

(__Art_Movements__:0.5) xlmrblng15-1300, mature __Nationalities__ (__Character_MF__) riding a __BW_Animals__ in a white-tinted __Landscapes__, __Metal_Color__ filigree inlay

very detailed, intricate

推薦參數

samplers

DPM++ 2M Karras

steps

40 - 50

cfg

7

resolution

1024x1024, 960x1344, 1344x960, 1024x1024, 640x960, 960x1344

vae

sdxl_vae - 1.0, sdxl_vae.safetensors (235745af8d)

other models

crystalClearXL_ccxl (0b76532e03)

推薦高解析度參數

upscaler

Latent (nearest-exact), 4x-UltraSharp

upscale

1.25 - 1.5

steps

30

denoising strength

0.4 - 0.7

提示

在 TI 標記前使用 3 至 5 個標記(例如 'portrait of a woman, xlmrblng15-1300')以獲得更佳效果。

最佳結果出現在提示詞長度介於 30 至 45 個標記且無負面提示詞時。

避免使用與 SDXL 已知概念重疊的 TI 觸發詞(如 'marbling'),會導致意外結果。

使用 Dynamic Prompts 的 wildcard 系統來豐富與創造多變提示。

使用 kohya_ss 訓練時需慎選初始化詞,建議用 'pattern' 取得最佳平衡且避免重複圖案。

TI 包含 8 個向量以加強效應,對短/簡提示過強。

生成時建議使用 DPM++ 2M Karras 取樣器,CFG 設為 7,步數 40。

使用接近 1MP 的解析度(1024x1024、960x1344、1344x960)能取得良好品質;1344x960 適合 7"×5" 打印尺寸。

版本亮點

此為使用現行 kohya_ss(本文撰寫時版本 v22.6.0)重新訓練,前版本使用設定已無法達成相同效果。有興趣者可參考附帶訓練數據與說明。訓練期間使用梯度累積為 4,故 500 步等效於無累積時的 2000 步。

2024年1月31日

v2.0 並非更優版本的 MarblingTIXL,只是不同而已。v1.0 仍然正常運作。

隨著 kohya 的改變,我發現我製作的 v1 版本的 TI 已經無法使用,或者說再也無法產生有用的效果。

感謝 @raken 提醒我這點。

我依然認為 SDXL 嵌入有巨大潛力,因此重新安裝了 kohya_ss(本文撰寫時版本為 v22.6.0),並試過各種參數設定,找到一組能製造與原始 MarblingTIXL 親近效果的組合。

若有人對 SDXL TI 有興趣(我知道至少有 2 位!),我已附上訓練數據與 kohya_ss 配置 JSON 文件。若想到有用的筆記,也會同步提供。

優點是此 TI 訓練速度較快……缺點是比舊 TI 穩定性稍差。或者我還沒完全摸索。前沿領域誰說得準呢?

若有任何問題、觀察、看法或經驗請於下方留言。目前網路上關於創建 TI 風格的實務資料相當稀缺……我看過、聽過不少相互矛盾的見解,不過這的確可行,我相信會有比我做得更好的 TI 作品出現。

跟 LoRA 比較?不算競爭——LoRA 是在檢查點上加東西,而 TI 是利用檢查點已有內容。如果我沒理解錯,TI 能將你帶至檢查點可能空間中的某些難以持續觸及的區域。換句話說,TI 與 LoRA 目的不同,且能結合使用,人人開心 :-)

有些技術論文介紹 TI 是什麼、如何訓練以及文本編碼器等,但我常看個幾頁就看不下去了 :-(

據我所知,kohya_ss 只訓練 SDXL 的第一個 TE(文本編碼器),即 SD v1.x 的那個,該版本理應能在 auto1111 SDXL 生成中用,但實際卻不能。(有人說 SD v1.x TI 在 Comfy 可用,但體驗不一。)第二個 TE(SD v2.x)似乎沒有在 kohya_ss 中訓練,或者它是 TE1 的複本?

我也嘗試過 OneTrainer(有雙 TE 選項),但跑過幾次都沒成功,所以目前堅持用 kohya_ss。

參考用機器是性能良好的 RTX-3060 12GB PC。當前 kohya_ss 運行時幾乎用完 12GB(如果還生成樣本,則再額外多 6GB),因此資源消耗比 LoRA 大。原以為 TI 需要的資源會少或相同,有點意外。或許暫時沒需求特別優化 TI?

此 TI 訓練基於:

sd_xl_base_1.0_0.9vae.safetensors

展示圖使用:

crystalClearXL_ccxl.safetensors [0b76532e03]

意即以 vanilla base 訓練的 TI 可適用於其他檢查點。

圖片於 a1111 v1.7.0 生成,使用了 Hires.fix,未用其他調整器。

下方附有無 TI/有 TI 對照圖,標籤“xlmrblnh36-500”為無 TI,“xlmrblng36-500”為有 TI。這樣標示方便盡量讓兩個提示詞保持相似。

有興趣者可下載訓練數據壓縮包,其中包含每 25 步(*4 梯度累積 = 100 標準步)儲存的所有 TI。

--------------------------

附帶:automatic1111 webui(v1.6.0)現行版對 SDXL 有個問題。若使用 refiner 檢查點,webui 會忘記所有嵌入,需切換其他檢查點後再重載原檢查點(或重啟 webui)才能恢復。已向開發者反映:

https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/13117

已確定為 BUG。

--------------------------

***摘要***

此嵌入賦予影像一種受復古大理石紙紋樣啟發的超現實/奇幻美學。效果會因提示詞與該美學接近程度而從輕微到極端不等。

訓練過程未包含任何藝術家作品或標籤。

可複製展示圖的生成設定調整使用,或嘗試以下提示詞搭配任意種子,亦能產生不錯結果:

award-winning Art Nouveau xlmrblng15-1300, analog realistic colour photo of a Japanese mermaid sitting on a rock in the midst of crashing waves, very detailed

檢查點:crystalClearXL_ccxl.safetensors [0b76532e03]

取樣器:DPM++ 2M Karras

步數:40

CFG:7

寬高:1024×1024

並可自由調整詞彙。請盡量保持“xlmrblng15-1300”前詞語約 3 到 5 個。

可嘗試最簡單的提示詞,如:

cybernetic nun, xlmrblng15-1300

fantasy winter landscape, xlmrblng15-1300

不過通常需要更多文字才能得到有趣結果。

經過多次實驗,最佳結果於提示詞長度 30 至 45 標記間,且不含負面提示詞。

下方額外圖庫展示多組前後對比圖。

xlmrblnh15 = 無此 TI

xlmrblng15 = 有此 TI

你會看到此 TI 不只是簡單添加大理石紋理 :-)

--------------------------

***詳細說明與訓練資訊***

此為文本反演(TI)嵌入,依據提示詞為生成影像添加或調整成大理石紙紋理。因 SDXL 系統特性,長且複雜提示詞往往具有 結構性效果,而非簡單重疊紋路。

它是我對 SD v1.5 的 MarblingTI 的 SDXL 繼任:

https://civitai.com/models/69768/marblingti

由於 SDXL 變動大,嘗試很多次(20 多次失敗起步),我認為此新版 TI 比舊版更有用……至少對我喜愛的超現實/插畫風作品。

切換訓練工具自 automatic1111 至 kohya_ss 並不容易,後面有更多說明。

此 TI 佔用 8 個向量(即提示詞佔 8 個標記)。對短/簡單提示詞來說過強,屬預設設計。我有試過較細膩版,但對 SDXL 長複雜提示詞沒用。依我理解,Stable Diffusion 正常應該 4 向量足矣,但使用 4 向量無法穩定產出結果。

源素材為掃描/拍攝的復古大理石紙,先產生數個前驅 TI,再用於混合產圖,成為此 TI 訓練輸入。

提示詞使用時,前面需放 3 到 5 個標記。

例如:

portrait of a woman, xlmrblng15-1300

而非

xlmrblng15-1300, portrait of a woman

若用短而簡單的提示詞,產出多為復古大理石紋,雖精美卻單調。且短提示可能使影像略帶綠色偏差,原因不明,訓練圖並無此色調。

權重/強調度可在 0.81 至 1.33 之間調整,視提示詞而定。我發現透過移動 TI 標記位置而非改變權重,更能穩定效果。

所有該 TI 生成圖皆用 automatic1111 webui v1.6.0,唯一外掛是 Dynamic Prompts(於擴展標籤安裝)。未使用 Hires.fix、外擴繪製、細節增強器或其他 TI、LoRA,方便大家從展示圖判斷是否值得使用此 TI。

https://github.com/AUTOMATIC1111/stable-diffusion-webui

https://github.com/adieyal/sd-dynamic-prompts

我常用 CrystalClearXL:

https://civitai.com/models/122822?modelVersionId=133832

或 SDXL FaeTastic

https://civitai.com/models/129681?modelVersionId=157988

作為 SDXL 圖像生成檢查點,但此 TI 對試過的所有 SDXL 檢查點皆兼容。

因提示詞運作模式,若想比對有無此 TI 效果,僅需改變標記一個字母:

有 TI:cybernetic nun, xlmrblng15-1300

無 TI:cybernetic nun, xlmrblnh15-1300

可透過重新命名 safetensors 檔案變更觸發詞。問題是若更換至 SDXL“認識”的詞(如 marbling),會產生意料外效果。即使組合新詞如 newmarbling,SDXL 仍會分辨“new”與“marbling”並各自作用而非啟動 TI。

此名稱用以提示為 SDXL TI,已大理石紋理(mrblng),版本第 15 次訓練 1300 步。

我常在提示開頭放藝術流派,如 Art Nouveau,原樣或降低權重至 0.3 至 0.5。可參考藝術流派列表:

https://en.wikipedia.org/wiki/List_of_art_movements

https://en.wikipedia.org/wiki/Periods_in_Western_art_history

若不合嚴謹派,可用類似“award-winning illustrative”。對我來說,加上喜愛的藝術流派,可省去較多提示調整以達類似效果。我將喜愛流派列於 txt,放入 Dynamic Prompts 的 wildcards 資料夾,方便直接用 __Art_Movements__。

原則上不使用藝術家名,除非是追求特定效果的逝世藝術家,例如 René Lalique:

https://en.wikipedia.org/wiki/Ren%C3%A9_Lalique

由於 automatic1111 可能不會加入 SDXL 訓練,我開始用 kohya_ss (v21.8.9) 來訓練 TI:

https://github.com/bmaltais/kohya_ss

kohya_ss 設置繁多,我仍不了解一半 :( 但以下分享部分設定,或對想用 kohya_ss 訓練 SDXL TI 的朋友有用。我未嘗試過 SDXL TI 物件,kohya_ss 無法成功訓練 LoRA(開始訓練失敗或中途崩潰)。

以下均為我個人 PC 實測有效設定,希望也適用於類似配置。

我用的 PC 配置:

Nvidia 3060/12GB(非 Ti),MSI X570 主板,Ryzen 7-2700 (8核16線),64GB RAM,多個 SSD,Win10pro。

建立資料夾結構:

XLmrblng15

\--img

\--\--50_XLmrblng15 style

\--log

\--model

訓練圖:

準備了 45 張 1024x1024 圖放於“50_XLmrblng15 style”資料夾,為每張生成一個 .caption 檔。例如:

cliff with waterfall.png

cliff with waterfall.caption

.caption 文件為純文字,用簡單編輯器撰寫,格式一致:

xlmrblng15, cliff with waterfall

即 TI 名稱、逗號、空格、描述標題檔名。

我未使用自動標註工具。

以下未提及參數皆設為預設。

kohya_ss 主頁籤“Textual Inversion”:

來源模型:

Model Quick Pick = custom

儲存訓練模型格式 = safetensors

預訓練模型路徑 = G:/stable-diffusion-webui-master/webui/models/Stable-diffusion/SDXL/sd_xl_base_1.0_0.9vae.safetensors

SDXL 模型 = 選取

資料夾頁籤:

圖片資料夾 = G:/KOHYA/TRAIN/XLmrblng15/img

輸出資料夾 = G:/KOHYA/TRAIN/XLmrblng15/model

記錄資料夾 = G:/KOHYA/TRAIN/XLmrblng15/log

模型輸出名稱 = xlmrblng15

參數(基礎):

標記字串 = xlmrblng

初始化詞 = pattern

向量數量 = 8

模板 = caption

混合精度 = bf16

保存精度 = bf16

每核心 CPU 執行緒數 = 1

緩存潛變 = 選取

緩存潛變至磁碟 = 選取

學習率調度器 = constant

優化器 = AdamW8bit

學習率 = 0.001

最大解析度 = 1024,1024

無半 VAE = 選取

參數(進階):

VAE = G:/KOHYA/sdxl_vae.safetensors

每 N 步保存 = 100

梯度檢查點 = 選取

記憶體高效關注 = 選取

DataLoader 最大工作者數 = 4

參數(樣本):

每 n 步取樣一次 = 100

樣本提示詞 =

an analog realistic photograph of a magnificent jug on a table with glass tumblers, very detailed, intricate, xlmrblng15 --w 1024 --h 1024

xlmrblng15, an analog realistic photograph of a magnificent English lady wearing a Victorian bathing dress, very detailed, intricate, --w 1024 --h 1024

上述設定下,訓練時間約 6 秒/次迭代。由於我同時使用 PC 做其他簡單任務,時間略變動。xlmrblng15-1300 版本約於運行 2 小時 10 分達成。

訓練大半期間,GPU VRAM 使用接近 3060 的 12GB。生成樣本及每 100 步保存 TI 時另用 7GB(共 19GB),該 7GB 為“共享 GPU 記憶體”,即主系統 RAM。生成完成後回復僅用 GPU VRAM 12GB。

使用“共享 GPU 記憶體”時,整體速度降約 10 倍,真是折磨 :(

kohya 生成的樣本圖質量遠不如 auto1111 webui 使用基礎 SDXL 模型。但我保留它們以確保訓練方向大致正確。

訓練資料集非常關鍵,我嘗試許多現成與真實圖像組合,直到組成此頁所示 TI。

45 張圖,批次大小 1(預設),資料夾名“50_XLmrblng15 style”告知 kohya 處理圖像 45 次。45 × 50 = 共 2250 步。透過測試不同儲存版本(100、200、300 步等),我覺得 1300 步版本最佳。

在參數基礎頁籤有“Init word”欄位,訓練對初始詞敏感。此案我用“pattern”,在 SDXL 看來屬 1 標記詞。理論上應該用 8 標記詞(kohya 控制台會警告向量數與init詞不符)。我也試過多標記詞版本,得到有趣 TI,但非目標效果。

用“pattern”的缺點是,根據提示詞,可能產生大量重複,如牆紙或包裝紙上的重複圖案。

使用“marblng”或“paper marbling”失效,因 SDXL 比 SDv1.x 對大理石紋識別更深入。試過以提示詞要求大理石紋理,SDXL 表現遠勝 SDv1.x。用“marbling”或類似詞作初始詞,TI 反倒觸發了 SDXL 內建大理石效果而非訓練資料學習效果 :-(

研究過大理石紙歷史,嘗試過如土耳其“ebru”等詞,效果仍不佳。最後選擇寬泛詞“pattern”,較接近期望。

kohya_ss 進階版有“style”模板,我對私用 SDXL TI 有用過,效果不錯,但對此大理石紙 TI 效果不佳。

文本反演(TI) vs. LoRA:

我專注於 TI 因為(a)無法讓 LoRA 完成訓練,(b)想利用 SDXL 內含內容而非額外覆蓋。並非反對 LoRA,反而玩得很開心,特別是 konyconi 等人的 LoRA,成果驚人!

但我目前較偏好 TI。我看法是 TI 幫你調整提示詞,進入 SDXL 中非簡單詞彙可逹區域,LoRA 則是在 SDXL 內容上疊加新內容,透過提示詞融合。

這說得簡單粗暴,不想牽涉到 SDXL 樣本空間與機率空間及超集等複雜理論。對我來說,這只是興趣,非工作 :-)

最後一點是我重度使用 Dynamic Prompts 的 wildcards 系統。我的典型提示詞以此 TI xlmrblng15-1300 為例:

(__Art_Movements__:0.5) xlmrblng15-1300, mature __Nationalities__ (__Character_MF__) riding a __BW_Animals__ in a white-tinted __Landscapes__, __Metal_Color__ filigree inlay

經過 Dynamic Prompts 處理後的提示詞通常 30 至 45 個標記。

把生成圖拖曳到 auto1111 webui 的「PNG Info」頁籤,提示詞典型長度為 34 標記:

(Surrealism:0.5) xlmrblng15-1300, mature Swedish (male vampire) riding a dalmation in a white-tinted mudflats with scarlet cranes, black filigree inlay

為何放國籍?SDXL 對這些在長提示時忽略很少。因為 SDXL 有偏好,會添加與國籍關聯的附加元素,如提到 Scottish 會加紅髮,Egyptian 會加金字塔,Japanese 會加富士山。其他類似情況也會如此;SDXL 的上下文關聯遠勝 SDv1.x,難以完全控制 :-(

我用的 SDXL 主要解析度是 1024×1024、960×1344 與 1344×960。網路上建議使用基礎的 1MP(1024×1024)及接近 1MP 的其他解析度。若選 1344 寬度,理應用 768 高度。我試過,1344×768 視覺質量不及 1024×1024 和 1344×960。1344×960 則完全符合 7" × 5" 照片紙尺寸,挺適合的 :-)

上一個
只有黑色。SDXL - v1.0
下一個
BaZaaR - v0.20_UD

模型詳情

模型類型

TextualInversion

基礎模型

SDXL 1.0

模型版本

v2.0

模型雜湊值

25613074d7

訓練詞彙

xlmrblng36-500

創作者

討論

log in以發表評論。

MarblingTIXL - v2.0 的圖片

奇幻 圖片

風格 圖片

超現實 圖片