[간단한 모델 변경] Serverless를 사용하여 클릭 한 번으로 Stable Diffusion 구축하는 방법_

이미지.png
저자|Han Xie(알리바바 클라우드 인텔리전트 기술 전문가)

이전 검토

AI페인팅이 유행인데 서버리스 기능으로 어떻게 Stable Diffusion을 계산하고 배포
하나요?

이 장은 Alibaba Cloud의 기능 컴퓨팅 배포 stablediffusion 시리즈의 세 번째입니다.첫 번째 기사가 사용자의 sd 로컬 배포 문제를 해결하기 위해 클라우드 서비스를 사용하려는 경우 (그래픽 카드 비용 및 배포 기술이 복잡함), 두 번째 기사는 기술 학생들이 클라우드 서비스 sd의 실용성(사용자 정의 모델, 확장)을 해결하는 것입니다. 그런 다음 이 기사는 로컬 컴퓨터를 보다 대중적인 방식으로 교체하여 모든 사람이 실용적인 sd 서비스 세트를 가질 수 있도록 하는 것입니다. , 일반 사용자이든 기술 학생이든 관계없이 적용 가능합니다.

전제 조건

수수료 문제를 처리할 필요가 없습니다.Function Computing 및 파일 스토리지 Nas는 사용할 때만 청구되며 수수료는 상대적으로 낮습니다.

빠른 시작

먼저 애플리케이션 센터에 들어가십시오:
https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Ffcnext.console.aliyun.com%2Fapplications&lang=zh

템플릿에서 어플리케이션 만들기 -> 인공지능 탭 -> AI 디지털 페인팅 안정 확산 커스텀 템플릿 -> 지금 만들기

양식 항목을 작성하십시오

직접 배포 -> 항저우 지역 -> 개발자가 준비한 컨테이너 이미지 복사를 선택하고
클릭하여 기본 환경을 생성하고 배포합니다.

애플리케이션 배포

다음으로, 아무것도 조작할 필요가 없습니다. 응용 프로그램이 배포될 때까지 기다리면 됩니다. 약 5-10분 정도 소요됩니다. 기술 학생의 경우 확장하여 제공되는 배포 로그를 볼 수 있으며 배포를 관찰할 수 있습니다. 프로세스

구성 관리 배경

성공적인 배포 후 두 개의 도메인 이름을 얻습니다.

그 중 sd로 시작하는 것이 메인 서비스로 미러 이미지가 없어서 접근이 불가능하고 admin으로 시작하는 것이 우리의 관리 배경입니다. 모델.

관리 배경은 커다오윤에서 제공하는 kod-box를 사용합니다.

초기화 후 본인 로그인 계정과 비밀번호 설정

나중에 로그인

로그인 후 경로에 /mnt/auto/sd 입력

sd-webui 디렉토리에 익숙하다면 해당 디렉토리를 볼 수 있습니다.

다음으로 /mnt/auto/sd/models/Stable-diffusion/을 연 다음 Upload -> Offline Download를 클릭합니다.

여기에 sd1.5의 모델 주소를 입력합니다 .
https://huggingface.co/runwayml/stable-diffusion-inpainting/resolve/main/sd-v1-5-inpainting.ckpt
자신의, 다운로드 외에도 로컬 모델을 직접 끌어다 놓아 업로드할 수도 있습니다.
모델이 크기 때문에 다운로드 시간은 5~15분 정도 소요될 것으로 예상되며, 잠시 쉬면서 기다리셔도 됩니다. (업그레이드에 오류가 있을 경우 무시하셔도 됩니다.)

또한 각별한 주의가 필요한데, 허깅페이스 소스 사이트에서 파일을 다운받는 경우 파일 확장자를 변경해야 합니다. 예를 들어 여기에서는 sd-v1-5-inpainting.ckpt와 같이 파일 이름이 엄격한지 확인해야 합니다.
모델을 다운로드한 후 sd 서비스를 열 수 있습니다.

소스 코드 커스터마이징

또한 여기에 미러를 빌드하기 위한 소스 코드를 붙여넣으십시오. 개발 동창이라면 자신만의 미러를 빌드할 수 있습니다.

https://github.com/AbdBarho/stable-diffusion-webui-docker/tree/master/services/AUTOMATIC1111 프로젝트를 기반으로
entrypoint.sh 를 교체합니다.

#!/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 "$@"

나만의 이미지를 커스터마이징 한 후 위의 과정에서 채워야 할 이미지 부분을 교체하고 해당 영역에주의를 기울일 수 있습니다.

Q&A

모델 다운로드 불가

모델의 파일명이 맞는지 확인 필요

플러그인은 온라인으로 설치할 수 없습니다.

컨테이너 이미지 배포에는 보안 제한이 있습니다.플러그인을 로컬로 다운로드한 다음 관리 배경을 통해 확장 디렉터리에 업로드할 수 있습니다.URL을 지원하려면 도커 이미지를 사용자 지정하고 관련 매개 변수를 수정해야 합니다.

sd의 API에 액세스하는 방법

이미지를 사용자 정의하고 --api 매개변수를 켠 다음 /docs를 방문하여 호출 가능한 API를 확인해야 합니다.

관세 부분

이 응용 프로그램은 기능 컴퓨팅 및 Nas 파일 저장에 의존합니다.사용하기 전에 해당 무료 할당량을 받거나 해당 리소스 패키지를 구입하십시오.구체적인 요금 설명은 공식 웹 사이트를 참조하십시오.

보다 유연한 사용자 정의 체계

전체 webui 디렉토리를 nas에 직접 매핑할 수 있으므로 소스 코드를 수정하는 것이 더 편리합니다.

기타 고려 사항

가능한 위험으로부터 상용화를 방지하기 위해 해당 오픈 소스 계약에 주의하십시오.

추천

출처blog.csdn.net/weixin_42477427/article/details/130749499