Spaces:
Paused
Paused
Update Dockerfile
Browse filesVersion Precedente totalement stable
- Dockerfile +7 -9
Dockerfile
CHANGED
|
@@ -1,7 +1,6 @@
|
|
| 1 |
# ----------------------------------------------------
|
| 2 |
-
# Dockerfile Comfy UI (Mode CPU) -
|
| 3 |
-
#
|
| 4 |
-
# Il est optimisé pour les instances CPU.
|
| 5 |
# ----------------------------------------------------
|
| 6 |
|
| 7 |
# 1. Image de base
|
|
@@ -10,7 +9,6 @@ FROM python:3.11-slim
|
|
| 10 |
WORKDIR /app
|
| 11 |
|
| 12 |
# 2. Installation des dépendances système
|
| 13 |
-
# git pour le clonage, libglib2.0-0 pour Pillow/Torch, curl pour les téléchargements
|
| 14 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 15 |
git \
|
| 16 |
libglib2.0-0 \
|
|
@@ -24,13 +22,9 @@ RUN git clone https://github.com/comfyanonymous/ComfyUI.git
|
|
| 24 |
WORKDIR /app/ComfyUI
|
| 25 |
|
| 26 |
# 4. Installation des dépendances Python (Mode CPU)
|
| 27 |
-
# FIX 1 : NumPy pour la compatibilité
|
| 28 |
RUN pip install "numpy<2.0"
|
| 29 |
-
# FIX 2 : PyTorch CPU pour éviter l'erreur de driver
|
| 30 |
RUN pip install torch==2.3.1+cpu torchvision==0.18.1+cpu torchaudio==2.3.1+cpu --index-url https://download.pytorch.org/whl/cpu
|
| 31 |
-
# FIX 3 : Dépendances standards
|
| 32 |
RUN pip install -r requirements.txt
|
| 33 |
-
# FIX 4 : Transformers récent pour les encodeurs de texte
|
| 34 |
RUN pip install transformers==4.41.2 tokenizers==0.19.1
|
| 35 |
|
| 36 |
# 5. Téléchargement des modèles SD 1.5 (CHECKPOINTS)
|
|
@@ -39,12 +33,16 @@ RUN mkdir -p models/checkpoints \
|
|
| 39 |
&& curl -L "https://civitai.com/api/download/models/126689?type=Model&format=SafeTensor&size=full" -o ./models/checkpoints/dreamshaper_8.safetensors \
|
| 40 |
&& curl -L "https://civitai.com/api/download/models/4201?type=Model&format=SafeTensor&size=full&fp16=false" -o ./models/checkpoints/realisticVisionV51_v51VAE.safetensors
|
| 41 |
|
| 42 |
-
# 5B. AJOUT CRITIQUE : VAEs et CLIP
|
| 43 |
RUN mkdir -p models/vae models/clip \
|
| 44 |
&& curl -L "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors" -o ./models/vae/vae-ft-mse-840000-ema-pruned.safetensors \
|
| 45 |
&& curl -L "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/vae.pt" -o ./models/vae/vae.pt \
|
| 46 |
&& curl -L "https://huggingface.co/comfyanonymous/clip_g/resolve/main/clip_g.safetensors" -o ./models/clip/clip_g.safetensors
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
# 6. Configuration Hugging Face Space (Port 7860 Obligatoire)
|
| 49 |
ENV PORT 7860
|
| 50 |
EXPOSE 7860
|
|
|
|
| 1 |
# ----------------------------------------------------
|
| 2 |
+
# Dockerfile Comfy UI (Mode CPU) - V7 (AJOUT WORKFLOW)
|
| 3 |
+
# Configuration complète pour Hugging Face Space.
|
|
|
|
| 4 |
# ----------------------------------------------------
|
| 5 |
|
| 6 |
# 1. Image de base
|
|
|
|
| 9 |
WORKDIR /app
|
| 10 |
|
| 11 |
# 2. Installation des dépendances système
|
|
|
|
| 12 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 13 |
git \
|
| 14 |
libglib2.0-0 \
|
|
|
|
| 22 |
WORKDIR /app/ComfyUI
|
| 23 |
|
| 24 |
# 4. Installation des dépendances Python (Mode CPU)
|
|
|
|
| 25 |
RUN pip install "numpy<2.0"
|
|
|
|
| 26 |
RUN pip install torch==2.3.1+cpu torchvision==0.18.1+cpu torchaudio==2.3.1+cpu --index-url https://download.pytorch.org/whl/cpu
|
|
|
|
| 27 |
RUN pip install -r requirements.txt
|
|
|
|
| 28 |
RUN pip install transformers==4.41.2 tokenizers==0.19.1
|
| 29 |
|
| 30 |
# 5. Téléchargement des modèles SD 1.5 (CHECKPOINTS)
|
|
|
|
| 33 |
&& curl -L "https://civitai.com/api/download/models/126689?type=Model&format=SafeTensor&size=full" -o ./models/checkpoints/dreamshaper_8.safetensors \
|
| 34 |
&& curl -L "https://civitai.com/api/download/models/4201?type=Model&format=SafeTensor&size=full&fp16=false" -o ./models/checkpoints/realisticVisionV51_v51VAE.safetensors
|
| 35 |
|
| 36 |
+
# 5B. AJOUT CRITIQUE : VAEs et CLIP
|
| 37 |
RUN mkdir -p models/vae models/clip \
|
| 38 |
&& curl -L "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors" -o ./models/vae/vae-ft-mse-840000-ema-pruned.safetensors \
|
| 39 |
&& curl -L "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/vae.pt" -o ./models/vae/vae.pt \
|
| 40 |
&& curl -L "https://huggingface.co/comfyanonymous/clip_g/resolve/main/clip_g.safetensors" -o ./models/clip/clip_g.safetensors
|
| 41 |
|
| 42 |
+
# 5C. NOUVELLE ÉTAPE : Création d'un workflow par défaut (default_workflow.json)
|
| 43 |
+
# Le JSON encode un graphe simple : Checkpoint -> CLIP Encode -> Sampler -> VAE Decode -> Save Image.
|
| 44 |
+
RUN echo '{ "last_node_id": 9, "last_link_id": 10, "nodes": [ { "id": 3, "type": "KSampler", "pos": [311, 281], "size": [337.89, 226.24], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 6 }, { "name": "positive", "type": "CONDITIONING", "link": 7 }, { "name": "negative", "type": "CONDITIONING", "link": 8 }, { "name": "latent_image", "type": "LATENT", "link": 9 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [10], "shape": 3 } ], "properties": { "Node name for S&R": "KSampler" }, "widgets_values": [ 66666, "randomize", "euler", "default", 18, 7, "enable", 1 ] }, { "id": 4, "type": "EmptyLatentImage", "pos": [38, 513], "size": [235.84, 105.85], "flags": {}, "order": 3, "mode": 0, "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [9], "shape": 3 } ], "properties": { "Node name for S&R": "EmptyLatentImage" }, "widgets_values": [ 512, 512, 1 ] }, { "id": 6, "type": "SaveImage", "pos": [1021, 281], "size": [220, 50], "flags": {}, "order": 7, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 5 } ], "properties": { "Node name for S&R": "SaveImage" }, "widgets_values": [ "ComfyUI" ] }, { "id": 7, "type": "CheckpointLoaderSimple", "pos": [38, 281], "size": [291.6, 98], "flags": {}, "order": 0, "mode": 0, "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [6], "shape": 3 }, { "name": "CLIP", "type": "CLIP", "links": [1, 2], "shape": 3 }, { "name": "VAE", "type": "VAE", "links": [4], "shape": 3 } ], "properties": { "Node name for S&R": "CheckpointLoaderSimple" }, "widgets_values": [ "v1-5-pruned-emaonly.safetensors" ] }, { "id": 8, "type": "CLIPTextEncode", "pos": [38, 0], "size": [337.89, 150.11], "flags": {}, "order": 1, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 1 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [7], "shape": 3 } ], "properties": { "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "a photograph of an astronaut riding a horse, cinematic, epic" ] }, { "id": 9, "type": "CLIPTextEncode", "pos": [38, 175], "size": [337.89, 150.11], "flags": {}, "order": 2, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 2 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [8], "shape": 3 } ], "properties": { "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "blurry, low resolution, worst quality, deformed, bad anatomy, bad quality, lowres" ] }, { "id": 5, "type": "VAEDecode", "pos": [689, 281], "size": [220, 46], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 10 }, { "name": "vae", "type": "VAE", "link": 4 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [5], "shape": 3 } ], "properties": { "Node name for S&R": "VAEDecode" } } ], "links": [ [1, 7, 1, 8, 0, "CLIP"], [2, 7, 1, 9, 0, "CLIP"], [4, 7, 3, 5, 1, "VAE"], [5, 5, 0, 6, 0, "IMAGE"], [6, 7, 0, 3, 0, "MODEL"], [7, 8, 0, 3, 1, "CONDITIONING"], [8, 9, 0, 3, 2, "CONDITIONING"], [9, 4, 0, 3, 3, "LATENT"], [10, 3, 0, 5, 0, "LATENT"] ], "groups": [], "config": {}, "extra": { "ds": "Lw==", "ds_ver": "1.33.10" }, "version": 1.33} ' > default_workflow.json
|
| 45 |
+
|
| 46 |
# 6. Configuration Hugging Face Space (Port 7860 Obligatoire)
|
| 47 |
ENV PORT 7860
|
| 48 |
EXPOSE 7860
|