最近玩到了一個我覺得很新奇有趣的軟體,叫做SillyTavern。
SillyTavern是專用於創建虛擬角色的AI聊天軟體,SillyTavern是TavernAI的分支,但SillyTavern走上了自己的路,加進了許多額外功能,並且仍在積極的持續更新中。
AI聊天在chatGPT爆紅之後好像已經不稀奇了,而這個軟體的背後一樣要串接一套AI做為核心,那有何必要特地來使用這軟體?以下我就簡介一下這軟體的幾個主打特色與優點,至於安裝方式很簡單,所以我放到最後再說。
特色1:可完全自定義的虛擬角色
只要你想的到的人物,不管是自創角色,或是動漫角色,名人明星,朋友家人情人仇人,甚至再感性些,也能創造出曾經出現在你生命中,你還想再多聊幾句但卻已經永遠沒有機會的那些人們。
對於平常有在創作小說或是創作漫畫的人也會很有趣,試著把自己建構的那些角色輸入進去,他們就好像活起來了,會講話並有著自己的個性。再與AI繪圖畫出的角色圖搭配代入感更強(不一定要是AI繪圖,一般的圖片也都可以輸入)。
當小說創作陷入瓶頸時,試著讓自己的角色活起來,讓他們自說自話說不定能找到新的靈感。以上是隨便舉些應用情境,實際上怎麼使用全看自己的創意。
角色配上自定義頭像,代入感更強,下面是個隨便弄的範例:
角色設定可以寫的簡單,也可以寫的複雜,完整的描述可以幫助AI理解你的角色,擬真度也會越高,角色的個性,習慣,回話語氣,甚至是RPG般的魔法與技能都能定義。直接以白話文描述就好,不需要特定格式。
特色2:代入感強的角色對話介面
這一點是對比包括chatGPT在內的多數AI聊天介面,它們大多使用生硬的純文字介面,SillyTavern則是把整個介面弄的更像聊天軟體,尤其是那個人物頭像真的很重要。
整體介面也有很多可修改的細項,例如更換背景/聊天字體大小顏色粗細等等,除此之外還有附上一些基於有趣的週邊功能。
特色3:可以定義出一個完整的虛擬世界
除了定義角色之外,SillyTavern還能創建世界設定,同樣地,這個世界可以設定的多複雜是看你的腦洞上限。
世界觀可以設定多組並隨時切換,也可以完全不使用。
系統有給一個叫做Toraru的世界範例,看來是
魔法禁書目錄(這是一部日本動畫/輕小說)的世界觀,雖然只是範例,但它寫的十分深入且複雜,它裡面列出魔法禁書目錄裡的種種設定,包括環境說明,超能力種類/等級設定,能力相剋,連常盤台中學的人際關係都有寫。
以下也是一個簡單的示範,我試著套用這個世界觀,接著隨便開啟一個角色對話,這個角色立即進入這個世界情境,像是真的生活在這個世界的人物一樣,它可以理解相關的名詞:
這功能我只有粗淺的隨便試用一下,看來算是有點進階的功能,顯然想靠這個功能來創建一個完善的RPG世界是可行的,它可以詳細的設定裝備/屬性/能力/敵人等等。創建一個RPG般的世界設定應該只是最基本的用法,我相信只要有創意,這個功能可以玩出更多花樣,例如你可以定義出全新的法律全書或是全自創的虛擬科技樹等等。
以寫程式的觀點來說,它可以說是「全域變數」的一種。
特色4:真正高自由度的對話內容(具強制力的系統級定義)
SillyTavern可以從系統層級對整個對話模組做定義,最主要的是有三個項目:
Main prompt:最主要的基本定義。
NSFW prompt:NSFW提示,通常是用於讓它可以色色。
Jailbreak prompt:越獄提示,我覺得與NSFW prompt類似,也是在提高它對話內容自由度,例如讓它可以突破道德限制,開始酸言酸語的諷刺政治人物或是口出穢言。
除這三個主項目以外,還有許多細項讓你調整對話變化度或強度等等,當然也有完全關閉NSFW與越獄的選項,讓它繼續當個好人。
預設設定已經算是完善,可以另外建立新的設定,並可設定多組設定檔依不同的用途隨時切換。
預設定義雖然是寫英文,但如果背景AI是支援中文的,那直接寫中文就可以了。當你覺得對話效果不如自己想像時,就可以新增自己的定義,對於特定領域做特化指導,例如你要是覺得它聊18禁話題太含蓄,你可以寫一組超級無敵色色的系統定義。如果希望系統都講文言文還要知書達禮也是可以在系統定義中強調。
預設定義下,角色的回覆會像小說一樣,通常是會描述一段角色行為與情緒再搭一段對白,若你想要別種表現型式也可以從系統定義修改,例如指定讓它更像真人聊天軟體一樣簡單的一問一答就好(畢竟真人聊天是不會有旁白的)。
以下是一個單刀直入的簡單示範,大家都知道原生的chatGPT是非常有禮貌的,除了會避談敏感話題,也會完全避免罵髒話或是說出冒犯人的話,但在SillyTavern使用系統定義幫它解除封印之後,它就什麼都能說了:
系統定義再與角色定義搭配組合的話,效果更好。原則上,系統定義的強制力大於角色本身定義。例如你在系統定義中強調韓國瑜長頭髮,角色定義中則描述韓國瑜禿頭,那麼,最後結果會是韓國瑜長頭髮。
特色6:可以進行多角色的群組聊天:
這是非常有獨創性且兼具趣味性的一個功能,它可以將多個角色加入同一個聊天群組,然後這些角色們就會開始群聊,你可以讓他們自行發揮,也可以一起加入會談。
但實際表現還是要看背景AI的理解力與表現力,陷入各自自言自語或是胡說八道的狀況也是有的。
以下也是一個簡單的示例,SillyTavern安裝後就內建了三個動漫角色,我直接把這三個角色拉成一個群組:
我並沒有看過這部動畫,所以她們的回答有沒有符合原著個性我就不知道了。我印象中Aqua應該是更瘋狂更白癡更失控的角色才對。
特色7:多樣化的擴充功能:
SillyTavern內建了幾項擴充功能,有的是增加對話趣味性,有的是增加方便性。
這篇文章的主要目標是推廣而非教學,所以這邊就大致描述幾項我覺得實用的擴充功能:
Objective:類似autoGPT的作用,直接描述你的任務目標,接著它就會自動幫你生成對話內容。例如我在Objective輸入"讓胖爾達減肥",接著它會自動生成對話,且對話內容會對應任務目標。
TTS:生成對話語音,主要只是有趣,看著對白發出聲音挺新鮮的,可以串接多種語音模型,用免費內建的也行,但內建的就是有點機械音。
Stable Diffusion:依對話內容自動生成對應的AI繪圖,用途主要也是有趣,因為生成的圖質量通常是比不過自己精心打磨的AI繪圖,也未必可以跟對話情境搭配。
Character Expressions:依角色情緒自動顯示表情圖,它可以依不同角色的不同情緒去設定不同的圖片,如果你對一個角色真的很有愛的話,可以準備對應28種情緒的表情圖,這樣對話起來更加生動。(懶一點也可以直接用陽春型的內建表情圖)。
Roll Dice:這應該是RPG風格或是TRPG風格的對話才會用到,丟骰子後會產出一個隨機數字,用這個數字來判定某個狀況的結果是成功或是失敗。從這個功能不難看出,SillyTavern的野心極大,它不只能夠進行虛擬對話,甚至有可能建構出一個完整的RPG遊戲。
這邊只是做幾項重點簡介,實際上SillyTavern的週邊功能跟設定項目很多也很細,可玩性很高。
與原生的chatGPT比較:
當然普通的角色扮演對話chatGPT也辦的到,但最主要的差別有五點:
第一是chatGPT沒有明確的角色定義功能,你必須手把手的指導它,而指導效果未必穩定。
第二是chatGPT無法附上角色圖,你要全靠自己腦補,代入感稍差。
第三,chatGPT並非專門為角色扮演而生,所以它可能常常扮演不好,或是演到一半突然又歪回去原本的機器人角色令人出戲,但SillyTavern的整個系統從底層到上層都已做好虛擬對話應該有的定義格式,表現比較不會失常。(但畢竟背後還是一樣串接一個AI,要保證100%無錯誤是不可能的。)
第四,SillyTavern有許多配套的擴充功能,它讓整個對話體驗更方便也更有趣,這是chatGPT完全沒有的。
第五,最重要的一點,網頁版的chatGPT有著較嚴格的道德枷鎖,表現力受限,而這種過度規矩的狀況,GTP-3.5又比GTP-4嚴重的多。(例如可能一段劇情進行到與反派的決鬥,結果它會突然跟你說它不能描述暴力場景???)
與直接使用GPT API比較:
因為這套軟體只是一個介面,它背後還是要連接一套AI引擎,那既然如此,跟你自己直接去使用GPT API有何差別呢?
我可以跟你說,沒有差別,只要直接透過API,那你也可以得到一個同樣高自由度且高度客製化的對話模組,但要自己連接API就要自己寫程式,而且要寫到跟SillyTavern同等規模肯定不容易。
而且API的總對話長度是有限的,而SillyTavern本體已經寫好無限延伸對話的邏輯。另外,API的系統定義是全空白的,你也要自己設計,諸如此類種種,都是自行打造新程式時要考慮的。
但自己打造的最大好處就是可以更貼合自己的需求,有能力有體力也有時間的話,自己寫並不是個壞方法。
安裝方法:
安裝時我選用懶人方法,我並非直接使用原始的程式碼,而是透過全自動的啟動器SillyTavernSimpleLauncher,可以達到一鍵安裝,少了很多麻煩。
同時這個啟動器也附帶許多自動功能,它使資料轉移/備份/程式更新等操作都更快更方便。
1.下載啟動器程式
接著開啟cmd指令視窗並切換到準備安裝此程式的資料夾,然後執行下令指令:
git clone https://github.com/BlueprintCoding/SillyTavernSimpleLauncher -b main
指令完成後如下圖,這邊只是下載啟動器程式碼而已。
2.啟動啟動器
接著開啟程式資料夾,執行Install STSL,這一步才是正式安裝好啟動器本體。
安裝完成後的畫面如下圖:
3.執行SillyTavern安裝
上兩步都還只是在配置啟動器而已,到這一步才是正式安裝SillyTavern。
如果上述兩步正常執行的話,這時應該會自動跳出一個瀏覽器介面如下,在這介面中點擊Install Main Branch:
(註:如果上述介面沒有自動顯示的話,就自行從安裝資料夾中點擊Start STSL一樣會再次跳出這個瀏覽器介面。)
點擊Install Main Branch就會開始SillyTavern本體的安裝。
直到跳出成功畫面才算整個結束。
4.啟動SillyTavern
為保險起見,第3步安裝結束後,最好是把所有指令介面跟瀏覽器介面全部關掉,重新點擊Start STSL啟動:
接著一樣是會自動跳出瀏覽器介面,此時點擊Launch ST Main就算是正式啟動SillyTavern了。
基本使用:
這軟體的細部功能跟設定項目極多,有興趣的再自己去深入,這邊只介紹如何入門。
1.連接AI:
上面就有提到,這軟體只是一個介面,本身不具有AI功能,你仍然需要串接一個AI核心。
它支援多種AI模型的串接,但建議還是串接主流的大模型效果較佳,比較推薦的有chatGPT或是claude。其中chatGPT的API是最好申請的,claude則較為嚴格,我自己申請claude也是失敗的,所以以下是以串接chatGPT的API為例。
首先,你要有一組openAI的API key,如果不知道怎麼申請的話可以參考這篇文章:
[科技]今天起,可以串接「真正的」OpenAI ChatGPT API (GPT3.5)
串接操作如下圖:
點擊上方插頭圖案,下拉選單1選擇Chat Completion,下拉選單2選擇OpenAI,接在key欄位輸入你的API key。Model可選擇GPT-4或GPT3.5。
GPT-4的效果非常好,它的回話風格較為豐富生動,對於上下文的理解也較聰明。GPT3.5則是略為呆板,偶爾也有耍笨的情況。
但是要注意,OpenAI的API的使用是要錢的,而且不是吃到飽,是依使用量累計。所以GPT-4雖然最好但也最貴,而GPT3.5則是效果與價格權衡之下較有CP值的選擇。
若完全不想花錢的話,可以選擇串接POE,POE串接到的模型是claude-instant,大約等同於GPT3.5等級,至於如何串接POE,我在補充事項中會稍微提到。
2.創建角色:
右側角色選單點擊創建鈕即可開始建立自己的角色。
創角介面中可以填入角色名稱,角色圖片,角色介紹(這是影響角色回話風格最重要的設定項之一。),以及角色在開啟對話後會說的第一句話或描述語。
角色描述越詳細越好,越詳細越可以讓AI理解這個角色的個性。
而創建好的角色是可以另外匯出留存備份的。
3.系統設定:
點擊左上設定鈕可以進行特色4提到的各項系統層定義,這步非必要,若覺得預設值也夠用就不用再改了。
4.開始聊天:
準備就緒後,點擊角色圖就可以開始聊天了:
到這邊為止,最重要的入門工作就都完成了,而它的週邊功能或細部設定就待各位自行研究了,或是我有空再寫些教學。
補充事項:
1.官網QA有許多實用的資訊,提供了許多好用的使用小技巧跟重要訊息,非常推薦全部看一遍,英文不好的用google直接翻也很好懂。
以下我列的訊息全部來自於QA頁面。
2.官網有大略比較各個AI模型的回話風格
下圖同樣來自於QA頁面:可以看出GPT與claude確實是效果最好的選擇。
3.列出幾個角色下載網站
可以下載別人定義好的角色檔回來直接使用,但官網似乎比較建議自己玩自己的角色就好,原因是上面有許多腦洞大開,開到毀你三觀的奇異角色。
4.如果你想專注於如何打造出一個超級18禁環境的話,可參考下列網站:
5.如何串接免費的POE做為核心模組?
以下說明來自官網:
在https://poe.com創建一個帳戶。這使您可以在瀏覽器中訪問 Claude Instant 版本。
打開https://poe.com/Claude-instant,在瀏覽器中按 F12 打開開發者工具
單擊“應用程序”選項卡。您應該看到一個名為“pb”的條目,其右側是一個類似密碼的 cookie 值。複製該值。
在 Tavern 中,單擊頂部工具欄中的 API 連接,選擇 Poe,然後粘貼您的 cookie 值
單擊連接
關閉 Poe 瀏覽器選項卡。我是認真的,在使用 TAVERN 時,請勿打開 poe.com 瀏覽器,它會劫持回复。
其餘步驟與上面的 OpenAI 相同。
使用 Poe 時要小心,它是以一種 hacky 的方式實現的。如果您在 30 秒內沒有得到答复,請重新啟動 Tavern。不要只是讓它運行等待響應,它只會無休止地嘗試從 Poe 獲取數據,並且可能會標記您的帳戶。您可以查看酒館控制台(黑色窗口)以查看它是否正在循環。
6.修正角色的回話風格:
如果角色的回話風格不是你預期的,你除了可以試著從系統定義跟角色定義的描述詞做加強修正之外,你可以直接人工介入,直接修改他原本的回話內容,改成你覺得較佳的回話方式。
因為聊天AI的特性是判讀上下文並做出可能的回覆,因此你若直接修改原本的上下文,AI就會依據被修改後的上下文來做出新的回覆判定,這樣就比較有機會理解你想要的回話風格與內容。
但當然AI就是帶有隨機性,不一定事事都會讓你滿意,放任AI自由發揮也無妨,何況若你對一個角色已經有一個非常固定的成見,這個角色要講什麼話要做什麼動作你心中都有一個明確的答案了,那其實你直接自己寫小說就行了,自己寫的小說總不會再寫到歪掉了(吧)。
結語:
這篇只是想做簡單的介紹與推廣,結果還是寫了這麼多字。但即使如此我也只完成了基礎應用的介紹而已,還有許多細部功能沒提到。
會想推廣這個是因為我覺得這軟體十分有潛力,但目前這軟體似乎只在一些較為狂熱的圈子中有知名度,在這圈子之外的人則是完全沒聽過。
也許AI再發展下去會有更多有趣的東西,讓我們繼續看下去。