藉助本地部署的AI工具製作視覺小說

一次有趣的實踐#

在校內選修了一門以“生成式AI”爲主題課程,課程上講授的一些內容與我的一個埋藏已久的點子不謀而合——從零開始開發一部視覺小說。鑑於此前已經有基於前端技術開發簡單視覺小說應用的經驗,再加上現在有了各領域都有了強大AI的幫助,因此我決定好好地嘗試一次,從部署AI工具,到運行程序的搭建,完全從零開始用AI來實現每一步。

技術路線#

項目結構#

首先需要明確的是,要製作基本完整的視覺小說作品,至少需要完成以下幾個部分:引擎,角色設定,劇情腳本,場景圖,角色表情動作差分圖,片頭視頻(Opening),片尾視頻(Ending)。接下來對這些必備元素稍做分析。

引擎是遊戲的載體,是負責向用戶展示故事情節與視覺小說基本功能(存取進度等)的程序。爲了方便成品可以輕鬆運行、隨處可用,同時簡化開發難度,這裏採用單頁web應用做爲遊戲載體,藉助Vue及前端技術棧開發。整個開發過程將會藉助cursor、GitHub copilot等編程助手來實現。爲了更完善的用戶體驗,也將同步推出基於Electron的Windows、MacOS桌面端應用(畢竟技術棧都一樣)。

市場上的部分引擎

角色設定劇情腳本是支撐遊戲內容的重要部分,這部分將由本地LLM來完成創作。通過撰寫完善的提示詞與大致的劇情綱要,大語言模型有能力生成詳盡的人物外觀、性格、經歷設定,並根據這些信息來幫助生成更符合角色特徵的對白。最後依然藉助本地大語言模型將對白數據結構化,導入到遊戲文件中。

場景圖角色差分圖,前者的製作較爲簡單,只需要向本地繪畫模型描述(在comfy web UI中輸入)大致內容即可。但是角色差分圖的製作將會較爲複雜,因爲在整個遊戲流程中,同一個角色的外貌特徵應該有着極高的穩定性,但是卻又需要根據不同的情節調整表情、姿態,這是主要難點。

表情的局部差分

  • 角色穩定性方面主要有兩種途徑來解決,一是通過詳盡的外貌提示詞和較高的提示詞權重來限制AI的創作,二是先使用一張基準圖片搭配不同的提示詞(img2img功能)來創建一組相似的該角色的圖片,之後將圖片組訓練爲Lora模型,在後續的生成中使用Lora來控制人物形象。

  • 表情可以使用蒙版工具(局部重繪)來修改,將底圖與蓋住臉部的蒙版同時導入,即可實現僅僅修改臉部表情。

  • 姿態可以使用ControlNet來控制,藉助ControlNet和pose模型,我們可以將一張真人姿態照片應用到生成出的角色身上。

此外,得益於國外HuggingFace與國內LibLib等開源社區,許多Checkpoint、Lora和comfy UI工作流可以直接使用,使得角色風格更豐富更容易控制。在提示詞超市(亦稱爲標籤超市、魔導書)中,也可以隨心選擇需要的提示詞組合,更方便的控制和微調圖像生成結果。

本地與雲端大模型#

本項目儘可能使用在本地部署的AI工具,僅在當本地端沒有可以滿足質量和效率要求的工具,或是工具所需顯存過大的情況下才藉助雲端產品。主要環節實現途徑如下表。

實現途徑任務本地繪畫模型繪製背景圖、繪製角色立繪、繪製表情與動作差分圖本地LLM撰寫人設、完善故事細節、輸出結構化對白數據Suno.ai生成Opening、Ending音樂、生成劇情BGM人力將素材組織爲Opening、Ending視頻、搭建服務端

Suno音樂與歌曲生成

提示詞工程#

在視覺小說的製作過程中,提示詞的設計至關重要,因爲它直接影響AI生成內容的質量與一致性。在爲不同的素材撰寫提示詞時,需要根據目標內容的特點,確保提示詞具備足夠的清晰度、細節性以及創意空間

角色設定的提示詞需要涵蓋角色的外貌特徵、性格、背景故事等多維度信息,確保AI生成的人物不僅外形符合預期,性格與行爲邏輯也能融入劇情。提示詞可以包含年齡、髮型、服裝風格等具體描述,同時通過性格詞彙設定角色的情感表達與互動方式。

場景圖的提示詞則更注重對氛圍、色彩和空間佈局的描述。場景不僅僅是視覺背景,還承載了故事的情感基調。因此,在撰寫提示詞時,可以明確指出時間、季節、光線效果等因素,幫助AI生成符合故事氛圍的環境。

角色表情與動作差分圖的提示詞撰寫需要特別注重情感和動態的表達。要確保不同的情緒(如憤怒、喜悅、悲傷)的細微差別能夠通過提示詞傳達出來。這裏需要通過明確的情感詞彙和動作描寫,如“微笑”、“皺眉”、“抬手”等,幫助AI準確抓住角色的情感和動作變化。

實際搭建#

comfy UI#

本體部署#

Comfy UI 的本體託管在 GitHub 上,我們可以通過 git 來拉取最新版。首先,可以藉助scoop等包管理器或官網MSI安裝工具在系統中安裝 Git 和 Python環境(3.8+),然後在終端中運行以下命令來克隆 Comfy UI 倉庫並進入項目目錄:

git clone https://github.com/comfyanonymous/ComfyUI.git

cd ComfyUI

接着,通過以下命令安裝所需依賴並啓動 Comfy UI:

pip install -r requirements.txt python main.py

啓動完成後,Comfy UI 將可以通過本地的 Web UI 進行訪問,在 http://localhost:8188 上。通過網頁界面,我們就可以直接進行節點編輯、工作流製作和圖像生成了。

插件管理器#

Comfy UI 的許多功能和節點都依賴插件實現,但手動安裝插件耗時較長,尤其是在加載新的工作流時需要安裝大量節點。爲了解決這個問題,可以藉助 manager 插件來簡化安裝與管理節點的流程。該插件允許一鍵安裝缺失插件,自動更新已安裝的插件,極大地提升了效率。使用時只需在插件管理器中選擇相應的插件或節點庫,系統會自動進行安裝與升級。

要安裝,直接終端裏輸入以下命令(工作目錄均爲Comfy UI 根目錄)

cd custom_nodes

git clone https://github.com/ltdrdata/ComfyUI-Manager.git

藉助 Blender 的 Shade 中的節點樣式 UI#

雖然 Comfy UI 自帶的 Web UI 功能強大,但在操作上略顯侷限,特別是在與本地文件系統的交互上不夠便利。嗶哩嗶哩開源作者“一瓶辣椒醬”開發的 鐵鍋燉 插件可以用 Blender 的節點樣式 UI 替代 Comfy Web UI ,從而提升用戶體驗。

Blender 等專業 3D 軟件的材質和效果器編輯方式與 Comfy UI 的節點編輯方式十分相似。通過下載“鐵鍋燉”,並將插件安裝至 Blender 目錄下,我們可以使用 Blender 的直觀 UI 來編輯 Comfy UI 中的節點,使操作更加便捷且直觀。

下載“鐵鍋燉” -> 首頁安裝插件至 Blender -> 啓動blender並切換的Comfy Node界面 ->連接Comfy UI Server

Checkpoint 模型與 Lora#

Comfy UI 支持加載 HuggingFace 和哩布哩布等平臺上開源的 Checkpoint 模型和 Lora 模型。我們可以通過社區網站提供的模型預覽和介紹選擇需要的模型文件,下載後將其放入 Comfy UI 中的 models 目錄下的對應文件夾。然後,在 Comfy UI 的節點中加載這些模型,即可在工作流中使用不同的模型來生成不同風格的圖像。具體路徑如下:

/models/Checkpoints/ # Checkpoint 模型目錄

/models/Lora/ # Lora 模型目錄

加載模型後,通過 UI 中的模型節點進行選擇與應用,便可以將不同模型的風格應用到項目中。

工作流#

在 HuggingFace 和哩布哩布等開源社區中,不僅可以下載模型,還可以找到許多功能強大的工作流模板。通過直接導入這些工作流,我們可以快速實現複雜的功能,而不需要從零開始搭建。例如,可以在社區中下載一個多節點的工作流,並通過 Comfy UI 導入,以完成圖像生成、角色設定等任務。導入工作流時,Comfy UI Manager會檢查所需的節點和插件是否完整,缺失的內容會提示你使用插件管理器一鍵安裝。

平臺瀏覽和下載

本地一鍵導入、補齊缺失節點

LLM#

在本地部署大語言模型(LLM)是生成式AI開發中的一項重要步驟,我們可以在不依賴雲端服務的情況下,直接在本地設備上運行強大的語言模型。在這裏以Meta公司最新發布的 Llama 3.1 模型爲例,在本地進行部署和運行。

硬件要求#

首先需要確保電腦滿足以下硬件要求:

  • 顯卡:NVIDIA RTX 3060 或更高

  • 顯存:至少 8 GB

  • 內存:至少 16 GB

  • 硬盤:至少 20 GB 可用空間

安裝 Ollama 客戶端#

爲了在本地部署 Llama 3.1 模型,我們需要安裝 Ollama 客戶端。該客戶端不僅能讓我們下載並運行 Llama 模型,還可以管理與模型相關的數據和文件。

首先,前往 Ollama 官方網站 下載客戶端並安裝。默認安裝目錄爲 C:\Users\你的用戶名\.ollama。在這個目錄下可以找到下載的模型文件和相關數據。

部署 Llama 3.1 模型#

Ollama 客戶端爲我們提供了簡單的命令行方式來安裝和運行大語言模型。在終端中,使用以下命令來安裝 Llama 3.1-8B 模型:

ollama run llama3.1:8b

這個命令會在第一次運行時自動下載所需的模型文件,並將它們存儲在默認目錄中。Llama 3.1-8B 模型需要至少 8GB 的顯存來運行,適合個人開發者或中小型項目。

如果你的計算資源較爲有限,Llama 3.1-8B 通常已經足夠滿足大部分任務需求。如果你需要更高性能或處理更復雜的任務,Ollama 還提供了更大模型(如 70B 和 405B)的下載和運行,但這些模型的硬件要求顯著(真的很顯著,高達450GB顯存需求)增加。

運行與交互#

安裝完成後,通過 Ollama 的終端可以直接與 Llama 3.1 模型進行交互。只需在終端中輸入提示詞,模型便會實時生成文本並進行反饋。對於那些更習慣使用類似 ChatGPT 圖形界面的人,可以通過安裝 GPT4ALL 軟件來獲得一個用戶友好的本地 LLM 啓動器。

然而,對於我們來說,使用終端與模型交互已經足夠簡單有效。

使用在線服務#

非常簡單,直接使用就好了,在此不再贅述。

  • Suno:進入官網,任選社交媒體賬戶登入即可獲得免費額度。在create頁面中輸入需求即可創作。僅適合非大陸及港澳臺地區。

  • cursor:進入官網,下載安裝客戶端並從VS code遷移配置即可開始使用。引導教程涵蓋補全、重寫、整個項目作爲上下文生成。

  • GitHub Copilot:對於教育工作者和學生(大善人GitHub已收錄本校),通過教育郵箱完成教育認證即可獲得免費不限次的copilot使用權。在VS、VS code、Jetbrain系列IDE裏面只需要安裝copilot插件然後登陸一下賬戶即可。

誰用誰知道,反正就是爽

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com