誰說 NAS 只能存片?把衣櫃搬進 NAS,順手讓 AI 當起了穿搭助理

穿搭選擇困難症,我個人感覺人人應該都有一些。

如果你的衣服越來越多、不好管理、每天都不知道穿什麼,可以看看本期這個項目,能否解決你的困擾。

在部署使用過程中碰到問題,請看文末注意事項,應該能解決大部分問題。

項目介紹

完整項目名:leoz9/AIWardrobe,可於GitHub搜索。

AIWardrobe 是一個開源的 AI 智能衣櫃項目,主要功能包括衣物錄入、衣物圖片上傳、AI 識別衣物屬性、衣櫃管理,以及根據天氣和用戶目標生成穿搭推薦。

項目特徵

  • 智能上傳:上傳衣服照片後,使用 rembg 自動去背景,並通過視覺模型識別類別、顏色和風格

  • 天氣穿搭:集成 Open-Meteo 免費全球天氣接口,根據實時天氣生成更合適的穿搭建議

  • 虛擬衣櫃:以結構化方式瀏覽、搜索和管理所有衣物

  • AI 推薦:支持 Gemini 和 OpenAI 風格接口,用於生成個性化穿搭方案

  • 響應式界面:基於 Tailwind CSS,適配桌面、平板和手機

部署流程

以威聯通NAS爲例,通過Docker Compose的方式進行部署。

部署代碼如下:

services:

   aiwardrobe:

      image: ghcr.io/leoz9/aiwardrobe:latest

      container_name: ai_wardrobe

      restart: unless-stopped

      ports:

         - "8000:8000" # 建議先別改

      environment:

         DB_FILE_PATH: /app/backend/data/wardrobe.db

         # Gemini 可選。如果不用 Gemini,可以先留空。

         GEMINI_API_KEY: ""

         # 和風天氣 API。沒有的話可以先留空,但天氣相關功能可能不可用。 

         QWEATHER_API_KEY: ""

         QWEATHER_API_HOST: devapi.qweather.com

      volumes:

         - /share/Container/aiwardrobe/backend/uploads:/app/backend/uploads # 衣物圖片目錄

         - /share/Container/aiwardrobe/backend/data:/app/backend/data # 數據庫目錄

打開威聯通的Container Station,創建新的應用程序。

使用一覽

部署完畢,瀏覽器輸入NAS_IP:8000即可訪問服務。顯而易見,作者多次更新後,項目更適合通過移動端來使用。

點擊右上角的設置。配置AI相關,模型名稱一定要選擇支持圖片輸入的模型。這裏再次強調,普通文本模型不行,只支持文本的 OAI-compatible 接口也不行。AIWardrobe 識別衣物圖片時需要發送圖片內容。

下方的摳圖,默認配置是第二個,但是並沒有可用額度。直接選擇本地離線,這個地方其實也跟上面的AI配置掛鉤。

配置完畢後,便可選擇服飾上傳。支持多個一次性導入,如果你想細化每一件的標籤,那我建議還是一張張上傳!

找了部分網圖。

上傳後會自動摳圖命名和打標籤分類,效果還是挺好的。

可以查看隨機穿搭。

首頁這邊會顯示一些大概信息。

關於AI推薦推薦穿搭,輸入你的目標場景,AI便會根據天氣、衣服、場景、運勢,分析推薦給你合適的搭配

說的頭頭是道,哈哈~推薦分析結果如下。

注意問題

這其實也是我自己碰到的問題,圖片問題上文已順帶說明,這裏再補充倆。

端口相關

端口建議直接使用 8000:8000,不要隨便改成8008:8000之類。

如果實在要改,可以git clone項目文件到本地,修改這個文件:frontend/src/utils/api.js。

把:

export const API_ORIGIN = `http://${window.location.hostname}:8000`

改成:

export const API_ORIGIN = window.location.origin

改完保存後,自己構建鏡像和部署。

無法生成穿搭推薦

頁面可以正常打開,天氣和衣櫃數據也能加載,但點擊「生成今日穿搭推薦」後沒有結果。

查看日誌後發現,後端推薦接口返回了 500 錯誤,核心報錯是:NameError: name 'build_color_tokens' is not defined。這應該是隻有調用,沒有函數定義,就可以臨時打一個補丁。

SSH 連接NAS執行下面指令,重啓容器即可(用AI排版),大概格式如下面圖片:

docker exec -i ai_wardrobe python - <<'PY' from pathlib import Path path = Path("/app/backend/services/recommendation.py") text = path.read_text(encoding="utf-8") backup = Path("/app/backend/services/recommendation.py.bak") if not backup.exists(): backup.write_text(text, encoding="utf-8") patch = r''' COLOR_ALIASES = { "黑": {"黑", "黑色", "black", "dark"}, "白": {"白", "白色", "white", "ivory", "米白"}, "灰": {"灰", "灰色", "gray", "grey"}, "藍": {"藍", "藍色", "blue", "navy", "藏青", "牛仔"}, "紅": {"紅", "紅色", "red", "wine", "酒紅"}, "粉": {"粉", "粉色", "pink"}, "紫": {"紫", "紫色", "purple", "violet"}, "綠": {"綠", "綠色", "green", "olive", "軍綠"}, "黃": {"黃", "黃色", "yellow"}, "橙": {"橙", "橙色", "orange"}, "棕": {"棕", "棕色", "brown", "咖啡", "卡其", "khaki"}, "米": {"米", "米色", "beige", "cream"}, "金": {"金", "金色", "gold"}, "銀": {"銀", "銀色", "silver"}, } ACCESSORY_KEYWORDS = { "帽", "帽子", "圍巾", "手套", "腰帶", "皮帶", "包", "揹包", "項鍊", "手鍊", "耳環", "耳飾", "戒指", "手錶", "眼鏡", "墨鏡", "accessory", "hat", "scarf", "belt", "bag", "watch", "necklace", "bracelet", "ring", "glasses", "sunglasses" } def build_color_tokens(lucky_color: str) -> set[str]: raw = (lucky_color or "").strip().lower() if not raw: return set() tokens = {raw} for canonical, aliases in COLOR_ALIASES.items(): alias_set = {str(alias).strip().lower() for alias in aliases} if raw in alias_set or canonical in raw or any(alias in raw for alias in alias_set): tokens.update(alias_set) tokens.add(canonical) return {token for token in tokens if token} ''' if "def build_color_tokens" not in text: marker = "def score_item(" if marker not in text: raise SystemExit("沒有找到 def score_item,未修改文件") text = text.replace(marker, patch + "\n" + marker, 1) if "ACCESSORY_KEYWORDS" not in text: marker = "def extract_wardrobe_accessories(" if marker in text: text = text.replace(marker, "ACCESSORY_KEYWORDS = set()\n\n" + marker, 1) path.write_text(text, encoding="utf-8") print("patched") PY

最後

AI 越來越強,希望能在社區看到越來越多的的AI開發的實用項目!

感謝觀看,本文完。

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

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