跳到主要內容

Live Debian System 安裝使用 CodeFormer(使用Anaconda)XXX

目前人工智慧(AI)已有越來越多的應用,而CodeFormer是一種人工智慧數位臉部修復工具,一般可以在其官網上傳照片,它會修復後讓你下載,但傳過一次曠日費時,還好它是開源軟體,於是將其安裝到自己的電腦中,便可以批次處理,不過事涉大量運算,有獨顯速度會快些,沒有的就只能用CPU硬解。

如果原稿臉部夠大張(最好512×512像素以上),其還原程度相當不錯,有針對臉部一般修復、精細修復、上色、破碎還原等,個人覺得蠻自然傳神的。它也可以針對影片做臉部修復,但更耗資源我就不試了,有興趣的可以將你的照片丟到網站上試試看。

CodeFormer專案:

https://github.com/sczhou/CodeFormer

  1. https://repo.anaconda.com/archive/ 下載 anaconda 2024.06-1 版 (挑選 Linux x86_64)**CodeFormer 建議 Python 3.8~3.11,太新的可能會出問題!!
  2. 安裝Anaconda(使用者為emer
    chmod +x Anaconda3-2020.11-Linux-x86_64.sh
    sh ./Anaconda3-2020.11-Linux-x86_64.sh
    [Enter] 觀看版權聲明,[空白鍵]翻頁,按[q]離開
    Do you accept the license terms? [yes|no] -> [yes]
    Anaconda3 will now be installed into this location:/home/emer/anaconda3 -> [Enter]
    Do you wish to update your shell profile to automatically initialize conda? -> [yes]
  3. 關掉終端機再打開終端機。
  4. 建立 CodeFormer 專用環境與環境變數
    conda create -n codeformer python=3.8 -y; conda activate codeformer(CodeFormer 對 3.8–3.10 最穩,此處採 3.8) 
  5. 安裝與 GTX 1060 相容的 PyTorch(CUDA 版)
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --cache-dir=$HOME/tmp
  6. 取得 CodeFormer 原始碼並安裝依賴
    git clone https://github.com/sczhou/CodeFormer; cd CodeFormer
    export TMPDIR=$HOME/tmp
    pip install -r requirements.txt --cache-dir=$HOME/tmp
    python basicsr/setup.py develop
    conda install -c conda-forge dlib
    python scripts/download_pretrained_models.py facelib(失敗)
    python scripts/download_pretrained_models.py CodeFormer(失敗)

使用 CodeFormer:

將一個批次檔(ex: aiphoto)放置於 /usr/local/bin 內容如下:

 #!/usr/bin/env bash
INPUT_DIR="${INPUT_DIR:-$HOME/old}"
OUTPUT_DIR="${OUTPUT_DIR:-$HOME/aiphoto}"
CODEFORMER_DIR="${CODEFORMER_DIR:-$HOME/CodeFormer}"
CONDA_ENV_NAME="${CONDA_ENV_NAME:-codeformer}"

cd "$CODEFORMER_DIR" || { echo "找不到 CodeFormer 目錄:$CODEFORMER_DIR"; exit 1; }

clear
echo "=============================================="
echo "         CodeFormer 批次處理操作介面          "
echo "=============================================="
echo "原始圖片資料夾:$INPUT_DIR"
echo "輸出結果資料夾:$OUTPUT_DIR"
echo

echo "請選擇處理模式:"
echo "  [1] 僅修復"
echo "  [2] 利用 Real-ESRGAN 強化背景區域"
echo "  [3] 以 Real-ESRGAN 進一步提升修復後的人臉細節"
echo "  [4] 彩色化黑白或褪色照片"
echo "  [5] 人臉修補(裁切並對齊的人臉)"
echo "  [6] 修復影片"
echo "  [0] 離開程式"
read -p "請輸入選項數字(0-6): " choice

if [[ "$choice" =~ ^[1-3]$ ]]; then
  read -p "請輸入權重值 (例如 0.7 或 1.0,建議 0.7~1.0): " weight
  if ! [[ "$weight" =~ ^0*(\.([0-9]+))?$|^1(\.0*)?$ ]]; then
    echo "錯誤:權重請輸入介於 0 與 1 之間的數字"
    exit 1
  fi
fi

run_py() { conda run -n "$CONDA_ENV_NAME" python "$@"; }

case $choice in
  0) echo "離開程式。"; exit 0 ;;
  1) echo "執行選項 1:僅使用權重 ${weight} 修復"
     run_py inference_codeformer.py -w "$weight" --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR" ;;
  2) echo "執行選項 2:使用權重 ${weight} 並利用 Real-ESRGAN 強化背景區域"
     run_py inference_codeformer.py -w "$weight" --bg_upsampler realesrgan --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR" ;;
  3) echo "執行選項 3:使用權重 ${weight} 並以 Real-ESRGAN 進一步提升修復後的人臉細節"
     run_py inference_codeformer.py -w "$weight" --face_upsample --bg_upsampler realesrgan --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR" ;;
  4) echo "執行選項 4:彩色化黑白或褪色照片"
     run_py inference_colorization.py --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR" ;;
  5) echo "執行選項 5:人臉修補(裁切並對齊的人臉)"
     run_py inference_inpainting.py --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR" ;;
  6) shopt -s nullglob
     video_files=("$INPUT_DIR"/*.{mp4,avi,mkv,mov})
     shopt -u nullglob
     if [ ${#video_files[@]} -eq 0 ]; then
       echo "錯誤:$INPUT_DIR 目錄中沒有任何影片檔 (mp4, avi, mkv, mov)"
       exit 1
     fi
     echo "執行選項 6:修復影片"
     for video in "${video_files[@]}"; do
       filename=$(basename "$video")
       output_path="$OUTPUT_DIR/$filename"
       echo "處理影片 $video ..."
       run_py inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 1.0 --input_path "$video" --output_path "$output_path"
       if [ $? -eq 0 ]; then
         echo "影片處理完成,輸出 $output_path"
       else
         echo "影片處理錯誤:$video"
       fi
     done ;;
  *) echo "無效選項,請重新執行並選擇有效選項。"; exit 1 ;;
esac

echo
read -p "是否刪除原始資料夾 $INPUT_DIR 的所有檔案? (y/n): " del_choice
if [[ "$del_choice" =~ ^[Yy]$ ]]; then
  rm -rf "$INPUT_DIR"/*
  echo "原始資料已刪除。"
else
  echo "保留原始資料。"
fi

如果有 Nvidia 顯卡,運算速度將會加快許多,方法如下:(以使用 LDS1.x 為例),注意!核心要使用 Debian 標準版核心以免編譯失敗。

sudo apt update
sudo apt upgrade
sudo apt install linux-headers-amd64
sudo apt install nvidia-detect nvidia-driver firmware-misc-nonfree

作業系統會自動將 Nvidia 支援加入核心中,重新開機即可生效,再跑看看會發現速度加快非常多。

留言

這個網誌中的熱門文章

Live Debian System 中安裝使用 AI 對話模型 Gemma3 / Taide / DeepSeek-r1 / Qwen3

隨著 AI 的興起,熱門的 ChatGPT 應用充斥在生活中,一般都要上網才能使用,但如果自己有好一點的設備(尤其是獨立顯示卡),也可以安裝在自己的機器中,成為隨身的幫手。目前有一些對話式AI 開放讓人自己架設安裝甚至訓練,不過訓練需要的資源非常驚人暫不討論,以手上既有的設備,大概只能架設中、小型的模型使用。本文以 Live Debian System 為例,搭配 6G Nvidia 顯示卡,安裝 Google 的 Gemma3 以及台灣自行訓練的 Taide 還有最近討論度很高的 DeepSeek,實做如下:

一個隨身碟搞定!數位家庭歷史

  在這個數位時代,我們的生活充滿了科技,從手中的智慧型手機到家中的電腦,無一不依賴軟體與硬體的協同運作。然而,這兩者的關係並非只是科技上的搭配,更能與我們自身的存在產生有趣的聯繫。 想像一下,我們的身體就如同電腦的硬體,擁有各種功能與構造,但如果沒有軟體來驅動,它們便無法發揮作用。同樣地,靈魂就像軟體,賦予我們思想、情感與目標,使我們不僅僅是一具空殼,而是能夠行動、學習與成長的存在。當靈魂與身體結合時,我們才能真正發揮潛能,影響世界。 這個概念與我在信仰中的理解不謀而合。身為耶穌基督後期聖徒教會的成員,我相信每個人都是天父的孩子,擁有屬於自己的天賦與使命。我們的靈魂與身體相結合,使我們能夠學習、成長,並運用我們的能力來服務他人。 這系列文章的目的,正是要探討如何運用科技來保存我們的數位歷史,同時強調自由軟體的重要性。然而,這不是一本教科書,而只是我 20 多年使用經驗的分享,內容難免有所謬誤,但希望能為讀者提供實用的參考。 現今,我們的回憶大多以數位形式存放——家庭照片、珍貴文件、重要影音資料等,然而,如果沒有適當的方法來管理與保存,這些珍貴的記錄可能會隨著時間流逝而遺失。 許多商業軟體的限制,加上不斷提升的硬體需求,使得許多仍然堪用的電腦因為無法升級作業系統而被淘汰,甚至送進回收場,造成極大的資源浪費。長期以來,商業軟體的壟斷使得 Linux 被邊緣化,再加上 Linux 的分支版本繁多,讓許多人無從選擇或學習。本系列文章的主軸是 Live Debian System,因為 Debian 以其穩定性、安全性著稱,且是許多發行版的基礎,因此成為最適合的選擇。我會選用市面上受歡迎的幾個 Linux 發行版,調整界面並選擇適合的軟體,特別是針對繁體中文初學者,提供最佳的入門方案。 Live Debian System 提供了一種靈活而強大的方式,讓我們能夠透過一個簡單的隨身碟,打造專屬的數位檔案管理系統,確保家庭歷史得以長存。這個系統無需安裝,不會影響現有的電腦環境,讓使用者能夠安心體驗 Linux 的強大功能。 透過這系列文章,我希望帶領讀者從基礎的電腦概念開始,逐步了解如何建構 Live Debian System,並運用它來保存與管理個人與家庭的重要數位記錄。無論你是技術新手,還是對 Linux 系統已有一定了解的使用者,都能從這系列文章中獲得實用的知識...