iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
Security

從1到2的召喚羊駝補破網之旅系列 第 7

Day 7 :副本「不違反不能兼職的事」

  • 分享至 

  • xImage
  •  

1️⃣ 需求拆解

  1. 輸入:圖片(JPEG / PNG)
  2. 處理:視覺分析 + 文字生成
  3. 輸出
    • 攝影角度調整建議
    • RAW / Photoshop 等常用修圖參數(曝光、白平衡、飽和度、對比度、色調、曲線 …)
    • 針對社群平台(Instagram / Facebook / TikTok 等)的一段吸睛文案

重點:需要一個同時具備「Vision + LLM」功能的模型,並且可在本地或私有雲上安全執行(符合 Dify‑Private‑AI 或自託
管方案)。


2️⃣ Ollama 可用的 Vision‑LLM 模型

模型 參數 主要特點 推薦理由
llama3.1‑8b‑vision 8B 內建 Vision,支援圖像尺寸 up to 1024×1024,回答語句自然流暢 兼容性最高、成本低、性能優秀
mixtral‑8x7b‑vision 47B 多模態 8‑way mixture,對細節、光影理解更好 如需更高精度可選,佔用資源較大
gemma‑2‑vision‑9b 9B Google 開源,支援 2048×2048 大圖 需要高解析度分析時可選
mistral‑vision‑7b 7B 速度快、內存占用低 若硬體受限可選

建議:先從 llama3.1‑8b‑vision 開始。若後期發現對光影、顏色校正的理解仍有空間,可再試
mixtral‑8x7b‑visiongemma‑2‑vision‑9b


3️⃣ 如何在 Dify + Ollama 搭建流程

前提:你已經在本地 / 私有雲部署了 Ollama 並 pull 了上述模型;Dify 能夠自定義 LLM 來源(自建 API)。

3.1 Ollama 部署(示例命令)

# 下載並啟動 Ollama
curl -fsSL https://ollama.ai/install.sh | sh

# 拉取模型
ollama pull llama3.1-8b-vision   # 或 mixtral-8x7b-vision 等

3.2 Dify 配置

  1. 新增「LLM 來源」

    • 類型:Custom (API)
    • API URLhttp://<OLLAMA_HOST>:11434/api/chat
    • HeadersContent-Type: application/json
    • Body
      {
         "model": "<MODEL_NAME>",      // e.g. "llama3.1-8b-vision"
         "messages": {{messages}},
         "stream": false,
         "format": "json"
      }
      
  2. 新增「資料流」

    • 輸入Image(File)
    • 輸出Text(建議)
    • 連接「LLM 來源」並設置 Prompt(見 3.3)。
  3. Prompt 設計

    你是一位專業的攝影師兼社群媒體顧問。請閱讀以下圖片並給出三類建議:

    1. 攝影角度(如何調整鏡頭位置、構圖等)
    2. 修圖參數(曝光、白平衡、飽和度、對比度、曲線、細節等,並以易懂的「X=…」格式列舉)
    3. 社群文案(針對 Instagram 或 TikTok,字數 150-200,包含關鍵話題標籤)

    在 Dify 中,<IMAGE> 會自動轉成 base64 並放到 messages 中的 content
    如果你想手動控制格式,可改為:

    [
      {"role":"system","content":"You are a professional photographer..."},
      {"role":"user","content":"<IMAGE>"},
      {"role":"assistant","content":"..."}
    ]
    

3.3 測試與驗證

  1. 上傳一張你常用的產品/人像/風景照片。
  2. 點擊「執行」 → 觀察輸出。
  3. 若建議不夠細節,嘗試:
    • 在 Prompt 中加入「請詳細說明光影來源」
    • parameters 裡把 temperature 調低 0.2 或上升 0.8 看效果。
  4. 若模型回應時間過長(>10s),可以考慮改用 mistral‑vision‑7b 或在 Ollama 端加上 --num-gpus 參數使用 GPU。

4️⃣ 常見問題 & 優化技巧

問題 解決方案 提示
模型不識別圖片 確保 messages 裡的 content 已經是 base64 且 typeimage Ollama 目前只能解析image_urlimage
建議太笼统 在 Prompt 前加「請使用專業術語並具體化」 如:請用 "ISO=200, Aperture=1.8" 等格式回答
回答中包含模型名稱或指令 system 設定「請勿在回答中提及模型名稱」 例如:不要說「我使用了llama3.1-8b-vision」
社群文案語氣不符 在 Prompt 指明「用輕鬆、有趣的語氣」 例如:請使用口語化、年輕化的文字
性能瓶頸 - 在 Ollama 啟動時使用 --model-path 指定本地權重檔。- 若可用 GPU,使用 --ngpu 1 以提高速度。 也可以考慮把模型切分成「vision」+「LLM」兩階段,先用 Vision 對圖像做特徵抽取,然後再交給較小 LLM。

🌳 校園氛圍系

  • 「腳踏車不只是交通工具,它串起了台大與公館的生活軌跡。」
  • 「一排空空的車樁,像是等著下一場日常的騎行。」

🚲 城市日常系

  • 「在大學城,腳踏車就是最簡單的流動方式。」
  • 「有時候最有故事的,不是滿滿的車,而是這樣的空位。」

📸 藝術視角系

  • 「留白也是一種風景。」
  • 「空的樁位,映照著日子裡的暫停鍵。」

📝 系列企劃串接

你可以把 Threads 的貼文做成一個系列:

  1. 老腳踏車與歲月(鏽蝕、斑駁的車身)
  2. 日常腳踏車(校園裡學生停放的普通單車)
  3. 共享單車與城市(Ubike 樁位、借還車的場景)
  4. 空白與等待(像這張空樁的照片,製造故事感)
  5. 奔馳與自由(在椰林大道或校園道路上的騎乘)

上一篇
Day 6 :鐵人賽第一個周末來打副本
系列文
從1到2的召喚羊駝補破網之旅7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言