注意:如果没有显卡或显卡性能较弱的同学们不要尝试,不然到最后也还是不行!当然这些同学们可以去(免费,效果稍逊)
Stable Diffusion - a Hugging Face Space by stabilityaiDiscover amazing ML apps made by the communityhttps://huggingface.co/spaces/stabilityai/stable-diffusion
或者(收费,但是效果更好)
本文主要参考 GitHub 上的使用描述
1. GitHub下载源码包
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:
再点击 sd-v1-1.ckpt 下载即可(文件一般是以G为单位):
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 <path/to/model.ckpt> models/ldm/stable-diffusion-v1/model.ckpt
其中 <path/to/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 <path-to-img.jpg> --strength 0.8