[Modelos más fáciles de cambiar] Cómo usar Serverless para implementar Stable Diffusion con un solo clic_

imagen.png
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

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.

Supongo que te gusta

Origin blog.csdn.net/weixin_42477427/article/details/130749499
Recomendado
Clasificación