Project Icon

stable-diffusion-deploy

开源项目助力AI艺术生成模型的部署与扩展

项目利用Lightning Apps框架,演示了稳定扩散模型在实际生产环境中的部署流程。核心功能涵盖负载均衡、GPU推理加速、性能评估及微服务协调。通过整合多租户架构、React.js界面、动态GPU处理和弹性扩展等技术,该项目为AI艺术创作领域提供了一套完整的开源解决方案。


Muse

开源的稳定扩散生产服务器,展示如何在真实生产环境中部署扩散模型,包括:负载均衡、GPU推理、性能测试、微服务编排等。所有这些都可以通过Lightning Apps框架轻松处理。

应用在这里上线

如何构建此应用的完整教程

image

模型

Muse使用由stability AI提供的开源Stable Diffusion模型。 我们应用了一些巧妙的技巧使推理速度非常快。

这里是展示我们模型服务器的一小段代码片段

    @torch.inference_mode()
    def predict(self, dreams: List[Data], entry_time: int):
        # 处理超时
        if time.time() - entry_time > INFERENCE_REQUEST_TIMEOUT:
            raise TimeoutException()

        # 设置推理参数
        height = width = IMAGE_SIZE
        num_inference_steps = 50 if dreams[0].high_quality else 25

        prompts = [dream.prompt for dream in dreams]

        # GPU推理
        if torch.cuda.is_available():
            with autocast("cuda"):
                torch.cuda.empty_cache()
                pil_results = self._model(
                    prompts,
                    height=height,
                    width=width,
                    num_inference_steps=num_inference_steps,
                )
            # 应用过滤器
            nsfw_content = self._safety_checker(pil_results)
            for i, nsfw in enumerate(nsfw_content):
                if nsfw:
                    pil_results[i] = Image.open("assets/nsfw-warning.png")
        else:
            time.sleep(3)
            pil_results = [Image.fromarray(np.random.randint(0, 255, (height, width, 3), dtype="uint8"))] * len(prompts)

        # 返回模型结果
        results = []
        for image in pil_results:
            buffered = BytesIO()
            image.save(buffered, format="PNG")
            img_str = base64.b64encode(buffered.getvalue()).decode("utf-8")
            # 确保pil_results是单个项目数组,否则会重写图像
            results.append({"image": f"data:image/png;base64,{img_str}"})

        return results

运行你自己的版本

要在本地运行此应用,请按以下步骤操作:

conda create --name muse_app python=3.9 --yes
conda activate muse_app

git clone https://github.com/Lightning-AI/stable-diffusion-deploy.git
cd stable-diffusion-deploy

bash dev_install.sh

## 在本地运行应用
python -m lightning run app app.py

## 在云端运行应用以与同事和用户分享
python -m lightning run app app.py --cloud

你可以配置Muse来选择自定义的工作线程数、批处理大小或选择你喜欢的稳定扩散版本。了解更多

关于这个Lightning应用

Muse是使用Lightning AI构建基于扩散的生产系统的蓝图。这个应用向你展示了如何:

  • 托管多租户前端和后端应用架构
  • 完整的React.js UI
  • 微服务编排
  • 云基础设施预配置
  • 通过REST API提供GPU支持的扩散模型服务
  • 推理请求的动态GPU批处理
  • 随负载变化自动扩展基础设施的负载均衡器
  • 使用Locust进行负载测试的Lightning组件
  • 环境变量参数化执行环境

Muse的架构图 -

架构图

Slackbot

如何将Muse集成到Slack工作区

你可以将此应用集成到你的Slack工作区,并在Slack频道中发送图片。

此应用使用Slack命令机器人组件与Slack命令交互。

你也可以查看这个视频教程:

如何创建Slack命令机器人

步骤1: 前往https://api.slack.com并创建一个应用。

步骤2: 通过访问https://api.slack.com/apps从Slack API设置中复制以下令牌和密钥。这些令牌必须作为参数或环境变量传递给SlackCommandBot类。

所需的令牌名称和环境变量:
  • 客户端ID(SLACK_CLIENT_ID)
  • 客户端密钥(CLIENT_SECRET)
  • 签名密钥(SIGNING_SECRET)
  • 机器人用户OAuth令牌(BOT_TOKEN)
  • 应用级令牌(SLACK_TOKEN)

步骤3:

实现SlackCommandBot.handle_command(...)方法,以你想要的方式与命令交互。 返回值将只显示给你。

步骤4:(可选)

如果你希望你的Slack应用可以公开分发,那么你需要实现SlackCommandBot.save_new_workspace(...),它应该将team_id及其对应的bot_token保存到数据库中。

handle_command(...)方法中,你需要根据接收到的team_id获取bot_token

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号