File size: 3,091 Bytes
cd5aabe
 
407b6c0
cd5aabe
407b6c0
fae1594
 
 
 
6315398
172ad88
fae1594
407b6c0
 
 
 
 
cd5aabe
407b6c0
 
 
 
 
 
 
12a0952
 
 
407b6c0
 
cd5aabe
407b6c0
 
 
 
 
a1be5bb
 
 
cd5aabe
a1be5bb
407b6c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4817187
407b6c0
 
 
 
 
 
 
 
 
 
 
cd5aabe
fae1594
cd5aabe
 
 
83913e1
cd5aabe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29fdc13
 
cd5aabe
b47452e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
FROM python:3.10-slim

# --- 系统与基础路径配置 ---
ENV TZ=Asia/Shanghai \
    HOSTNAME=claw \
    OUTPUT_DIR=/opt/data/output \
    IMAGES_DIR=/opt/data/images \
    MODELS_PATH=/opt/data/models \
    DEEPFACE_HOME=/opt/data/models \
    DEEPFACE_BACKEND_ENGINE=tensorflow \
    TF_USE_LEGACY_KERAS=1 \
    FAISS_INDEX_DIR=/opt/data/faiss \
    CELEBRITY_SOURCE_DIR=/opt/data/chinese_celeb_dataset

# --- 算法逻辑与置信度阈值 ---
ENV GENDER_CONFIDENCE=0.9999 \
    AGE_CONFIDENCE=0.9999 \
    FACE_CONFIDENCE=0.7 \
    CELEBRITY_FIND_THRESHOLD=0.87 \
    FEMALE_AGE_ADJUSTMENT=4 \
    UPSCALE_SIZE=2 \
    DRAW_SCORE=true

# --- AI 模型开关 (已开启 DDColor 与 Anime) ---
ENV ENABLE_GFPGAN=true \
    ENABLE_REALESRGAN=true \
    ENABLE_RVM=true \
    ENABLE_REMBG=true \
    ENABLE_DDCOLOR=true \
    ENABLE_ANIME_STYLE=true \
    ENABLE_CLIP=false \
    ENABLE_WARMUP=true \
    ENABLE_LOGGING=true

# --- 自动初始化设置 (全手动受控加载) ---
ENV AUTO_INIT_GFPGAN=false \
    AUTO_INIT_DDCOLOR=false \
    AUTO_INIT_REALESRGAN=false \
    AUTO_INIT_ANIME_STYLE=false \
    AUTO_INIT_CLIP=false \
    AUTO_INIT_RVM=false \
    AUTO_INIT_REMBG=false

# --- 特定模型配置 ---
ENV REALESRGAN_MODEL=realesr-general-x4v3 \
    RVM_MODEL=resnet50 \
    RVM_LOCAL_REPO=/opt/data/models/RobustVideoMatting \
    RVM_WEIGHTS_PATH=/opt/data/models/torch/hub/checkpoints/rvm_resnet50.pth \
    HUGGINGFACE_SYNC_ENABLED=true

# --- 颜值评分与美化参数 ---
ENV BEAUTY_ADJUST_ENABLED=true \
    BEAUTY_ADJUST_GAMMA=0.8 \
    BEAUTY_ADJUST_MIN=1.0 \
    BEAUTY_ADJUST_MAX=9.0

# --- 数据库配置 (MySQL) ---
ENV MYSQL_PORT=3306

# --- 对象存储配置 (Cloudflare R2 / BOS) ---
ENV BOS_IMAGE_DIR=images \
    BOS_MODELS_PREFIX=models/s3 \
    BOS_CELEBRITY_PREFIX=chinese_celeb_dataset \
    BOS_UPLOAD_ENABLED=true

# --- 维护与清理 ---
ENV CLEANUP_INTERVAL_HOURS=24 \
    CLEANUP_AGE_HOURS=24 \
    BOS_CLEANUP_ENABLED=false

RUN mkdir -p  /opt/data/chinese_celeb_dataset /opt/data/faiss /opt/data/models /opt/data/images /opt/data/output
WORKDIR /app
COPY requirements.txt .
COPY *.py /app/
# COPY facelist-web /app/facelist-web

# 安装必要的系统工具和依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    cmake \
    git \
    wget \
    curl \
    ca-certificates \
    libopenblas-dev \
    liblapack-dev \
    libx11-dev \
    libgtk-3-dev \
    libboost-python-dev \
    libglib2.0-0 \
    libsm6 \
    libxext6 \
    libxrender-dev \
    libgomp1 \
    && rm -rf /var/lib/apt/lists/*

RUN pip install --upgrade pip
# 安装所有依赖 - 现在可以一次性完成
RUN pip install --no-cache-dir -r requirements.txt
# 构建时检查五官分析依赖的 API,避免服务启动后静默降级为统一默认分。
RUN python -c "import mediapipe as mp; assert callable(mp.solutions.face_mesh.FaceMesh)"
EXPOSE 7860
CMD ["uvicorn", "app:app", "--workers", "1", "--loop", "asyncio", "--http", "httptools", "--host", "0.0.0.0", "--port", "7860", "--timeout-keep-alive", "600"]