如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

这篇具有很好参考价值的文章主要介绍了如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言 - 浅谈 AIGC

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

AIGC - 引领人工智能走向春天

随着人工智能技术的发展与完善,AI Generated Content (AIGC,人工智能自动生成内容) 在内容的创作上为人们的工作和生活带来前所未有的帮助,具体表现在能够帮助人类提高内容生产的效率,丰富内容生产的多样性、提供更加动态且可交互的内容。AIGC 相关技术可以在创意、表现力、迭代、传播、个性化等方面,充分发挥技术优势,打造新的数字内容生成与交互形态。在这两年AIGC在AI作画、AI 作曲、AI 作诗、AI写作、AI视频生成、 AI语音合成等领域持续大放异彩;尤其是近段时间火遍全网的AI绘画,作为用户的我们只要简单输入几个关键词几秒钟之内一幅画作就能诞生。

春天里盛开的 AI 绘画

最近以AIGC带来巨大生产力提升的时尚宠儿不断进化升级,争相亮相。我们迎来ChatGPT 系列技术带给我们一波又一波的AI盛宴,而在计算机视觉领域,AI 绘画近两年正在逐渐走向图像生成舞台的中央。

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署
文本生成图像(AI 绘画)是根据文本生成图像的的新型生产方式,相比于人类创作者,文本生成图像展现出了创作成本低、速度快且易于批量化生产的优势。

AI 绘画之Stable Diffusion 2.0 登场

近一年来,AI绘画领域迅猛发展,国内外科技巨头和初创企业争相涌入,出现了不少文本生成图像的技术产品。这些产品背后主要使用基于扩散生成算法的 dall-e-2 和 stable diffusion 等模型。

2022年 Stable Diffusion 2.0 版本的发布,再次点燃了无数创作者使用AI文本图像生成技术来生成高质量创意图像的热情 ,如下图所示,Stable Diffusion相关代码仓库,gitHub star 数量正在飞速增长:

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

与 Stable Diffusion 上一个版本相比,Stable Diffusion 2.0 取得了更加优异的图像生成效果,具体表现如下:

  1. 通过在模型体系结构中引入交叉注意力层,将扩散模型转化为强大而灵活的生成器,用于文本或边界框等一般条件输入,并以卷积方式实现高分辨率图像生成;
  2. 基于 latent diffusion models(LDM)在图像修复和类条件图像合成方面获得了目前最优的分数;
  3. 在多项任务上都取得了非常有竞争力的表现,包括无条件图像生成、文本到图像合成和超分辨率;
  4. 同时与 pixel-based 扩散模型方法相比显著降低了计算要求,使得它的推理速度大大提升。

人人都有机会成为前沿的技术探索者

Stable Diffusion 2.0 和 chatGPT 等系列模型在计算机视觉和自然语言处理两大AI应用领域的优异表现, 引起学术界和工业界的极大轰动,人工智能事业发展似乎迎来了又一个春天。

众所周知,随着 AI 任务复杂性和应用范围增加,高精度大规模不断涌现,AI模型的训练和推理对算力的要求越来越高,对于中小企业和个人开发者而言,如果想训练或者部署稍微大的AI模型就不得不面对购买大量算力资源高投入的风险,而具备高算力资源的企业则能够有机会把握住各种神奇AIGC技术全面开花落地的历史机遇。

我们普通的创业者和开发者,有没有机会去训练和部署我们所看好领域的AIGC模型呢,答案是肯定的,在当下这个云服务时代,人人都有机会成为前沿的技术探索者。

最近受邀参加了亚马逊云科技 『云上探索实验室』实践云上技术的系列活动,通过Amazon SageMaker 平台快速完成 AIGC模型推理服务在线web部署,带给我很多启发和惊喜,原来在云端进行AI模型推理部署可以如此简洁,优雅、流畅。在参加这次活动实践的过程中,我也学到了很多有益的知识和技能, 接下来的博文就会以我的一次AIGC模型(Stable Diffusion 2.0 )web服务部署之旅带大家一起体验如何在云端去落地AI模型服务:

  • 传送门:Stable Diffusion 2.0 GitHub 仓库

  • 传送门:亚马逊云科技之云上探索实验室活动:从实践中探索机器学习边界

基于Amazon SageMaker进行Stable Diffusion 模型部署

认识 Amazon SageMaker

Amazon SageMaker 是一项完全托管的机器学习服务:借助SageMaker的多种功能,数据科学家和开发人员可以快速轻松地构建和训练机器学习模型,然后直接部署至生产环境就绪的托管环境。SageMaker涵盖了ML 的整个工作流,可以标记和准备数据、选择算法、训练模型、调整和优化模型以便部署、预测和执行操作。

经过过去一周多的学习和实践体验,我发现这个平台简直就是为我们这些创业者和个人开发者量身打造的AI服务落地利器。许多AI工程项目,我们只需去构造好自己的训练集和测试集,其余的模型训练、推理、部署,Amazon SageMaker 都能够帮我们轻松完成。

本次博文所分享的 Stable Diffusion 2.0,通过参考官方提供的技术文档,只用了 20分钟左右的时间,我就在Amazon SageMaker 上成功搭建了一套流畅的AI绘画在线服务,接下来,让我们一起揭秘。

借助 Amazon SageMaker 进行环境搭建和模型推理

1. 创建 jupyter notebook 运行环境

  • 点击链接登录至亚马逊云科技管理控制台

在搜索框中搜索 SageMaker ,如下图所示

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

这里我们创建一个笔记本编程实例

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

我这里选择的配置如下:

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

选择角色,其他的默认即可

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

大概5分钟左右,实例就创建成功啦

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

  • 点击链接,下载代码

上传刚刚下载的代码

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

直接打开这个代码

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

选择合适的conda环境

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

2. 一键运行所有代码

这里我们直接一键运行运行所有代码即可,代码执行过程中会依次完成 Stable Diffusion 模型相关类和函数的代码定义、推理测试,并打包代码和模型,然后部署模型至Sagemaker 推理终端节点 (PS:这里的所有代码运行完毕大概需要5到10分钟左右)

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

关键代码分析如下

1. 环境准备,代码模型下载

检查当前 pyTorch 版本

!nvcc --version
!pip list | grep torch

安装 Stable Diffusion 代码运行额外需要的依赖库,这网速飞快

!sudo yum -y install pigz
!pip install -U pip
!pip install -U transformers==4.26.1 diffusers==0.13.1 ftfy accelerate
!pip install -U torch==1.13.1+cu117 -f https://download.pytorch.org/whl/torch_stable.html
!pip install -U sagemaker
!pip list | grep torch

下载代码和模型文件,这里直接下载Hugging Face提供的代码和模型即可

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

2. 在Notebook中配置并使用模型

直接调用 函数进行模型加载

import torch
import datetime
from diffusers import StableDiffusionPipeline
# Load stable diffusion 
pipe = StableDiffusionPipeline.from_pretrained(SD_MODEL, torch_dtype=torch.float16)

在 Cuda 上进行模型的推理,这里 Stable Diffusion V2 能够支持生成的最大图像尺寸为 768 * 768

# move Model to the GPU
torch.cuda.empty_cache()
pipe = pipe.to("cuda")

# V1 Max-H:512,Max-W:512
# V2 Max-H:768,Max-W:768

print(datetime.datetime.now())
prompts =[
    "Eiffel tower landing on the Mars",
    "a photograph of an astronaut riding a horse,van Gogh style",
]
generated_images = pipe(
    prompt=prompts,
    height=512,
    width=512,
    num_images_per_prompt=1
).images  # image here is in [PIL format](https://pillow.readthedocs.io/en/stable/)

print(f"Prompts: {prompts}\n")
print(datetime.datetime.now())

for image in generated_images:
    display(image)

友情提示 :如果报错,遇到推理时 GPU 内存不够,则可以尝试以下三种方式进行解决

  1. 试一试生成分辨率小一点的图片
  2. 减少生成图片的数量
  3. 升级机型,选择更强的GPU服务器

3. 部署模型至Sagemaker 推理终端节点

我们这里直接使用 AWS 的 SageMaker Python 开发工具包部署模型刚刚已经验证能够运行成功的模型和打包好的代码。

  • 编写初始化的Sagemaker代码用于部署推理终端节点
import sagemaker
import boto3

'''
# 创建 Session
'''
sess = sagemaker.Session()
# sagemaker session bucket -> used for uploading data, models and logs
# sagemaker will automatically create this bucket if it not exists
sagemaker_session_bucket=None

if sagemaker_session_bucket is None and sess is not None:
    # set to default bucket if a bucket name is not given
    sagemaker_session_bucket = sess.default_bucket()

try:
    role = sagemaker.get_execution_role()
except ValueError:
    iam = boto3.client('iam')
    role = iam.get_role(RoleName='sagemaker_execution_role')['Role']['Arn']

sess = sagemaker.Session(default_bucket=sagemaker_session_bucket)

print(f"sagemaker role arn: {role}")
print(f"sagemaker bucket: {sess.default_bucket()}")
print(f"sagemaker session region: {sess.boto_region_name}")
  • 创建 inference.py 脚本,进行模型的加载和推理
%%writefile ./$SD_MODEL/code/inference.py
import base64
import torch
from io import BytesIO
from diffusers import StableDiffusionPipeline

'''
# 加载模型到CUDA
'''
def model_fn(model_dir):
    # Load stable diffusion and move it to the GPU
    pipe = StableDiffusionPipeline.from_pretrained(model_dir, torch_dtype=torch.float16)
    pipe = pipe.to("cuda")

    return pipe

'''
# 推理方法
'''
def predict_fn(data, pipe):

    # 解析参数 get prompt & parameters
    prompt = data.pop("prompt", "")
    # set valid HP for stable diffusion
    height = data.pop("height", 512)
    width = data.pop("width", 512)
    num_inference_steps = data.pop("num_inference_steps", 50)
    guidance_scale = data.pop("guidance_scale", 7.5)
    num_images_per_prompt = data.pop("num_images_per_prompt", 1)
    # 传入参数,调用推理 run generation with parameters
    generated_images = pipe(
        prompt=prompt,
        height=height,
        width=width,
        num_inference_steps=num_inference_steps,
        guidance_scale=guidance_scale,
        num_images_per_prompt=num_images_per_prompt,
    )["images"]

    # create response
    encoded_images = []
    for image in generated_images:
        buffered = BytesIO()
        image.save(buffered, format="JPEG")
        encoded_images.append(base64.b64encode(buffered.getvalue()).decode())

    # create response
    return {"generated_images": encoded_images}

在 Amazon Cloud9 创建前后端 Web 应用

AWS Cloud9 是一种基于云的集成开发环境 (IDE),只需要一个浏览器,即可编写、运行和调试代码。包括一个代码编辑器、调试程序和终端,并且预封装了适用于 JavaScript、Python、PHP 等常见编程语言的基本工具,无需安装文件或配置开发计算机,即可开始新的项目。

  • 这里我直接参考官方提供的手册,跟着操作即可完成 Web 服务的部署

1. 创建云服务实例,并进行web环境安装

这里我试用了 Cloud9 云服务,在查找服务处搜索 Cloud9,并点击进入Cloud9服务面板即可

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

点击创建环境

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

我这里的设置如下

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

其他部分配置保持默认,在页面底部点击橙色的 Create 按钮创建环境。 环境的创建将花费1-2分钟的时间。

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

创建成功之后,点击 open 进入服务控制台

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

粘贴左侧的代码,复制到控制台bash窗口进行运行,会自动下载和解压代码

cd ~/environment
wget https://static.us-east-1.prod.workshops.aws/public/73ea3a9f-37c8-4d01-ae4e-07cf6313adac/static/code/SampleWebApp.zip
unzip SampleWebApp.zip

#  在 AWS Cloud9 上安装 Flask 和 boto3
pip3 install Flask

pip3 install boto3

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

2. 运行启动web服务,输入想要生成的图像参数和提示词,调用推理服务

依赖的环境安装好之后,就可以运行这个服务代码

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

服务启动成功之后,访问 127.0.0.1:8080 即可访问本地服务;设定 width 和 Length 参数,以及想要生成的图片描述,然后点击提交

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

等待 几秒钟之后,就得到了上面输入的两个 提示词对应生成的图像,看得出来效果还是非常不错的;

  • 经测试发现,即使每次输入的提示词是同一个,模型生成得到的输出也是不固定的
  • 输入的提示词语越精准,生成的图像效果会容易越好
  • 基于亚马逊SageMaker服务平台,如此快速(熟练之后,不到半个小时)就能搭建好一套AI模型的web端在线推理调用,果然好的技术就是第一生产力

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

3. 文本图像生成示例

这里提供3组文本图像生成的示例,方便各位同学参考:

提示词 生成图像示例1 生成图像示例2
A rabbit is piloting a spaceship 如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署 如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署
Driverless car speeds through the desert 如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署 如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署
A small cabin on top of a snowy mountain in the style of Disney, artstation 如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署 如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

4. Stable Diffusion 2.0 模型效果优缺点分析

目前业界已经有不少文本图像生成的服务和模型推出,Stable Diffusion 2.0 的图像生成效果,整体上我觉得相当惊艳,优点很明显:

  1. 能够直接支持 512x512像素和768x768像素的图像生成,生成图像的整体质量和局部细节都有显著提升,其次在超分辨率高阶Diffusion模型加持下,Stable Diffusion 2.0 可以进一步生成分辨率2K以上的高清图像。
  2. 对文本词汇的解析比较精准,推理速度相比之前版本有较大提升,整体来看非常高效、鲁棒,超越目前业界很多模型。

不足之处,Stable Diffusion 2.0 对于过短和过长的文本提示词生成的图像可能效果差异很大,这意味着有的时候,如果想要生成得到更加贴近我们预期的图像,需要对专业的文本提示词汇有所了解,使得输入的文本提示词更加精准和容易让模型理解。

亚马逊云科技之云上探索实验室

亚马逊云服务使用体验总结

通过此次深度参与亚马逊云科技之云上探索实验室活动并上手实践不同AI项目的云端服务部署,我进一步认识到 AWS(Amazon Web Services)的强大所在:

  1. 可扩展性:AWS允许用户根据业务需要轻松扩展服务器资源,能够帮助客户节省成本、提高效率;
  2. 可靠性:AWS 拥有持续领先的云服务基础设施,具有高度可靠的分布式架构,能够在全球业务范围内提供稳定可靠的服务;
  3. 安全性:AWS 提供各种安全功能和工具,有效帮助用户保护数据和应用程序;
  4. 灵活性:AWS 提供各种可定制的服务和功能,以满足用户的特定需求;
  5. 可信赖:AWS 在业界树立良好的企业形象和服务口碑,早已成为全球数百万企业和个人客户的云转型首选。

AWS 相比其他云服务厂商,还具备以下优点:

  1. 亚马逊云科技为 AWS 提供全球覆盖广泛、服务深入的云平台,已有超过 200 项功能齐全的服务可供使用;
  2. 提供有一套构建于 AWS 之上的按需付费的生产效率应用程序,使得团队用户能够快速、安全、经济高效地检查项目状态、进行内容协作,并实现实时通信;
  3. 提供最广泛、最深入的机器学习服务及配套的云基础设施和广泛验证的算法模型,从而使每位开发人员、数据科学家和专家从业者都能利用机器学习技术高效切入AI服务的落地和部署;
  4. 提供全方位的在线开发工具,用户能够更快、更高效地托管代码以及构建、测试和部署应用程序;

前沿技术有待大家一起去探索

这次有幸受邀参加亚马逊云科技【云上探索实验室】活动,跟着亚马逊云科技技术团队提供的系列非常详尽的 AI模型云上推理部署实战文档和视频教程一步步进行真实的云上服务部署操作,让我再次认识到AI在各个领域技术突破所带来的强大生产力,而通过借助 亚马逊 SageMaker 平台进行AI模型服务部署大大简化我们普通开发者进行AI模型部署服务的难度,使得对于中小企业和个人开发者而言,AI服务的快速落地也不再是一件难事。

  • 教程链接,小伙伴们有兴趣的话,也可以参考SageMaker平台提供的AIGC模型部署官方文档和我这里的博客进行尝试,部署自己的AIGC模型

通过使用 亚马逊 SageMaker 服务平台,我们只需要一个浏览器,即可编写、运行和调试各种代码,无需进行复杂的机器适配和环境搭建,能够快速完成AI模型的推理、测试、验证部署工作。

如果你也想亲身感受最新、最热门的亚马逊云科技开发者工具与服务,那么只需点击下方链接,即可跟着亚马逊云科技团队工程师一起对更多有趣的AI技术进行探索与实践,出击吧,AI 追梦人

  • 亚马逊云科技之云上探索实验室活动:从实践中探索机器学习边界

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

率先完成学习打卡小伙伴,还有丰厚奖品可以领取哟

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署文章来源地址https://www.toymoban.com/news/detail-412151.html

到了这里,关于如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python如何解决Amazon亚马逊“图文验证码”识别(6)

    前言 本文是该专栏的第55篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏前面,笔者有详细介绍多种登录验证码识别方法,感兴趣的同学可往前翻阅。而本文,笔者将单独详细介绍 亚马逊 Amazon 的图文识别验证码的解决方法。 如上图所示,访问或请求频次达到

    2024年02月14日
    浏览(45)
  • 亚马逊测评:如何有效使用IP和养号设备环境

     随着网络科技的崛起,越来越多的本土企业入驻亚马逊电子商务平台上,这导致了对产品评价需求的激增。然而,评价并非随意进行,它需要多方面的资源,并需要密切注意一些重要环节。以下是我分享给大家一些宝贵的知识: 1. 邮箱资源:需要一个能够接收信息的邮箱。

    2024年02月11日
    浏览(40)
  • 突破亚马逊智能检测,全自动化运营的新利器:亚马逊鲲鹏系统

    在亚马逊运营的道路上一般最为棘手的问题之一就是账号关联和安全性。而亚马逊鲲鹏系统它不仅拥有最新的防指纹技术,还能够完全模拟真实的人类行为,让每个账号都拥有独立环境运行,从而保证账号的安全性,让用户摆脱了账号关联的困扰。 1、IP方面的独特技术 亚马

    2024年02月22日
    浏览(55)
  • 亚马逊云国际站代理商:亚马逊云搭建代理ip服务器教程

    目录 亚马逊云国际站代理商:亚马逊云搭建代理ip服务器教程 亚马逊云国际站代理商:亚马逊云搭建代理IP服务器教程 1. 什么是代理服务器? 2. 为什么选择AWS亚马逊云? 3. 使用AWS亚马逊云搭建代理IP服务器的步骤 总结 简介: 飞机@luotuoemo 本文由(亚马逊国际站代理商:【聚

    2024年04月10日
    浏览(57)
  • 亚马逊账户评级多久更新一次,亚马逊账户评级一般多少分-站斧浏览器

    亚马逊账户评级多久更新一次? 亚马逊的账户评级通常每天都会更新一次。这意味着您的账户的表现和健康状况将每天进行评估和更新。评级通常在UTC时间午夜更新,但具体的更新时间可能因地区而异。 亚马逊的账户评级反映了您作为卖家的表现和账户健康状况。它涵盖了

    2024年02月07日
    浏览(54)
  • 如果被亚马逊AWS扣费,应该怎么办啊?(亚马逊AWS服务还是很棒的)

    这两天登录到亚马逊云账号中发现,下个月的未出账单为100多刀,咦,怎么会这样啊!然后我马上*度了一下,被亚马逊云扣费应该怎么办,按照网友经验,我试了一下,还真管用,现在把这个过程记录下来,如果有需要这方面帮助的朋友,可以借鉴试试看。希望能帮到各位看

    2024年02月11日
    浏览(51)
  • 亚马逊cdn配置

    登录后 进入桶管理 https://s3.console.aws.amazon.com/s3/buckets?region=us-east-1 创建一个新桶 基本都是默认点击 注意下面两个点 1 所有权    2 权限   创建cdn https://us-east-1.console.aws.amazon.com/cloudfront/v3/home?region=us-east-1#/distributions 关联好上面创建的桶即可, 其他默认  

    2024年02月13日
    浏览(52)
  • 亚马逊开店指南

    亚马逊跨境电商平台是一个非常不错的选择,随着电商平台的不断发展,很多新手卖家想要进入跨境电商行业,但是苦于不了解亚马逊,所以迟迟没有行动,今天给大家分享一些关于亚马逊开店的知识,希望对大家有所帮助。 在亚马逊平台上开店是非常简单的,只要提供相关

    2024年02月14日
    浏览(38)
  • 亚马逊AWS使用计费问题

    之前新建了两个ec2实例,第一个没有绑定弹性IP,第二个绑定了弹性IP,之后终止了第二个实例,然后绑定的弹性IP也就释放了。 问题在于第二天亚马逊发了邮件,说了因为弹性IP计费的问题,大概是说弹性ip未关联任何实例,所以会每小时0.005美元计费  之后Google查了一下,大

    2024年02月11日
    浏览(44)
  • 做亚马逊会遇到哪些坑?

    不要听服务商告诉你的,只有店铺产品足够了,才会有订单,才能爆单。这种人是不懂的。因为在亚马逊自己送货实际上比联邦快,难多了。首先,大规模的铺货容易侵权,还有就是发货供应商,不稳定,订单是在亚马逊发的1688,说缺货,也会导致店铺被封。真正的自我发货

    2024年02月06日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包