1
0

feat:添加sd-comfyui到列表

This commit is contained in:
okxlin
2023-12-19 01:05:21 +08:00
parent 1faa17183f
commit f7180fbadd
14 changed files with 114 additions and 100 deletions

45
apps/sd-comfyui/README.md Normal file
View File

@@ -0,0 +1,45 @@
## 项目介绍
stable-deffusion是基于pytorch的目标检测模型
当前版本镜像支持GPUCPU模式需要修改yaml参数未测试。
GPU最小8G起4G显存下未测试
安装过程比较漫长,取决于初始模型下载速度,需要耐心等待
安装面板支持apt、pip指令。详细可参考yml文件当前版本默认安装即可由于比较消耗资源限定镜像仅部署1个
本镜像仅做移植所有功能基于原作者参考https://github.com/thirdscam/SD-WebUI-Docker
webui有两个可以选择都在应用商店里a1111版和comfy
安装前确保docker默认支持gpu配置在/etc/docker/daemon.json上改像这样
```
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
```
## 关于缺少依赖的报错
安装镜像过程会自动安装当前版本所需依赖
为适应未来版本变化添加了apt和pip指令当前版本不填即可。
当然如果宿主机未安装nvidia-docker-runtime、nvidia-docker2、nvidia-container-toolkit等nvidia容器运行的依赖可以使用该功能只需在APT参数上写包名即可多个包加空格。
## 关于GPU
当前仅设置单GPUnvdia-smi可以查看gpu的ID默认0单显卡默认即可
多显卡可以根据id选择
如果需要使用所有显卡需要更改yaml文件将id设置为all
## 其他
stable-deffusion相关教程https://www.bilibili.com/video/BV1As4y127HW/?spm_id_from=333.337.search-card.all.click&vd_source=101386edb3f81944f8492e12ee8cb5b6
## api接口
http://localhost:7860/docs/
## 模型下载站
https://civitai.com/

20
apps/sd-comfyui/data.yml Normal file
View File

@@ -0,0 +1,20 @@
name: Stable Diffusion ComfyUI
tags:
- 工具
title: 最强大、模块化的 stable diffusion GUI具有图形/节点界面
type: 工具
description: 最强大、模块化的 stable diffusion GUI具有图形/节点界面
additionalProperties:
key: sd-comfyui
name: Stable Diffusion ComfyUI
tags:
- Tool
shortDescZh: 最强大、模块化的 stable diffusion GUI具有图形/节点界面
shortDescEn: The most powerful and modular stable diffusion GUI with a graph/nodes interface
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/thirdscam/SD-WebUI-Docker
github: https://github.com/thirdscam/SD-WebUI-Docker
document: https://github.com/thirdscam/SD-WebUI-Docker

View File

@@ -0,0 +1,32 @@
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PIP_PREFER_BINARY=1
ENV ROOT=/apt
RUN mkdir ${ROOT}
WORKDIR ${ROOT}
# Install Essential Packages (APT)
RUN apt-get update && apt-get install -y git python3 python3-pip && apt-get clean
# Get Comfy
RUN git clone https://github.com/comfyanonymous/ComfyUI.git .
# Install Essential Packages (PIP)
RUN --mount=type=cache,target=/root/.cache/pip \
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 && \
pip install -r requirements.txt && \
pip install --pre xformers && \
pip install triton
# Setting up
COPY entrypoint.sh /docker/entrypoint.sh
RUN chmod +x /docker/entrypoint.sh
ENTRYPOINT ["/docker/entrypoint.sh"]
ENV PYTHONPATH="${PYTHONPATH}:${PWD}"
CMD test -z "${APT_ARGS}" || apt-get -y install ${APT_ARGS} \
&& test -z "${PIP_ARGS}" || pip install ${PIP_ARGS} \
&& python3 -u main.py ${CLI_ARGS}

View File

@@ -0,0 +1,46 @@
#!/bin/bash
set -Eeuo pipefail
declare -A MOUNTS
mkdir -vp /data/config/comfy/
# cache
MOUNTS["/root/.cache"]=/data/.cache
# ui specific
MOUNTS["${ROOT}/models/checkpoints"]="/data/StableDiffusion"
MOUNTS["${ROOT}/models/controlnet"]="/data/ControlNet"
MOUNTS["${ROOT}/models/upscale_models/RealESRGAN"]="/data/RealESRGAN"
MOUNTS["${ROOT}/models/upscale_models/GFPGAN"]="/data/GFPGAN"
MOUNTS["${ROOT}/models/upscale_models/SwinIR"]="/data/SwinIR"
MOUNTS["${ROOT}/models/vae"]="/data/VAE"
# data
MOUNTS["${ROOT}/models/loras"]="/data/Lora"
MOUNTS["${ROOT}/models/embeddings"]="/data/embeddings"
# config
# TODO: I am not sure if this is final, maybe it should change in the future
MOUNTS["${ROOT}/models/clip"]="/data/.cache/comfy/clip"
MOUNTS["${ROOT}/models/clip_vision"]="/data/.cache/comfy/clip_vision"
MOUNTS["${ROOT}/models/custom_nodes"]="/data/config/comfy/custom_nodes"
MOUNTS["${ROOT}/models/style_models"]="/data/config/comfy/style_models"
MOUNTS["${ROOT}/models/t2i_adapter"]="/data/config/comfy/t2i_adapter"
# output
MOUNTS["${ROOT}/output"]="/output/comfy"
for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail
from_path="${MOUNTS[${to_path}]}"
rm -rf "${to_path}"
if [ ! -f "$from_path" ]; then
mkdir -vp "$from_path"
fi
mkdir -vp "$(dirname "${to_path}")"
ln -sT "${from_path}" "${to_path}"
echo Mounted $(basename "${from_path}")
done
exec "$@"

View File

@@ -0,0 +1,52 @@
additionalProperties:
formFields:
- default: 40187
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: '--listen 0.0.0.0 --port 8188'
edit: true
envKey: SD_CONSOLE_CLI_COMFY
labelEn: CLI ARGS for ComfyUI
labelZh: ComfyUI 的 CLI_ARGS 参数
required: true
type: text
- default: ""
edit: true
envKey: SD_CONSOLE_APT_COMFY
labelEn: Install some package if you want (equivalent to apt-get install -y)
labelZh: 想安装的软件包 (等同 apt-get install -y)
required: false
type: text
- default: ""
edit: true
envKey: SD_CONSOLE_PIP_COMFY
labelEn: Install pip package if you want (equivalent to pip install)
labelZh: 想安装的 pip 包 (等同 pip install)
required: false
type: text
#- default: 0
# edit: true
# envKey: SD_CONSOLE_DEVICE_IDS
# labelEn: GPU ID
# labelZh: SD 运行指定的 GPU 设备 ID
# required: true
# type: number
- default: ./data/data
edit: true
envKey: DATA_PATH
labelEn: Data storage folder
labelZh: 数据存放文件夹
required: true
type: text
- default: ./data/output
edit: true
envKey: OUTPUT_PATH
labelEn: Picture output folder
labelZh: 图片输出文件夹
required: true
type: text

View File

@@ -0,0 +1,34 @@
version: '3'
services:
sd-comfyui:
build: ./comfy
image: sd-comfyui:latest
container_name: ${CONTAINER_NAME}
restart: always
runtime: nvidia
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:8188"
volumes:
- ${DATA_PATH}:/data
- ${OUTPUT_PATH}:/output
environment:
- CLI_ARGS=${SD_CONSOLE_CLI_COMFY}
- APT_ARGS=${SD_CONSOLE_APT_COMFY}
- PIP_ARGS=${SD_CONSOLE_PIP_COMFY}
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
- NVIDIA_VISIBLE_DEVICES=all
# 1Panel会覆盖此设置
#deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# device_ids: ['${SD_CONSOLE_DEVICE_IDS}']
# capabilities: [gpu,compute,utility]
labels:
createdBy: Apps
networks:
1panel-network:
external: true

View File

@@ -0,0 +1,8 @@
CONTAINER_NAME="sd-comfyui"
PANEL_APP_PORT_HTTP="40187"
DATA_PATH="./data/data"
OUTPUT_PATH="./data/output"
SD_CONSOLE_CLI_COMFY="--listen 0.0.0.0 --port 8188"
SD_CONSOLE_APT_COMFY=""
SD_CONSOLE_PIP_COMFY=""
SD_CONSOLE_DEVICE_IDS="0"

View File

@@ -0,0 +1,2 @@
#!/bin/bash
docker compose up -d --build

View File

@@ -0,0 +1,3 @@
#!/bin/bash
docker compose build --no-cache
docker compose up -d

BIN
apps/sd-comfyui/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB