【大模型系列 03】Stable Diffusion 2.1 for PyTorch 昇腾迁移

源码链接

https://gitee.com/ascend/ModelZoo-PyTorch/blob/master/PyTorch/built-in/diffusion/stablediffusion-2.1

StableDiffusion-2.1 for PyTorch

概述

简述

StableDiffusion 是 StabilityAI公司于2022年提出的图片生成的预训练模型,论文和代码均已开源,下游任务包括文生图、图生图、图片压缩等等

  • 参考实现:

    url=https://github.com/Stability-AI/stablediffusion 
    commit_id=535d370de05c0e55a6bcbdd32933e549e125b946
    
  • 适配昇腾 AI 处理器的实现:

    url=https://gitee.com/ascend/ModelZoo-PyTorch.git
    code_path=PyTorch/built-in/diffusion/stablediffusion-2.1
    

准备环境

准备环境

  • 当前模型支持的 PyTorch 版本和已知三方库依赖如下表所示。

    表 1 版本支持表

    Torch_Version三方库依赖版本
    PyTorch 1.11torchvision== 0.12.0; transformers==4.19.2
  • 环境准备指导。

    请参考《Pytorch框架训练环境准备》。

  • 安装依赖。

    在模型源码包根目录下执行命令,安装模型对应PyTorch版本需要的依赖。

    
    pip install -r requirements.txt
    

图像生成任务推理

  • 下载预训练的ckpt文件

  • 先source环境变量:

    source ./test/env_npu.sh
    
  • 执行图像生成脚本:

 python scripts/txt2img.py \
        --prompt "a professional photograph of an astronaut riding a horse" \
        --ckpt /xxx/xxx.ckpt \
        --config configs/stable-diffusion/v2-inference-v.yaml \
        --H 768 \
        --W 768 \
        --device_id 4 \
        --precision full \
        --bf16 \
        --n_samples 1 \
        --n_iter 1 \
        --dpm \
        --steps 15 

# 或者使用shell脚本启动:
bash ./test/run_infer_full_1p.sh  #单卡推理,请将脚本里的ckpt权重路径更换成实际的路径

# 注:生成的图像在outputs目录下 
  • 参数说明如下:
--ckpt_path #模型文件目录,需要指定到具体的ckpt文件

--n_samples #每次生成图片的batch数

--n_iter #每个prompt生成的图片数,每个prompt生成的图片总数为:(n_samples * n_iter)

--devive #除`cpu`外,默认为`cuda`

--device_id #运行的设备ID

版本说明

变更

FAQ

  1. 该模型当前只支持在线推理,不支持训练。

  2. requests.exceptions.SSLError:HttpSConnectionPool(host='huggingface.co', port=443)错误

    可以修改当前环境的requests包下的sessions.py文件的684行,增加kwargs["verify"] = False,一般路径在conda_path/envs/conda_name/lib/python*/site-packages/requests/sessions.py,查看requests包的所在路径可以通过pip show requests查看

### Stable Diffusion 2.1 安装指南 对于希望部署Stable Diffusion 2.1版本的用户而言,准备环境至关重要。通常情况下,推荐使用Python虚拟环境来隔离项目依赖关系[^1]。 #### 创建并激活虚拟环境 ```bash python3 -m venv sd-env source sd-env/bin/activate # Linux or macOS sd-env\Scripts\activate # Windows ``` 随后更新pip至最新版,并安装必要的包管理工具`torch`以及`diffusers`库: ```bash pip install --upgrade pip pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 pip install diffusers transformers accelerate ``` 完成上述准备工作之后,可以下载特定于Stable Diffusion 2.1模型权重文件。这一步骤可能涉及访问官方资源仓库或其他可信渠道获取预训练参数集。 ### 使用教程概览 启动应用程序之前,请确认已成功加载所需的模型配置与权重数据。通过调用`DiffusionPipeline.from_pretrained()`方法指定目标架构名称即可轻松实例化pipeline对象: ```python from diffusers import DiffusionPipeline model_id = "stabilityai/stable-diffusion-2-1" pipe = DiffusionPipeline.from_pretrained(model_id) ``` 为了生成图像样本,只需向pipeline传递提示文本作为输入参数。这里展示了一个简单的例子说明如何基于给定描述创建视觉内容: ```python prompt = "A fantasy landscape, trending on ArtStation" image = pipe(prompt).images[0] image.save("fantasy_landscape.png") ``` 值得注意的是,在实际操作过程中还存在许多可调节选项用于优化输出质量或加速推理过程,比如调整采样步数、应用不同的噪声调度器等高级设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值