跳到主要內容

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 支援加入核心中,重新開機即可生效,再跑看看會發現速度加快非常多。

留言

這個網誌中的熱門文章

Debian 13 原生 Python 安裝與使用 CodeFormer 修復臉部照片與影片教學

目前人工智慧(AI)已有越來越多的應用,而 CodeFormer 是一種人工智慧數位臉部修復工具,一般可以在其官網上傳照片( https://huggingface.co/spaces/sczhou/CodeFormer ),它會修復後讓你下載,但傳過一次曠日費時。還好它是開源軟體,於是將其安裝到自己的電腦中,便可以批次處理。不過事涉大量運算,有獨顯速度會快些,沒有的就只能用 CPU 硬解。如果原稿臉部夠大張(最好 512×512 像素以上),其還原程度相當不錯,有針對臉部一般修復、精細修復、上色、破碎還原等功能,個人覺得蠻自然傳神的。 因為自己筆電沒有太高檔 GPU,且 Debian 12 時使用 Anaconda3 來處理在 Debian 13 時卻失效,常常說空間不足、安裝 CUDA 相依性錯誤等問題,重灌系統好幾次,於是改變作法,打掉重做,用原生 Python 來執行。 在 Debian 13 中安裝 Nvidia GPU 驅動 若使用 Nvidia GTX 1060 等顯卡,想讓 CodeFormer 利用 GPU 加速運算,需要先安裝 Nvidia 官方驅動與 CUDA 開發環境。 注意!核心要使用 Debian 標準版核心以免編譯失敗。 1. 更新系統並安裝基礎工具 sudo apt update sudo apt upgrade sudo apt install linux-headers-amd64 python3.13-venv sudo apt install -y build-essential dkms 2. 安裝 Nvidia 官方驅動 sudo apt install nvidia-detect nvidia-driver firmware-misc-nonfree sudo reboot (如果失敗,編輯 /etc/apt/sources.list 在套件庫中加入 contrib non-free 如下: deb http://free.nchc.org.tw/debian/ trixie main non-free-firmware contrib non-free )  3. 驗證驅動安裝是否成功 nvidia-smi Debian 13 原生 Python 安裝與 CodeFor...

在 Debian 13 使用本機 Python 安裝 Open-WebUI 與 Ollama AI 聊天模型指南

本人使用的開發主機搭載 NVIDIA 顯卡,GPU 記憶體只有 6GB,屬於中低容量等級。由於顯卡記憶體有限,無法負擔大型 AI 模型的運行,因此本文以較小容量且效能適中的 AI 模型為主,透過 Open-WebUI 與 Ollama 搭配,達成本地 AI 互動平台的實作。整體流程會包括利用 pyenv 管理合適的 Python 版本,安裝 Open-WebUI,並示範如何安裝與管理 Ollama 及多款符合 GPU 規格的聊天室模型。 一、本機 Python 版本管理:使用 Pyenv 安裝 Python 3.11 安裝編譯必須的依賴: sudo apt update sudo apt install -y build-essential curl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev zlib1g-dev libncurses5-dev libncursesw5-dev libgdbm-dev libdb5.3-dev uuid-dev 安裝 pyenv: curl https://pyenv.run | bash 設定 shell 環境(加入 ~/.bashrc 或 ~/.zshrc ): export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" 重新整理 shell,並安裝 Python 3.11: source ~/.bashrc pyenv install 3.11.0 pyenv global 3.11.0 確認 Python 版本: python --version 二、安裝並啟動 Open-WebUI 建立虛擬環境以隔離套件: python -m venv ~/openwebui-venv source ~/openwebui-venv/bin/activate mkdir tmp export TMPDIR=$HOME/tmp 升級 pip 以免安裝過程中遇到問題: pip install --upgrade...