使用 Tripo 和 Zilliz 建構可搜尋的 AI 3D 素材庫

AI 3D 生成技術正大幅簡化團隊大量創建 3D 素材的流程。透過 Tripo,創作者可以從文字提示或參考圖像生成高品質的 3D 模型,適用於遊戲開發、電子商務視覺化、行銷素材製作、概念設計及內部創意工作流程。

但當生成的素材數量增加時,新的問題便會出現:

如何快速找到正確的 3D 素材?

當團隊只有少數模型時,資料夾名稱和手動瀏覽或許還足夠。但一旦有數百或數千個生成的素材,傳統的檔案管理方式便開始失效。設計師可能會重複生成相似的素材;遊戲團隊可能找不到有用的角色或道具變體;行銷團隊花在搜尋素材上的時間可能比使用它們的時間還多。

這就是可搜尋的 AI 3D 素材庫的價值所在。

在此工作流程中,Tripo 負責生成 3D 素材,而 Zilliz Cloud 則作為多模態向量與元資料的檢索層。它儲存每個渲染圖片的嵌入向量,並將其與類別、風格、顏色、物件類型、用途及原始檔案等實用欄位連結。最終形成一個輕量級的多模態檢索系統,使用者可以透過文字、參考圖像或兩者進行搜尋,並取得匹配的 Tripo 渲染圖片與結構化元資料。

Zilliz 是一家 AI 資料基礎設施公司,也是此工作流程背後開源向量資料庫 Milvus 的創作者。Milvus 專為生產級 AI 應用(如 RAG、AI 代理、多模態搜尋、推薦系統、企業知識庫、語意搜尋及內容去重)而設計。它也是 Linux 基金會 AI 與資料的畢業專案,擁有超過 44,000 個 GitHub 星標與超過 1 億次 Docker 下載,為團隊儲存與檢索非結構化資料的向量嵌入提供了熟悉的基礎。

這對 Tripo 使用者很重要,因為每個 3D 素材不僅僅是一個檔案。每個模型都可以連結到渲染預覽、輸入參考圖像、標題、標籤、類別、顏色、用途、專案 ID 及 URL。Zilliz Cloud 讓這些訊號可以同時被搜尋,使得日益增長的 AI 生成模型庫能夠成為可重複使用的生產級素材系統,而不只是一個存放一次性輸出檔案的資料夾。

為什麼要建構可搜尋的 3D 素材庫

AI 3D 工具在生產速度上表現出色。單一創作者現在可以在極短時間內生成多個角色概念、產品模型、道具、環境元素或風格化素材。

然而,速度帶來了數量,而數量則帶來了管理問題。

一個可搜尋的 3D 素材庫有助於解決以下常見問題:

  • 團隊可以快速找到現有素材,而不是重複生成。
  • 設計師可以根據概念、風格、顏色、物件類型或用途進行搜尋。
  • 開發人員可以更有效地跨專案重複使用 3D 素材。
  • 創意團隊可以建立一個經核准、可重複使用的內部素材庫。
  • 電商或行銷團隊可以按類別和風格組織類似產品的 3D 素材。

這種工作流程將 AI 生成的 3D 檔案從一次性輸出轉變為可重複使用的素材系統。

為什麼 Zilliz Cloud 適合多模態 3D 素材搜尋

Zilliz Cloud 是一個全託管的 Vector Lakebase 平台,由 Milvus 的創作者打造。其核心是一個生產級向量資料庫,可支援 1000 億規模的高吞吐量、低延遲向量搜尋。在此核心基礎上,Zilliz Cloud 結合了多模態資料湖的開放性、可擴展性與經濟性,擴展了向量搜尋的能力,為團隊提供一個用於搜尋、分析與治理非結構化資料的單一平台,以支援生產級 AI。

這非常適合 Tripo 素材庫,因為其資料本質上就是多模態的。一個可搜尋的 3D 目錄可能需要同時處理渲染圖像、參考圖像、文字說明、生成的元資料、團隊擁有權欄位以及專案特定標籤。Zilliz Cloud 透過向量搜尋與元資料檢索將這些訊號連結起來,讓使用者可以根據語義、視覺相似度、結構化篩選條件,或三者組合來找到素材。

Zilliz 在從向量資料庫到 Vector Lakebase為什麼我們建構 Vector Lakebase 中解釋了這一產品的演進。關鍵在於,現代 AI 系統需要的不僅是最近鄰搜尋,還需要一個數據基礎,以支援即時服務、迭代發現、批次分析,以及對快速增長的非結構化資料集的治理。這些需求直接對應到 AI 3D 素材庫,團隊不僅希望檢索到當下最佳的結果,還希望隨著時間推移持續改進目錄。

工作流程概述

此示範使用三種類型的本地資料:

  • CSV 檔案儲存每個 3D 素材的元資料,例如類別、風格、物件類型、顏色、用途、檔案名稱及相關專案資訊。
  • milvus_render_images/ 資料夾儲存 Tripo 生成素材的渲染預覽圖片。這些渲染圖片是主要的檢索目標。
  • milvus_input_images/ 資料夾儲存圖像轉 3D 生成過程中使用的參考圖片。這些主要作為元資料和可選的查詢參考。

簡單來說:此設定允許使用者描述需求、上傳視覺參考,或結合兩者來從素材庫中找到相關素材。

先決條件

開始之前,請確保你已具備以下條件:

  1. Zilliz Cloud 帳戶。Zilliz Cloud 是一個全託管的 Vector Lakebase 平台,由 Milvus 的創作者打造。它結合了生產級向量資料庫與湖原生多模態資料基礎,讓你無需自行操作向量基礎設施即可儲存嵌入向量與結構化元資料。免費方案足夠跟隨本教程。請註冊 Zilliz Cloud,創建一個免費叢集,並取得其 URI 和令牌。
  2. OpenRouter API 金鑰,用於下面使用的 Gemini 多模態嵌入模型。
  3. Python 3.10+,並安裝 Milvus Python SDK(pip install -U pymilvus)。如果你是新手,請參閱 PyMilvus 安裝指南
  4. 一組 Tripo 生成的 3D 素材——包括渲染預覽圖片,以及可選的用於圖像轉 3D 生成的參考圖片。

步驟 1:準備 Tripo 生成的 3D 素材資料

第一步是準備透過 Tripo 生成的資料。

每個素材至少應具備:

  • 一張渲染預覽圖片
  • CSV 中的一行元資料
  • 可選的輸入/參考圖片資訊
  • 類別、風格、用途、物件與顏色欄位(若可用)

例如,一個素材可能包含如下元資料:

欄位範例值
CategoryCharacter
StyleFantasy
Object TypeFemale warrior
ColorBlue, Silver
Use CaseGame asset
File Namewarrior_female_01.webp

這些元資料很重要,因為僅靠向量搜尋有時是不夠的。在真實的素材庫中,使用者通常希望將語意搜尋與篩選條件結合。

例如:

  • 找到「遊戲素材」用途中的「女性角色」。
  • 找到「武器」類別下的「帶藍色寶石的奇幻劍」。
  • 找到特定視覺風格的素材,例如寫實、卡通、科幻或低多邊形。

元資料結構越好,素材庫的實用性就越高。

嵌入圖片的格式限制

渲染圖片與輸入參考圖片以 .webp 格式儲存以節省空間。

然而,Gemini 嵌入模型(gemini-embedding-2-preview)僅可靠支援 PNG 和 JPEG 輸入。WebP 圖片可能導致嵌入失敗,具體取決於 API 後端。

因此,在生成嵌入向量之前,需要進行預處理步驟,將圖片轉換為 PNG 或 JPEG 格式。

步驟 2:在 Zilliz Cloud 中建立集合

在 Zilliz Cloud 中,集合中的每條記錄代表一個 Tripo 生成的 3D 素材。

這就是 Vector Lakebase 模型發揮作用的地方。傳統的向量資料庫很適合即時相似度搜尋。Vector Lakebase 在保留該檢索路徑的同時,還增加了共享的、湖原生的多模態資料基礎,用於批次分析、迭代發現與治理。在此示範中,我們以輕量級方式使用它,但同樣的結構可以隨著更大的 Tripo 素材庫一起成長。

該集合同時儲存結構化元資料與多模態向量。關鍵的向量欄位是 multimodal_vector。在此示範中,向量維度為 3072,並使用 COSINE 作為相似度度量。

由於文字、圖像以及文字加圖像的查詢都被嵌入到相同的向量空間中,系統可以使用一個統一的向量欄位來搜尋所有素材。

以下是簡化的模式設定:

python
from pymilvus import MilvusClient

client = MilvusClient(uri=ZILLIZ_URI, token=ZILLIZ_TOKEN)

schema = client.create_schema(auto_id=False, enable_dynamic_field=False)
schema.add_field("asset_id", datatype=DataType.VARCHAR, max_length=64, is_primary=True)
schema.add_field("project_id", datatype=DataType.VARCHAR, max_length=64)
schema.add_field("operator_id", datatype=DataType.VARCHAR, max_length=64)
schema.add_field("caption", datatype=DataType.VARCHAR, max_length=1024)
schema.add_field("llm_category", datatype=DataType.VARCHAR, max_length=256)
schema.add_field("llm_style", datatype=DataType.VARCHAR, max_length=256)
schema.add_field("llm_object_type", datatype=DataType.VARCHAR, max_length=256)
schema.add_field("llm_color", datatype=DataType.VARCHAR, max_length=256)
schema.add_field("llm_use_case", datatype=DataType.VARCHAR, max_length=256)
schema.add_field("generation_mode", datatype=DataType.VARCHAR, max_length=64)
schema.add_field("render_image_path", datatype=DataType.VARCHAR, max_length=1024)
schema.add_field("input_image_path", datatype=DataType.VARCHAR, max_length=1024)
schema.add_field("multimodal_vector", datatype=DataType.FLOAT_VECTOR, dim=3072)

然後建立向量索引:

python
index_params = client.prepare_index_params()
index_params.add_index(
    field_name="multimodal_vector",
    index_type="AUTOINDEX",
    metric_type="COSINE"
)

定義模式與索引後,執行:

python
client.create_collection(
    collection_name="tripo_asset_library",
    schema=schema,
    index_params=index_params
)

命令執行完成後,你應該能在 Zilliz Cloud 控制台中看到該集合。

點擊集合,你還可以檢視其狀態、模式、已載入的實體及向量欄位配置。

關於索引的說明:此示範使用 AUTOINDEX,它讓 Zilliz Cloud 根據你的資料自動選擇並調整向量索引,無需手動挑選索引類型或參數。COSINE 度量類型與下一步生成的 L2 歸一化嵌入向量相容。由於每條記錄都是託管集合中的一個實體,同樣的設定可以從數百個素材擴展到數百萬個,而無需重新架構。

步驟 3:為渲染圖片生成嵌入向量

接下來,為 Tripo 渲染預覽圖片生成嵌入向量。

在此工作流程中,渲染圖片被轉換為 base64 資料 URL 並發送給嵌入模型。返回的向量經過歸一化處理,以便與 COSINE 相似度搜尋配合使用。

以下是核心邏輯:

python
import requests
import base64

def get_image_embedding(image_path: str) -> list[float]:
    with open(image_path, "rb") as f:
        b64 = base64.b64encode(f.read()).decode("utf-8")
    data_url = f"data:image/png;base64,{b64}"

    response = requests.post(
        "https://openrouter.ai/api/v1/embeddings",
        headers={"Authorization": f"Bearer {OPENROUTER_API_KEY}"},
        json={
            "model": "google/gemini-embedding-2-preview",
            "input": [{"data": data_url, "type": "image"}]
        }
    )
    embedding = response.json()["data"][0]["embedding"]
    norm = sum(x*x for x in embedding) ** 0.5
    return [x / norm for x in embedding]

為了為整個資料集建立嵌入快取,執行:

python
import csv, json

embedding_cache = {}
with open("asset_metadata.csv") as f:
    reader = csv.DictReader(f)
    for row in reader:
        render_path = row["render_image_path"]
        embedding_cache[render_path] = get_image_embedding(render_path)

with open("embedding_cache.json", "w") as f:
    json.dump(embedding_cache, f)

快取步驟很有用,因為嵌入生成可能耗時且依賴 API。與其每次匯入資料時都生成嵌入向量,不如一次性建立快取並在匯入過程中重複使用。

步驟 4:將資料匯入 Zilliz Cloud

生成嵌入快取後,CSV 中的每一行都會轉換為 Zilliz Cloud 中的一個實體。

每個實體包含:

  • 素材 ID
  • 專案 ID
  • 操作者 ID
  • 標題
  • LLM 生成的元資料
  • 生成模式
  • 渲染圖片檔案資訊
  • 輸入圖片檔案資訊
  • 多模態向量

以下是實體轉換函數的簡化版本:

python
def csv_row_to_entity(row: dict, embedding_cache: dict) -> dict:
    render_path = row["render_image_path"]
    return {
        "asset_id": row["asset_id"],
        "project_id": row["project_id"],
        "operator_id": row["operator_id"],
        "caption": row["caption"],
        "llm_category": row.get("category", ""),
        "llm_style": row.get("style", ""),
        "llm_object_type": row.get("object_type", ""),
        "llm_color": row.get("color", ""),
        "llm_use_case": row.get("use_case", ""),
        "generation_mode": row.get("generation_mode", ""),
        "render_image_path": render_path,
        "input_image_path": row.get("input_image_path", ""),
        "multimodal_vector": embedding_cache.get(render_path, [])
    }

然後匯入完整資料集:

python
entities = []
with open("asset_metadata.csv") as f:
    reader = csv.DictReader(f)
    for row in reader:
        entities.append(csv_row_to_entity(row, embedding_cache))

client.insert(collection_name="tripo_asset_library", data=entities)

匯入完成後,打開 Zilliz Cloud 控制台並檢查 Data 標籤。你應該能看到已匯入的素材記錄,包括元資料欄位與向量資訊。

至此,Tripo 生成的 3D 素材不再只是本地檔案,而是向量資料庫中可搜尋的實體。

步驟 5:搜尋 3D 素材庫

搜尋系統支援三種查詢模式:

  1. 文字搜尋——根據語意描述搜尋
  2. 圖像搜尋——根據視覺相似度搜尋
  3. 文字 + 圖像搜尋——結合兩者以獲得更高的檢索精確度

所有三種查詢類型都使用相同的多模態嵌入模型轉換為向量。然後,查詢向量在 Zilliz Cloud 的 multimodal_vector 欄位中進行搜尋。

文字搜尋

當使用者已經知道自己想要什麼時,文字搜尋非常有用。

範例查詢:"一個穿著藍色銀色盔甲的女性角色"

系統嵌入文字查詢,在集合中搜尋,並返回最接近的渲染圖片及其元資料。

這對於希望根據語意意圖而非精確檔案名稱進行搜尋的創意團隊尤其有用。例如,設計師不需要記住檔案是命名為 char_f_warrior_01 還是 f_warrior_blue。他們只需搜尋:"女性戰士藍色盔甲"。這就是檔案歸檔與實際素材檢索系統之間的差異。

圖像搜尋

當使用者有參考圖像並希望找到視覺上相似的 3D 素材時,圖像搜尋非常有用。

例如,遊戲美術師可能會上傳一張風格化盾牌的參考圖像,並在現有素材庫中搜尋類似的 Tripo 生成道具。無需手動瀏覽數百張圖片,系統即可檢索與上傳參考圖像在視覺結構、風格或物件概念上相匹配的素材。

文字 + 圖像搜尋

文字加圖像搜尋是最靈活的選項。它允許使用者結合語意意圖與視覺指導。

例如,使用者可能上傳一張劍的參考圖像,並添加文字查詢:"帶藍色寶石的奇幻劍"。圖像提供視覺參考,而文字則縮小搜尋意圖。這使得檢索比單獨使用任一輸入更加具體。

以下是簡化的搜尋邏輯:

python
def search_assets(query_embedding: list[float], filter_expr: str = "", limit: int = 12):
    return client.search(
        collection_name="tripo_asset_library",
        data=[query_embedding],
        anns_field="multimodal_vector",
        filter=filter_expr,
        limit=limit,
        output_fields=[
            "asset_id", "caption", "llm_category",
            "llm_style", "llm_use_case", "render_image_path"
        ]
    )

返回的結果包含相似度分數與元資料,使得在前端介面中顯示匹配的素材預覽成為可能。

請注意,搜尋不僅限於純向量相似度。由於每個素材也攜帶結構化元資料(類別、風格、用途等),你可以在單一請求中結合語意相似度與元資料條件——例如,搜尋「女性」,但將結果限制為 llm_use_case == "game asset"。這就是帶篩選的搜尋,它將一堆向量轉變為可查詢的素材目錄。如果你之後希望同時匹配多個訊號,Zilliz Cloud 還支援跨每個素材的多個嵌入向量進行多向量混合搜尋。

範例 1:按文字與用途搜尋

在示範中,一個範例查詢使用了文字 "female",搭配用途篩選條件 llm_use_case == "game asset",並設定 limit=12

這會檢索與「女性」語意相關且屬於遊戲素材用途的前 12 個匹配素材。

此類搜尋對於遊戲開發流程非常有用,團隊需要從大型內部素材庫中快速定位角色概念、NPC 設計、風格化頭像或人形素材。

範例 2:按文字與參考圖像搜尋

另一個範例結合了文字查詢與參考圖像。

文字查詢為:"帶有精緻裝飾與發光效果的奇幻風格武器"。查詢還包含一張視覺參考圖像。系統接著為文字與圖像生成一個聯合嵌入向量,在相同的向量欄位中搜尋,並返回最相關的渲染圖片。

當使用者的意圖過於具體,僅靠文字無法表達時,這非常有用。對於視覺素材搜尋,「類似這個,但更像那個」往往是創作者思考的方式。

為什麼這個工作流程很重要

這裡的實際價值不僅僅是圖像搜尋——而是可重複使用的 AI 3D 素材基礎設施。Tripo 負責快速生成;Zilliz Cloud 負責向量儲存、相似度搜尋、元資料檢索以及多模態搜尋背後的資料層。兩者結合,將孤立的 3D 輸出轉變為有組織、可搜尋、可重複使用的素材庫,直接提升了大量創建 3D 內容團隊的生產效率。

由於 Zilliz Cloud 專為生產級 AI 打造,同樣的模式可以從小規模開始,並隨著團隊成長而擴展。遊戲工作室可以定位角色、道具和環境變體;電商團隊可以按類別、顏色或材質組織產品模型;行銷團隊可以重複使用現有視覺素材,而非重新生成;創意運營團隊可以維護一個跨專案的中央可搜尋核准素材庫。

結論

AI 3D 生成現在已經足夠快,以至於創作不再是唯一的瓶頸。下一個挑戰是模型生成後發生的事情——如何儲存、再次找到、治理並重複使用,而不是消失在資料夾中。

這個工作流程連接了 Tripo 和 Zilliz Cloud 來解決這個問題:Tripo 從文字或參考圖像生成高品質素材,而 Zilliz Cloud 則增加了檢索層——渲染圖片、多模態嵌入向量、結構化元資料以及可擴展的向量搜尋。換句話說,Tripo 成為 3D 創作引擎,而 Zilliz Cloud 成為 AI 資料基礎設施,讓這些創作保持可搜尋、可重複使用,並為下一個專案做好準備。

親自試試

AI 3D 生成只是第一步——真正的回報來自於將生成的素材轉變為一個結構化、可搜尋的系統,能夠跨團隊和專案擴展。透過 Tripo,你可以從文字提示或參考圖像生成高品質的 3D 素材。透過 Zilliz Cloud,你可以透過多模態向量搜尋(文字與圖像)來組織和檢索這些素材,並由專為生產級 AI 工作流程設計的託管 Vector Lakebase 提供支援。

分享文章

用 3D 生成萬物

點擊下方,加入數百萬 3D 創作者的行列。體驗超高保真模型生成與一流的 PBR 貼圖。