Autor|Han Xie (experto en tecnología inteligente en la nube de Alibaba)
Revisión anterior
La pintura de IA es popular, ¿cómo usar la función Serverless para calcular e implementar Stable Diffusion?
[Cambie el modelo usted mismo] ¿Cómo usar Serverless para implementar Stable Diffusion con un solo clic?
Este capítulo es el tercero de la serie de difusión estable de implementación de computación funcional de Alibaba Cloud.Si el primer artículo es tratar de usar los servicios en la nube para resolver el problema de la implementación local de sd de los usuarios (el costo de las tarjetas gráficas y la tecnología de implementación es complejo), el segundo artículo es para que los estudiantes técnicos resuelvan la viabilidad del servicio en la nube sd (modelo personalizado, extensión), luego este artículo es para realizar el reemplazo de las computadoras locales de una manera más popular, para que todos puedan tener un conjunto de servicios sd prácticos , no importa si es un usuario común o estudiantes técnicos, son aplicables.
condiciones previas
- 1. Regístrese e inicie sesión en su cuenta de Alibaba Cloud
- 2. Habilitar la computación de funciones
- 3. Abra el servicio Nas de almacenamiento de archivos
No tienes que lidiar con el problema de las tarifas, la función informática y el almacenamiento de archivos Nas solo se facturan cuando se usan, y las tarifas son relativamente bajas.
Inicio rápido
Primero ingrese al centro de aplicaciones:
https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Ffcnext.console.aliyun.com%2Fapplications&lang=zh
Cree una aplicación a partir de una plantilla -> pestaña de inteligencia artificial -> Plantilla personalizada de difusión estable de pintura digital AI -> crear ahora
Rellene los elementos del formulario
Seleccione Implementación directa -> Región de Hangzhou -> Copie la imagen del contenedor preparada por el desarrollador y
haga clic para crear e implementar el entorno predeterminado.
despliegue de aplicaciones
A continuación, no es necesario operar nada, solo espere a que se implemente la aplicación, tomará entre 5 y 10 minutos, si es un estudiante técnico, puede ampliar para ver el registro de implementación que proporcionamos y observar la implementación. proceso
Fondo de gestión de configuración
Después de una implementación exitosa, se obtienen dos nombres de dominio
Entre ellos, el que comienza con sd es el servicio principal, al que no se puede acceder porque no hay una imagen reflejada, y el que comienza con admin es nuestro fondo de administración. A continuación, primero debemos configurar el fondo de administración y luego cargar nuestro modelo.
El fondo de gestión utiliza el kod-box proporcionado por Kedaoyun. Para ti, solo un poco hasta el final, puedes
Después de la inicialización, configure su propia cuenta de inicio de sesión y contraseña
iniciar sesión más tarde
Ingrese /mnt/auto/sd en la ruta después de iniciar sesión
Si está familiarizado con el directorio sd-webui, puede ver el directorio correspondiente
Luego abrimos /mnt/auto/sd/models/Stable-diffusion/, y luego hacemos clic en Cargar -> Descarga sin conexión
Aquí ingresamos la dirección del modelo de sd1.5
https://huggingface.co/runwayml/stable-diffusion-inpainting/resolve/main/sd-v1-5-inpainting.ckpt
Por supuesto, también puede ingresar cualquier dirección de su propio, además de descargar, también puede arrastrar y soltar modelos locales directamente para cargar.
Debido a que el modelo es grande, se estima que el tiempo de descarga demorará entre 5 y 15 minutos, puede descansar y esperar un rato (si hay un error en la actualización, puede ignorarlo)
Además, debe prestar especial atención: si el archivo se descarga del sitio de origen huggingface, debe cambiar el sufijo del archivo. Por ejemplo, aquí, debemos asegurarnos de que el nombre del archivo sea estricto, como sd-v1-5-inpainting.ckpt
Después de descargar el modelo, podemos abrir el servicio sd
Personalización del código fuente
También pegue el código fuente para construir el espejo aquí, si es un compañero de clase de desarrollo, puede construir su propio espejo
Basado en el proyecto https://github.com/AbdBarho/stable-diffusion-webui-docker/tree/master/services/AUTOMATIC1111 , reemplace el entrypoint.sh
en él
#!/bin/bash
set -Eeuo pipefail
# TODO: move all mkdir -p ?
mkdir -p /mnt/auto/sd/config/auto/scripts/
# mount scripts individually
find "${ROOT}/scripts/" -maxdepth 1 -type l -delete
cp -vrfTs /mnt/auto/sd/config/auto/scripts/ "${ROOT}/scripts/"
cp -n /docker/config.json /mnt/auto/sd/config/auto/config.json
jq '. * input' /mnt/auto/sd/config/auto/config.json /docker/config.json | sponge /mnt/auto/sd/config/auto/config.json
if [ ! -f /mnt/auto/sd/config/auto/ui-config.json ]; then
echo '{}' >/mnt/auto/sd/config/auto/ui-config.json
fi
declare -A MOUNTS
MOUNTS["/root/.cache"]="/mnt/auto/sd/.cache"
# main
MOUNTS["${ROOT}/models"]="/mnt/auto/sd/models"
MOUNTS["${ROOT}/embeddings"]="/mnt/auto/sd/embeddings"
MOUNTS["${ROOT}/config.json"]="/mnt/auto/sd/config/auto/config.json"
MOUNTS["${ROOT}/ui-config.json"]="/mnt/auto/sd/config/auto/ui-config.json"
MOUNTS["${ROOT}/extensions"]="/mnt/auto/sd/config/auto/extensions"
MOUNTS["${ROOT}/outputs"]="/mnt/auto/sd/config/auto/outputs"
MOUNTS["${ROOT}/extensions-builtin"]="/mnt/auto/sd/extensions-builtin"
MOUNTS["${ROOT}/configs"]="/mnt/auto/sd/configs"
MOUNTS["${ROOT}/localizations"]="/mnt/auto/sd/localizations"
# extra hacks
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/mnt/auto/sd/.cache"
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
if [ -f "/mnt/auto/sd/config/auto/startup.sh" ]; then
pushd ${ROOT}
. /mnt/auto/sd/config/auto/startup.sh
popd
fi
exec "$@"
Después de personalizar su propia imagen, puede reemplazar la parte de la imagen que debe completarse en el proceso anterior y prestar atención a la región correspondiente.
Preguntas y respuestas
Descargar modelo no disponible
Necesita verificar si el nombre de archivo del modelo es correcto
Los complementos no se pueden instalar en línea
La implementación de la imagen del contenedor tiene restricciones de seguridad. Puede descargar el complemento localmente y luego cargarlo en el directorio de extensiones a través del fondo de administración. Si desea admitir la URL, debe personalizar la imagen de la ventana acoplable y modificar los parámetros relevantes.
Como acceder a la api de sd
Debe personalizar la imagen, activar el parámetro --api y luego visitar /docs para ver la API invocable
parte arancelaria
Esta aplicación se basa en la computación de funciones y el almacenamiento de archivos Nas. Antes de usarla, reciba la cuota gratuita correspondiente o compre el paquete de recursos correspondiente. Para obtener descripciones de tarifas específicas, consulte el sitio web oficial.
Esquema de personalización más flexible
Puede intentar mapear todo el directorio webui directamente a nas, lo cual es más conveniente para modificar el código fuente.
Otras Consideraciones
Por favor, preste atención al acuerdo de código abierto correspondiente para evitar posibles riesgos en su comercialización.