DeepCreamPy & DoujinCI ~ AI去掉圖片馬賽克和海苔條教學

目錄
日本因為法律規定要自主規制的關係,使得AV和R18同人誌漫畫都要有馬賽克,或是長長的黑色海苔,遮住私處,很是礙眼。
隨著AI技術的發展,幾年前出現了閉源的JAVPlayer,專門給AV即時解碼;後來又有了DeepCreamPy這款開源工具,能夠給同人誌解碼。
給女性部位去海苔的效果大概是這樣。越薄的碼效果越好,不然一片黑AI也不知道要怎麼畫。
男性部位通常上的碼較少,所以去的效果更好(誰要看啊)
DeepCreamPy推測是Deep creampie(深深的內射並讓體液流出來)的諧音。八卦是DeepCreamPy 作者筆電弄丟,所以原版程式已從Github刪除,幸好網友有備份。
本文將介紹建置DeepCreamPy的環境,並示範如何解碼,並附上自動化的改進方案。
0. 系統環境 #
DeepCreamPy支援Linux/Windows平台,解碼運算依賴x86架構的CPU。
- 系統:Ubuntu Linux 22.04
- CPU: Intel i5-10210u
- Hent-AI版本:1.6.9
- DeepCreamPy版本:2.2.0
1. 安裝Anaconda環境 #
在Linux系統安裝 Anaconda,方便管理Python版本。
2. 手動標記海苔與去馬賽克 #
點選展開
2.1. 建立conda環境 #
- 建立虛擬環境
conda update -n base -c defaults conda -y
conda config --append channels conda-forge
python -m pip install --upgrade pip
conda create -n deepcreambox python=3.7 -y
- 啟動虛擬環境。每次開啟終端機都要執行此指令。
conda activate deepcreambox
2.2. 安裝Hent-AI #
- 下載 hyenatrash-requirements.txt,再開啟終端機安裝依賴套件:
pip install -r hyenatrash-requirements.txt -f https://download.pytorch.org/whl/torch_stable.html
mim install mmcv-full==1.4.0
下載模型 Model268,解壓縮得到
weights.h5
。下載 Hent-AI,解壓縮,並將
weights.h5
和4x_FatalPixels_340000_G.pth
放到Hent-AI的根目錄。終端機切換至Hent-AI的根目錄,安裝依賴套件:
python setup.py install
在Hent-AI的根目錄新增
input
目錄,這是用於存放圖片原始檔的目錄。測試能否啟動Hent-AI的界面,跑出來後關閉。
python main.py
2.3. 安裝DeepCreamPy #
下載 DCP模型,解壓縮得到
bars
和mosiac
二個目錄。下載 DeepCreamPy的儲存庫:
git clone https://github.com/gguilt/DeepCreamPy
將
bars
和mosiac
目錄移動到DeepCreamPy根目錄下的models
目錄。decensor_input
、ecensor_input_original
、decensor_output
這三個目錄含有範例圖檔,將其刪除。終端機切換至DeepCreamPy的根目錄,試試看能否啟動DeepCreamPy界面。啟動後關閉按CTRL+C中止。
python main.py
2.5. 使用Hent-AI偵測黑海苔位置 #
這裡示範如何將黑海苔去掉。
去碼過程:將圖片丟給Hent-AI偵測黑線,並塗上綠色;偵測失敗你就得手工塗了。再將圖片丟給DeepCreamPy處理。
Hent-AI無法辨認白海苔,黑海苔太多也會辨認失敗。DeepCreamPy對有網點和漸層的圖片效果不佳,顏色會混亂。
將要處理的原始圖檔放到Hent-AI目錄下的
input
目錄,你可以一次放多張進去。開啟Hent-AI界面,點選
Bar
:Input image folder
點選Browse,選取input
目錄。Deepcreampy install folder
則是選取DeepCreamPy的根目錄路徑,之後點選Go。處理好的圖片會自動移動到DeepCreamPy根目錄下的
decensor_input
目錄。
如果Hent-AI辨認海苔失敗,你就得手動繪製了。用GIMP這類修圖軟體開啟原始圖檔,點選鉛筆工具,用RGB(0,255,0)的綠色覆蓋黑色海苔條,標出黑海苔位置。再另存成png圖檔,並放到DeepCreamPy的decensor_input
目錄。
2.6. DeepCrempy去碼 #
DeepCreamPy只接受png圖檔。請先確認DeepCreamPy根目錄下的decensor_input
是否有畫好綠線的圖檔。
將未畫綠線的原始圖檔放到
decensor_input_original
目錄。開啟DeepCreamPy,
Censor Type
點選Bar
,Deconsor Variations
則是會多輸出幾種塗抹結果。按下
Decensor Your Images
開始運算。DeepCreamPy去碼的成品位於decensor_output
目錄。
3. DoujinCI自動標記海苔並去除馬賽克 #
鑑於手動放圖片太麻煩,Gitlab用戶UBC Seagull寫了DeepCreamPy的自動化處理 DoujinCI,利用Gitlab CI整合上節的步驟,將其自動化。僅支援Imgur或Nhentai的連結。
不過DoujinCI要本機跑也是可以的。
- 複製儲存庫
git clone https://gitlab.com/ubcseagull/doujinci.git
cd doujinci
- 建立Python 3.5和Pyhton 3.6的虛擬環境,安裝依賴套件
conda create --prefix ./main python=3.5
conda create --prefix ./decensor python=3.6
conda activate ./main
conda install cffi
pip install -r AI/requirements-cpu.txt
# 開第二個終端機
conda activate ./decensor
pip install -r Py/requirements-cpu.txt
- 於Pyhton 3.5的環境,輸入指令,指定NHentai畫廊ID或Imgur相簿網址,下載圖片,並標記海苔。
python AI/main.py 434220 bar true
- 接著於Pyhton 3.6的環境,開始去碼。
export BARORMOSAIC=bar
python Py/decensor.py
- 去碼圖片位於
doujinci/Py/decensor_output/
。
4. 延伸閱讀 #
Reddit上的 DeepCreamPy & Hent-AI Guide為本文的主要參考來源。
另外,Stable Diffusion的inpaint也可以用來去碼。不過其實這樣等同重新繪製了,應針對那種全塗白的碼。畢竟若作者無法提供無碼版,天知道白色區塊裡面長怎樣,不如讓AI發揮創意。