Skip to content

【StoryDiffusion】部署教程

StoryDiffusion介绍

StoryDiffusion: 指定人物连续漫画一键生成工具!

StoryDiffusion 是由南开大学HVision团队开发的创新人工智能工具。它的核心功能是生成连贯的图像和视频故事,尤其擅长于漫画创作。该工具采用了先进的一致性自注意力(Consistent Self-Attention)技术,可以在无需额外训练的情况下,生成主题一致的图像序列,这些图像非常适合用于叙述故事或作为进一步内容创作的基础。

主要功能特征

  • 角色连贯性保持:通过一致性自注意力机制,StoryDiffusion 能够生成风格和服装一致的图像和视频,确保多图漫画和长视频中的角色连贯性,从而实现流畅的故事叙述。
  • 多场景应用:除了漫画生成,StoryDiffusion 还适用于图像转视频等多种应用场景。用户可以提供一系列条件图像,利用 Image-to-Video 模型生成视频,为广告、电影等领域提供创新的内容制作方式。
  • 教育材料设计:教育工作者可以利用 StoryDiffusion 设计引人入胜的教育视频或互动故事,这有助于增强学习者的参与度和兴趣。
  • 长范围图像生成功能:特别适用于制作连贯的广告故事,有助于加强品牌形象。这一功能让 StoryDiffusion 在广告和品牌推广方面展现出独特的优势。
  • 即插即用无需训练:通过将一致性自注意力技术整合进现有的 U-Net 图像生成模型架构,并重用原有的自注意力权重,StoryDiffusion 实现了无需训练的即插即用特性。
  • 高效能与稳健性:在保持角色特性和符合提示描述的同时,StoryDiffusion 在定量指标上展示了优异的性能和稳健性。

1. 前置准备

官方文档中对GPU的需求

StoryDiffusion官方文档中对GPU显存有要求,推荐使用A4000、Tesla P40等GPU

1.1 创建实例

1.2 从Github获得克隆地址

从github获得克隆地址

StoryDiffusion Github地址:https://github.com/HVision-NKU/StoryDiffusion

1.3 启动GPU实例

2.连接服务器并部署StoryDiffusion

2.1 通过终端连接服务器

通过clone获得storyDiffusion,命令如下:

bash
git clone https://github.com/HVision-NKU/StoryDiffusion

通过ls命令查看目录,如果有StoryDiffusion存在,说明克隆成功

使用cd命令进入StoryDiffusion文件夹,运行gradio_app_sdxl_specific_id_low_vram.py文件,根据相应的提示使用pip命令下载缺失的库,命令如下:

bash
cd StoryDiffusion
bash
python gradio_app_sdxl_specific_id_low_vram.py

或者跳到2.2步骤,提前将所有需要的库载入

2.2 下载相对应的库

需要使用pip命令下载transformers、torch、gradio、torchvision、diffusers、accelerate一共六个库

bash
pip install transformers
pip install torch
pip install gradio
pip install torchvision
pip install diffusers
pip install accelerate

下载完成后运行gradio_app_sdxl_specific_id_low_vram.py文件,由于使用huggingface时下载连接不稳定,会出现连接失败的提示,因此需要进行一些配置

Huggingface连接配置相关博客地址:https://blog.csdn.net/weixin_44257107/article/details/136532423

2.3 huggingface连接不稳定解决方案

使用nano gradio_app_sdxl_specific_id_low_vram.py命令打开文件进行编辑

bash
nano gradio_app_sdxl_specific_id_low_vram.py

在代码中加入os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"

bash
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"

完成修改后,Ctrl+x完成保存,选择Y确定保存,Enter确认修改后的文件名称并回到终端

在终端中设置环境变量HF_ENDPOINT=https://hf-mirror.com

python gradio_app_sdxl_specific_id_low_vram.py

bash
HF_ENDPOINT=https://hf-mirror.com python gradio_app_sdxl_specific_id_low_vram.py

如果前面已经添加了accelerate库则不会报错

2.4 运行程序

输入python gradio_app_sdxl_specific_id_low_vram.py运行,可以使用学术加速加快加载速度

bash
python gradio_app_sdxl_specific_id_low_vram.py

学术加速命令 :source /etc/network_turbo

bash
source /etc/network_turbo

如图所示,7860端口成功与本地8888端口建立连接,说明运行成功,本地可通过8888端口进行访问

3. 本地部署WEB访问

3.1 使用终端通过SSH进行访问

3.1.1 打开你的终端或命令提示符。

3.1.2 执行SSH命令。

3.1.3 假设:

  • 远程服务器的IP地址是your-server-ip。
  • 你在远程服务器上的用户名是root。
  • 远程服务器上Stable Diffusion应用运行的端口是7860。
  • 你想要将此服务映射到本地机器的8888端口。

3.1.4 命令格式如下:

bash
ssh -CNg -L 8888:localhost:7860 root@your-server-ip -p 22

在星海智算平台创建实例之后,就能在实例界面看见你所创建的实例的ip相关数据

在浏览器地址栏中输入localhost:8888 进行访问