Spaces:
Sleeping
Sleeping
Update Dockerfile
Browse files- Dockerfile +54 -53
Dockerfile
CHANGED
|
@@ -1,14 +1,14 @@
|
|
| 1 |
-
FROM
|
| 2 |
|
| 3 |
# ------------------------------------------------
|
| 4 |
-
#
|
| 5 |
# ------------------------------------------------
|
| 6 |
RUN apt-get update && \
|
| 7 |
apt-get install -y --no-install-recommends \
|
| 8 |
git \
|
| 9 |
wget \
|
| 10 |
-
|
| 11 |
-
|
| 12 |
libjemalloc2 && \
|
| 13 |
apt-get clean && \
|
| 14 |
rm -rf /var/lib/apt/lists/*
|
|
@@ -23,43 +23,27 @@ ENV HF_HOME=/tmp/hf_cache
|
|
| 23 |
ENV PYTHONUNBUFFERED=1
|
| 24 |
ENV PYTHONDONTWRITEBYTECODE=1
|
| 25 |
|
| 26 |
-
#
|
| 27 |
-
# メモリアロケータ設定の強化
|
| 28 |
-
# ------------------------------------------------
|
| 29 |
ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
|
| 30 |
-
# 💡 jemallocのバックグラウンドスレッドを有効化し、断片化とメモリ肥大化を徹底抑制
|
| 31 |
ENV MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:20000,muzzy_decay_ms:20000"
|
| 32 |
|
| 33 |
# ------------------------------------------------
|
| 34 |
-
# スレッド
|
| 35 |
# ------------------------------------------------
|
| 36 |
-
#
|
| 37 |
-
|
| 38 |
-
ENV
|
| 39 |
-
ENV
|
| 40 |
|
| 41 |
-
#
|
| 42 |
-
# Intel OpenMP チューニング (🔥 常時100%全力スピンモード)
|
| 43 |
-
# ------------------------------------------------
|
| 44 |
-
# 物理2コアに綺麗にバインド
|
| 45 |
-
ENV KMP_AFFINITY=granularity=fine,compact
|
| 46 |
-
|
| 47 |
-
# 💡 スレッドを絶対に休ませないための2つの魔法
|
| 48 |
-
ENV OMP_WAIT_POLICY=ACTIVE
|
| 49 |
-
ENV KMP_BLOCKTIME=infinite
|
| 50 |
-
|
| 51 |
-
# ------------------------------------------------
|
| 52 |
-
# oneDNN チューニング
|
| 53 |
-
# ------------------------------------------------
|
| 54 |
ENV DNNL_DEFAULT_FPMATH_MODE=BF16
|
| 55 |
ENV ONEDNN_PRIMITIVE_CACHE_CAPACITY=512
|
| 56 |
|
| 57 |
WORKDIR /home/hf
|
| 58 |
-
|
| 59 |
USER hf
|
| 60 |
|
| 61 |
# ------------------------------------------------
|
| 62 |
-
# ComfyUI
|
| 63 |
# ------------------------------------------------
|
| 64 |
RUN git clone https://github.com/comfyanonymous/ComfyUI
|
| 65 |
WORKDIR /home/hf/ComfyUI
|
|
@@ -68,36 +52,53 @@ ENV VIRTUAL_ENV=/home/hf/ComfyUI/venv
|
|
| 68 |
RUN python3 -m venv $VIRTUAL_ENV
|
| 69 |
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
| 70 |
|
| 71 |
-
# 💡
|
|
|
|
| 72 |
RUN pip install --no-cache-dir --upgrade pip && \
|
| 73 |
-
pip install --no-cache-dir --
|
|
|
|
| 74 |
pip install --no-cache-dir intel-extension-for-pytorch
|
| 75 |
|
| 76 |
# ------------------------------------------------
|
| 77 |
-
#
|
| 78 |
# ------------------------------------------------
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/
|
| 82 |
-
-P ./models/diffusion_models/
|
| 83 |
-
|
| 84 |
-
RUN wget -nv -c \
|
| 85 |
-
https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/text_encoders/qwen_3_06b_base.safetensors \
|
| 86 |
-
-P ./models/text_encoders/
|
| 87 |
-
|
| 88 |
-
RUN wget -nv -c \
|
| 89 |
-
https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/vae/qwen_image_vae.safetensors \
|
| 90 |
-
-P ./models/vae/
|
| 91 |
|
| 92 |
RUN mkdir temp && chmod 777 temp
|
| 93 |
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.10-slim
|
| 2 |
|
| 3 |
# ------------------------------------------------
|
| 4 |
+
# システムパッケージ & jemalloc の導入
|
| 5 |
# ------------------------------------------------
|
| 6 |
RUN apt-get update && \
|
| 7 |
apt-get install -y --no-install-recommends \
|
| 8 |
git \
|
| 9 |
wget \
|
| 10 |
+
gcc \
|
| 11 |
+
g++ \
|
| 12 |
libjemalloc2 && \
|
| 13 |
apt-get clean && \
|
| 14 |
rm -rf /var/lib/apt/lists/*
|
|
|
|
| 23 |
ENV PYTHONUNBUFFERED=1
|
| 24 |
ENV PYTHONDONTWRITEBYTECODE=1
|
| 25 |
|
| 26 |
+
# 💡 バグ修正:構文エラーを直し、jemallocによるメモリ断片化抑制を確実に有効化
|
|
|
|
|
|
|
| 27 |
ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
|
|
|
|
| 28 |
ENV MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:20000,muzzy_decay_ms:20000"
|
| 29 |
|
| 30 |
# ------------------------------------------------
|
| 31 |
+
# OpenMP / スレッドチューニング(コンテナ環境向け最適化)
|
| 32 |
# ------------------------------------------------
|
| 33 |
+
# 💡 仮想化(vCPU)コンテナ環境の鉄則である「PASSIVE」に変更。
|
| 34 |
+
# 無駄なスレッドのスピン(CPUの奪い合い)を排除し、処理効率を劇的に向上させます。
|
| 35 |
+
ENV OMP_WAIT_POLICY=PASSIVE
|
| 36 |
+
ENV KMP_BLOCKTIME=0
|
| 37 |
|
| 38 |
+
# oneDNN チューニング(BF16高速化を有効化)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
ENV DNNL_DEFAULT_FPMATH_MODE=BF16
|
| 40 |
ENV ONEDNN_PRIMITIVE_CACHE_CAPACITY=512
|
| 41 |
|
| 42 |
WORKDIR /home/hf
|
|
|
|
| 43 |
USER hf
|
| 44 |
|
| 45 |
# ------------------------------------------------
|
| 46 |
+
# ComfyUI のセットアップ
|
| 47 |
# ------------------------------------------------
|
| 48 |
RUN git clone https://github.com/comfyanonymous/ComfyUI
|
| 49 |
WORKDIR /home/hf/ComfyUI
|
|
|
|
| 52 |
RUN python3 -m venv $VIRTUAL_ENV
|
| 53 |
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
| 54 |
|
| 55 |
+
# 💡 変更:CPU専用版のPyTorchを明示的にインストール。
|
| 56 |
+
# これにより、Intel CPUのoneDNN(高速化命令)を直接叩ける最適なバイナリが導入されます。
|
| 57 |
RUN pip install --no-cache-dir --upgrade pip && \
|
| 58 |
+
pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu && \
|
| 59 |
+
pip install --no-cache-dir -r requirements.txt && \
|
| 60 |
pip install --no-cache-dir intel-extension-for-pytorch
|
| 61 |
|
| 62 |
# ------------------------------------------------
|
| 63 |
+
# モデルのダウンロード(高速化のためレイヤーを統合)
|
| 64 |
# ------------------------------------------------
|
| 65 |
+
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/ && \
|
| 66 |
+
wget -nv -c https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/text_encoders/qwen_3_06b_base.safetensors -P ./models/text_encoders/ && \
|
| 67 |
+
wget -nv -c https://huggingface.co/circlestone-labs/Anima/resolve/main/split_files/vae/qwen_image_vae.safetensors -P ./models/vae/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
RUN mkdir temp && chmod 777 temp
|
| 70 |
|
| 71 |
+
# ------------------------------------------------
|
| 72 |
+
# 5. 起動コマンド(cgroupsによる割り当てコア数の厳密な自動検知)
|
| 73 |
+
# ------------------------------------------------
|
| 74 |
+
# 💡 誤検知防止: ホストの物理コア数ではなく、cgroups (v1/v2) のリソース制限から
|
| 75 |
+
# コンテナに真に割り当てられている実効コア数(Quota / Period)を動的に算出します。
|
| 76 |
+
CMD export COMPUTE_CORES=$(python3 -c " \
|
| 77 |
+
import os, math; \
|
| 78 |
+
q_v2='/sys/fs/cgroup/cpu.max'; \
|
| 79 |
+
q_v1='/sys/fs/cgroup/cpu/cpu.cfs_quota_us'; \
|
| 80 |
+
p_v1='/sys/fs/cgroup/cpu/cpu.cfs_period_us'; \
|
| 81 |
+
limit=0; \
|
| 82 |
+
if os.path.exists(q_v2): \
|
| 83 |
+
v=open(q_v2).read().split(); \
|
| 84 |
+
if len(v)==2 and v[0]!='max': limit=math.ceil(float(v[0])/float(v[1])); \
|
| 85 |
+
elif os.path.exists(q_v1) and os.path.exists(p_v1): \
|
| 86 |
+
q=float(open(q_v1).read()); p=float(open(p_v1).read()); \
|
| 87 |
+
if q>0 and p>0: limit=math.ceil(q/p); \
|
| 88 |
+
if limit<=0: \
|
| 89 |
+
try: limit=len(os.sched_getaffinity(0)) \
|
| 90 |
+
except: limit=os.cpu_count() or 1; \
|
| 91 |
+
print(max(1, limit))") && \
|
| 92 |
+
export OMP_NUM_THREADS=$COMPUTE_CORES && \
|
| 93 |
+
export MKL_NUM_THREADS=$COMPUTE_CORES && \
|
| 94 |
+
echo "=== Detected Allocated CPU Cores: $COMPUTE_CORES ===" && \
|
| 95 |
+
python main.py \
|
| 96 |
+
--cpu \
|
| 97 |
+
--listen 0.0.0.0 \
|
| 98 |
+
--port 7860 \
|
| 99 |
+
--output-directory ./temp \
|
| 100 |
+
--bf16-unet \
|
| 101 |
+
--bf16-vae \
|
| 102 |
+
--bf16-text-enc \
|
| 103 |
+
--use-pytorch-cross-attention \
|
| 104 |
+
--preview-method none
|