跳到主要內容

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 驅動與 CUDA

若使用 Nvidia GTX 1060 等顯卡,想讓 CodeFormer 利用 GPU 加速運算,需要先安裝 Nvidia 官方驅動與 CUDA 開發環境。注意!核心要使用 Debian 標準版核心以免編譯失敗。

1. 更新系統並安裝基礎工具

sudo apt update
sudo apt upgrade
sudo apt install linux-headers-amd64

sudo apt install -y build-essential dkms

2. 安裝 Nvidia 官方驅動

sudo apt install nvidia-detect nvidia-driver firmware-misc-nonfree
sudo reboot

3. 驗證驅動安裝是否成功

nvidia-smi

4. 安裝 CUDA Toolkit(實做時沒做)

建議前往 NVIDIA 官網下載適用於 GTX 1060 的 CUDA Toolkit(例如 11.8),依官方指示安裝(通常為 .run 安裝包),並設定環境變數:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

將上述加入 ~/.bashrc 方便永久生效。

5. 安裝 cuDNN(實做時沒做)

至 NVIDIA 官網下載對應 CUDA 版本的 cuDNN,解壓後手動複製 include 與 lib 文件至 /usr/local/cuda

6. 安裝對應的 CUDA 支援版 PyTorch

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

7. 測試 CUDA 可用(實做時沒做)

import torch
print(torch.cuda.is_available())  # 若印出 True 則 CUDA 可用

Debian 13 原生 Python 安裝與 CodeFormer 執行流程

Step 1: 安裝系統依賴

sudo apt install -y git python3-pip python3-venv build-essential cmake \
libgl1 libglib2.0-0 libffi-dev libbz2-dev libreadline-dev libsqlite3-dev \
libncurses5-dev libgdbm-dev liblzma-dev tk-dev libssl-dev uuid-dev

Step 2: 安裝 pyenv 管理 Python

# 安裝pyenv依賴
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev libncurses5-dev xz-utils tk-dev libffi-dev liblzma-dev

# 安裝 pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc
exec "$SHELL"

# 使用 pyenv 安裝 Python 3.10.9
pyenv install 3.10.9
pyenv global 3.10.9

# 建立虛擬環境並啟用
python -m venv ~/codeformer_env
source ~/codeformer_env/bin/activate

# 安裝Pytorch
使用GPU(配合Nvidia 1060挑選適合的版本)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --cache-dir=$HOME/tmp
或是使用CPU
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --cache-dir=$HOME/tmp

Step 3: 下載 CodeFormer 並安裝依賴

git clone https://github.com/sczhou/CodeFormer.git ~/CodeFormer
cd ~/CodeFormer
export TMPDIR=$HOME/tmp pip install -r requirements.txt --cache-dir=
$HOME/tmp python basicsr/setup.py develop pip install dlib ffmpeg-python --cache-dir=$HOME/tmp python scripts/download_pretrained_models.py facelib python scripts/download_pretrained_models.py CodeFormer

Step 4: 使用批次處理腳本

將以下腳本存成 /usr/local/bin/aiphoto,調整裡面路徑符合個人環境:

#!/bin/bash

INPUT_DIR="$HOME/old"
OUTPUT_DIR="$HOME/aiphoto"

mkdir -p "$OUTPUT_DIR"

cd "$HOME/CodeFormer"
source "$HOME/codeformer_env/bin/activate"

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 之間的數字"
deactivate
exit 1
fi
fi

case $choice in
0)
echo "離開程式。"
deactivate
exit 0
;;
1)
echo "執行選項 1:僅使用權重 ${weight} 修復"
python inference_codeformer.py -w "$weight" --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR"
;;
2)
echo "執行選項 2:使用權重 ${weight} 並利用 Real-ESRGAN 強化背景區域"
python inference_codeformer.py -w "$weight" --bg_upsampler realesrgan --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR"
;;
3)
echo "執行選項 3:使用權重 ${weight} 並以 Real-ESRGAN 進一步提升修復後的人臉細節"
python inference_codeformer.py -w "$weight" --face_upsample --bg_upsampler realesrgan --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR"
;;
4)
echo "執行選項 4:彩色化黑白或褪色照片"
python inference_colorization.py --input_path "$INPUT_DIR" --output_path "$OUTPUT_DIR"
;;
5)
echo "執行選項 5:人臉修補(裁切並對齊的人臉)"
python 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)"
deactivate
exit 1
fi

echo "執行選項 6:修復影片"

for video in "${video_files[@]}"; do
filename=$(basename "$video")
output_path="$OUTPUT_DIR/$filename"
echo "處理影片 $video ..."
python 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 "無效選項,請重新執行並選擇有效選項。"
deactivate
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

deactivate

Step 5: 執行腳本

sudo chmod +x /usr/local/bin/aiphoto
要處理時將照片、影片放入 old 目錄,並執行 aiphoto 即可。 

留言

這個網誌中的熱門文章

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

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

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

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

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

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