Stable Diffusion 本地部署

注意:如果没有显卡或显卡性能较弱的同学们不要尝试,不然到最后也还是不行!当然这些同学们可以去(免费,效果稍逊)
Stable Diffusion - a Hugging Face Space by stabilityaiDiscover amazing ML apps made by the communityicon-default.png?t=M85Bhttps://huggingface.co/spaces/stabilityai/stable-diffusion

或者(收费,但是效果更好)

DreamStudioDreamStudio by Stability AI is a new AI system powered by Stable Diffusion that can create realistic images, art and animation from a description in natural language.https://beta.dreamstudio.ai/dream这两个网站上过过瘾。

本文主要参考 GitHub 上的使用描述

1. GitHub下载源码包

GitHub - CompVis/stable-diffusion: A latent text-to-image diffusion modelA latent text-to-image diffusion model. Contribute to CompVis/stable-diffusion development by creating an account on GitHub.https://github.com/CompVis/stable-diffusion

git clone https://github.com/CompVis/stable-diffusion

2. 下载模型参数

下载地址:https://huggingface.co/CompVis

根据自己的需要下载(建议下载-original版本):如需要 stable-diffusion-v-1-1-original 版本,则直接点击 stable-diffusion-v-1-1-original:

Stable Diffusion 本地部署_第1张图片

 再点击 sd-v1-1.ckpt 下载即可(文件一般是以G为单位):

Stable Diffusion 本地部署_第2张图片

 3. anaconda创建 ldm 环境

不熟悉 anaconda 的同学可以参考其他博客,这里不再赘述。

(建议在stable-diffusion目录下)打开命令行运行下面代码:

conda env create -f environment.yaml
conda activate ldm

如果已经有 ldm 环境的同学,也可以运行下面代码进行内部安装包更新:

conda install pytorch torchvision -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .

4. 设置模型参数存放位置

Linux系统的同学运行下面代码:

mkdir -p models/ldm/stable-diffusion-v1/
ln -s  models/ldm/stable-diffusion-v1/model.ckpt 

其中 是你上面下载模型参数时的存放位置

如果不想使用命令行或Window的同学可以先在 models/ldm 下手动创建 stable-diffusion-v1 文件夹,然后将刚才下载的模型参数改名为 model.ckpt 并放在 stable-diffusion-v1 目录下

5. 运行 stable-diffusion

在 stable-diffusion 目录下运行下面代码(确保此时已经激活了 ldm 环境):

python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms 

其中 --prompt 后面的即是描述性文字,可以根据需要更改(不要想着生成一些不好的东西,没有用的)。

一些可以调节的参数如下:

usage: txt2img.py [-h] [--prompt [PROMPT]] [--outdir [OUTDIR]] [--skip_grid] [--skip_save] [--ddim_steps DDIM_STEPS] [--plms] [--laion400m] [--fixed_code] [--ddim_eta DDIM_ETA]
                  [--n_iter N_ITER] [--H H] [--W W] [--C C] [--f F] [--n_samples N_SAMPLES] [--n_rows N_ROWS] [--scale SCALE] [--from-file FROM_FILE] [--config CONFIG] [--ckpt CKPT]
                  [--seed SEED] [--precision {full,autocast}]

optional arguments:
  -h, --help            show this help message and exit
  --prompt [PROMPT]     the prompt to render
  --outdir [OUTDIR]     dir to write results to
  --skip_grid           do not save a grid, only individual samples. Helpful when evaluating lots of samples
  --skip_save           do not save individual samples. For speed measurements.
  --ddim_steps DDIM_STEPS
                        number of ddim sampling steps
  --plms                use plms sampling
  --laion400m           uses the LAION400M model
  --fixed_code          if enabled, uses the same starting code across samples
  --ddim_eta DDIM_ETA   ddim eta (eta=0.0 corresponds to deterministic sampling
  --n_iter N_ITER       sample this often
  --H H                 image height, in pixel space
  --W W                 image width, in pixel space
  --C C                 latent channels
  --f F                 downsampling factor
  --n_samples N_SAMPLES
                        how many samples to produce for each given prompt. A.k.a. batch size
  --n_rows N_ROWS       rows in the grid (default: n_samples)
  --scale SCALE         unconditional guidance scale: eps = eps(x, empty) + scale * (eps(x, cond) - eps(x, empty))
  --from-file FROM_FILE
                        if specified, load prompts from this file
  --config CONFIG       path to config which constructs model
  --ckpt CKPT           path to checkpoint of model
  --seed SEED           the seed (for reproducible sampling)
  --precision {full,autocast}
                        evaluate at this precision

也可以实现图片转换图片,运行下面代码:

python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img  --strength 0.8

你可能感兴趣的:(深度学习前沿领域项目实践,python,深度学习,开发语言,计算机视觉)