File size: 6,758 Bytes
fb56537
802ea4a
b1a8506
802ea4a
fb56537
 
802ea4a
fb56537
 
 
802ea4a
fb56537
802ea4a
8413983
802ea4a
9b2c1db
fb56537
1091009
802ea4a
fb56537
e0fce16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb56537
802ea4a
fb56537
 
 
 
802ea4a
fb56537
 
 
802ea4a
fb56537
802ea4a
fb56537
802ea4a
fb56537
802ea4a
fb56537
802ea4a
fb56537
802ea4a
fb56537
 
802ea4a
fb56537
802ea4a
 
 
 
 
fb56537
 
 
802ea4a
fb56537
 
802ea4a
fb56537
8413983
802ea4a
691e419
bd316c1
 
 
92d6a21
 
 
 
 
 
 
 
 
0a254ca
cec8c3a
e67b24b
fb56537
802ea4a
fb56537
6f75721
496130e
e0fce16
496130e
3fb8cde
8413983
 
 
e0fce16
8413983
 
 
 
 
 
 
fc425c7
496130e
 
e0fce16
8413983
 
 
 
 
 
496130e
 
e0fce16
 
 
 
496130e
 
 
e0fce16
496130e
8413983
 
4bb1817
0945505
 
 
 
 
 
 
 
 
 
 
 
 
1283acb
4bb1817
1283acb
4bb1817
38ad644
836c0f8
1e7ad66
fb56537
8413983
fb56537
8413983
 
802ea4a
fb56537
1ffefe0
fb56537
 
 
 
802ea4a
fb56537
cf55b31
fb56537
802ea4a
 
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# =============================================================================
# DOCKERFILE - ADUC-SDR: AI Video Suite v4.1.0
# Base: CUDA 12.8.0 | PyTorch 2.8.0+cu128
# Otimizado para Hugging Face Spaces com 8x NVIDIA L40S GPUs
# =============================================================================

# Base CUDA 12.8.0
FROM nvidia/cuda:12.8.0-devel-ubuntu22.04

# =============================================================================
# METADADOS
# =============================================================================
LABEL maintainer="Carlos Rodrigues dos Santos & Development Partner"
LABEL description="ADUC-SDR: Production-Ready Multi-GPU AI Video Generation Suite with Wan2.2, SeedVR, LTX, MMAudio"
LABEL version="4.1.0"
LABEL cuda_version="12.8.0"
LABEL python_version="3.10"
LABEL pytorch_version="2.8.0+cu128"
LABEL gpu_optimized_for="8x_NVIDIA_L40S"

# Otimizações específicas do sistema
ENV OMP_NUM_THREADS=8
ENV MKL_NUM_THREADS=8
ENV CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
ENV CUDA_DEVICE_MAX_CONNECTIONS=32

# Cache e Memory Management
ENV PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
ENV CUDA_MODULE_LOADING=LAZY
ENV TORCH_CUDNN_V8_API_ENABLED=1

# Constantes de Performance para Build
ENV CUDA_CACHE_MAXSIZE=2147483648
ENV CUDA_CACHE_DISABLE=0
ENV TORCH_HOME=/app/.cache/torch
ENV HF_HOME=/app/.cache/huggingface
ENV HF_DATASETS_CACHE=/app/.cache/datasets

# Constantes de Memory Management
ENV PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512,garbage_collection_threshold:0.8
ENV CUDA_LAUNCH_BLOCKING=0
ENV CUDA_DEVICE_ORDER=PCI_BUS_ID

# Constantes de Model Loading
ENV TRANSFORMERS_CACHE=/app/.cache/transformers
ENV DIFFUSERS_CACHE=/app/.cache/diffusers
ENV MODEL_CACHE_STRATEGY=aggressive



# =============================================================================
# VARIÁVEIS DE AMBIENTE GLOBAIS
# =============================================================================
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV PIP_NO_CACHE_DIR=1
ENV PIP_DISABLE_PIP_VERSION_CHECK=1

# Otimizações de CUDA e Build
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
ENV TORCH_CUDA_ARCH_LIST="8.9"
ENV MAX_JOBS=90

# Caminhos da Aplicação
ENV APP_HOME=/app
WORKDIR $APP_HOME

# =============================================================================
# PACOTES DO SISTEMA E PYTHON 3.10
# =============================================================================
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    build-essential cmake git git-lfs curl wget ffmpeg ninja-build \
    python3.10 python3.10-dev python3.10-distutils python3-pip \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

RUN ln -sf /usr/bin/python3.10 /usr/bin/python3 && \
    ln -sf /usr/bin/python3.10 /usr/bin/python && \
    python3 -m pip install --upgrade pip

# =============================================================================
# INSTALAÇÃO DE BIBLIOTECAS DE ALTA PERFORMANCE
# =============================================================================

# 1. Instala PyTorch 2.8.0 e ferramentas de build
RUN pip -v install \
    torch>=2.8.0+cu128 \
    torchvision \
    torchaudio \
    --index-url https://download.pytorch.org/whl/cu128 
    
RUN pip install  \
    packaging \
    ninja \
    cmake \
    pybind11 \
    scikit-build \
    cython \
    numpy==1.24.4 


# =============================================================================
# CLONAGEM E INSTALAÇÃO DOS REPOSITÓRIOS DA APLICAÇÃO
# =============================================================================

RUN git clone https://github.com/Wan-Video/Wan2.2.git && \
    #cd Wan2.2 && pip install -v -r requirements.txt && pip install -v -r requirements_s2v.txt && cd .. && \
    echo "Copiando 'wan' para /app/wan..." && \
    cp -r Wan2.2/wan /app/wan 
    
# VINCIE
RUN git clone https://github.com/bytedance-seed/VINCIE.git && \
    #cd VINCIE && pip install -v -r requirements.txt && cd .. && \  
    #echo "Copiando módulos do SeedVR para /app/..." && \
    #cp /VINCIE/generate.py /app/VINCIE/ 2>/dev/null || echo "vincie_service.py não encontrado"
    #cp -r VINCIE /app/VINCIE && \
    #cp -r VINCIE/projects /app/projects && \
    #cp -r VINCIE/data /app/data && \
    cp -r VINCIE/configs/. /app/configs/
    

# SeedVR
RUN git clone https://github.com/bytedance-seed/SeedVR.git && \
    #cd SeedVR && pip install -v -r requirements.txt && cd .. && \
    #echo "Copiando módulos do SeedVR para /app/..." && \
    #cp -r SeedVR/common /app/common && \
    #cp -r SeedVR/projects /app/projects && \
    #cp -r SeedVR/data /app/data && \
    cp -r SeedVR/configs_3b /app/configs_3b 
    

# MMAudio
#RUN git clone https://github.com/hkchengrex/MMAudio.git && \
#    cd MMAudio && pip install -v -e . && cd .. && \
#    echo "Copiando 'mmaudio' para /app/mmaudio..." && \
#    cp -r MMAudio/mmaudio /app/mmaudio 

# LTX-Video
RUN git clone https://github.com/Lightricks/LTX-Video.git && \
    #cd LTX-Video && pip install -v -e .[inference] && cd .. && \
    echo "Copiando 'ltx_video' para /app/ltx_video..." && \
    cp -r LTX-Video/ltx_video /app/ltx_video 

# opcionais 
RUN pip uninstall -y bitsandbytes triton && \
    pip install -v  bitsandbytes --index-url https://pypi.org/simple/ && \
    pip install -v  triton
    
# =============================================================================
# INSTALAÇÃO DO RESTANTE DAS DEPENDÊNCIAS
# =============================================================================
COPY requirements.txt .

# Instala os pacotes restantes do requirements.txt
# A linha do flash-attention no arquivo será ignorada se já estiver instalado, mas é bom limpá-la.
RUN pip install -r requirements.txt

# =============================================================================
# INSTALAÇÃO DIFFUSERS-ADUC-SDR
# =============================================================================
COPY diffusers-aduc-sdr.txt .
RUN pip install --no-cache-dir  diffusers-aduc-sdr.txt 
#

# =============================================================================
# COPIA O CÓDIGO DA APLICAÇÃO E CONFIGURA PERMISSÕES
# =============================================================================
COPY . .

RUN useradd -m -u 1000 -s /bash appuser && \
    chown -R appuser:appuser $APP_HOME && \
    mkdir -p /app && chown -R appuser:appuser /app

USER appuser

# =============================================================================
# PONTO DE ENTRADA
# =============================================================================
RUN chmod +x ./start.sh

ENTRYPOINT ["./start.sh"]
CMD ["gradio"]