File size: 4,379 Bytes
1eb0a6e
551c222
 
1eb0a6e
551c222
 
 
 
 
3a5ed88
 
551c222
 
 
 
 
 
 
1eb0a6e
551c222
 
 
 
 
 
 
5ce9a4b
551c222
4c48102
 
 
 
 
551c222
af023a0
551c222
 
 
 
 
1eb0a6e
551c222
 
 
 
 
 
 
 
4c48102
af023a0
3f52be4
 
551c222
 
1eb0a6e
551c222
3a5ed88
52bd75d
 
3a5ed88
 
551c222
 
 
3a5ed88
4c48102
3a5ed88
03bf791
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3a5ed88
 
02f78cf
9f91b0f
 
02f78cf
 
4c48102
3a5ed88
 
 
 
 
 
 
 
 
52bd75d
3a5ed88
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
105
FROM python:3.11-slim

# ------------------------------------------------
# 1. システムパッケージ & jemalloc の導入
# ------------------------------------------------
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        git \
        wget \
        gcc \
        g++ \
        libjemalloc2 && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN useradd -rm -d /home/hf -s /bin/bash -g root -G sudo -u 1001 hf

# ------------------------------------------------
# 2. 基本環境変数 & メモリアロケータ最適化
# ------------------------------------------------
ENV TRANSFORMERS_CACHE=/tmp/hf_cache
ENV HF_HOME=/tmp/hf_cache
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1

ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
ENV MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:100,muzzy_decay_ms:0"

# 💡 復活・最強設定:スレッドを絶対眠らせず、常に最速のレスポンスを維持
ENV OMP_WAIT_POLICY=ACTIVE
ENV KMP_BLOCKTIME=infinite

# oneDNN チューニング
ENV DNNL_DEFAULT_FPMATH_MODE=BF16
ENV ONEDNN_PRIMITIVE_CACHE_CAPACITY=512

WORKDIR /home/hf
USER hf

# ------------------------------------------------
# 3. ComfyUI の展開と、デグレードを起こさない pip インストール
# ------------------------------------------------
RUN git clone https://github.com/comfyanonymous/ComfyUI
WORKDIR /home/hf/ComfyUI

ENV VIRTUAL_ENV=/home/hf/ComfyUI/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

# 💡 成功パターン:CPU専用版PyTorchのクリーンインストール
RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu && \
    pip install --no-cache-dir -r requirements.txt

# ------------------------------------------------
# 4. モデルのダウンロード
# ------------------------------------------------
RUN wget -nv -c https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/diffusion_models/anima-base-v1.0.safetensors -P ./models/diffusion_models/ && \
    wget -nv -c https://huggingface.co/Rikunarita-ORG/REED_Anima_XXX_v1.1/resolve/main/reedAnimaXXX_v11.safetensors -P ./models/diffusion_models/ && \
    wget -nv -c https://huggingface.co/oron1208/OOO_Anima/resolve/main/model/OOO_Anima_v10.safetensors -P ./models/diffusion_models/ && \
    wget -nv -c https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/text_encoders/qwen_3_06b_base.safetensors -P ./models/text_encoders/ && \
    wget -nv -c https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/vae/qwen_image_vae.safetensors -P ./models/vae/

RUN mkdir temp && chmod 777 temp

# ------------------------------------------------
# 5. 起動コマンド(動的コア検知 + スレッド緊縛 + 常時100%駆動)
# ------------------------------------------------
CMD quota_v2="/sys/fs/cgroup/cpu.max"; \
    quota_v1="/sys/fs/cgroup/cpu/cpu.cfs_quota_us"; \
    period_v1="/sys/fs/cgroup/cpu/cpu.cfs_period_us"; \
    COMPUTE_CORES=""; \
    if [ -f "$quota_v2" ]; then \
        read -r q p < "$quota_v2"; \
        if [ "$q" != "max" ] && [ "$p" -gt 0 ]; then \
            COMPUTE_CORES=$(( (q + p - 1) / p )); \
        fi; \
    elif [ -f "$quota_v1" ] && [ -f "$period_v1" ]; then \
        q=$(cat "$quota_v1"); p=$(cat "$period_v1"); \
        if [ "$q" -gt 0 ] && [ "$p" -gt 0 ]; then \
            COMPUTE_CORES=$(( (q + p - 1) / p )); \
        fi; \
    fi; \
    if [ -z "$COMPUTE_CORES" ] || [ "$COMPUTE_CORES" -le 0 ]; then \
        COMPUTE_CORES=$(nproc); \
    fi; \
    export OMP_NUM_THREADS=$COMPUTE_CORES && \
    export MKL_NUM_THREADS=$COMPUTE_CORES && \
    export TORCH_NUM_THREADS=$COMPUTE_CORES && \
    export OMP_PROC_BIND=CLOSE && \
    export OMP_PLACES=CORES && \
    export OMP_SCHEDULE=STATIC && \
    export KMP_AFFINITY=granularity=fine,compact,1,0 && \
    echo "=== 🚀 Ultimate 100% CPU Threading Engaged: $COMPUTE_CORES Cores ===" && \
    python main.py \
        --cpu \
        --listen 0.0.0.0 \
        --port 7860 \
        --output-directory ./temp \
        --bf16-unet \
        --bf16-vae \
        --bf16-text-enc \
        --use-pytorch-cross-attention \
        --mmap-torch-files \
        --preview-method none