自SAM「分割一切」模型推出之后,二创潮就开始了,有想法有行动!飞桨AI Studio开发者会唱歌的炼丹师就创作出SAM进化版,将SAM、Stable Diffusion集成,实现「分割」、「生成」能力二合一,并部署为应用,支持在线使用!
在线免费使用应用
创作者:会唱歌的炼丹师
作者主页:https://aistudio.baidu.com/aistudio/personalcenter/thirdview/338262
【大模型专区】当SAM遇到Stable-Diffusion
https://aistudio.baidu.com/aistudio/projectdetail/6300584
应用使用参数解读:
Text: sam分割图像的分割对象,如输入car,就会把图片中的car进行分割。Prompt: 针对分割对象的可控文本生成,输入对应的PromptAdvanced options: 高级选项
Images: 生成图像数量
Image Resolution: 生成图像分辨率,一般使用为512*512
Control Strength: control model 生成的条件合并到 stable diffsion 模型上的权重,默认为 1
Guess Model: 为使用更多样性的结果,生成后得到不那么遵守图像条件的结果
Segmentation Resolution: 图像分割分辨率
Steps: 推理步长
Guidance Scale: 是一种增加对指导生成(在本例中为文本)以及总体样本质量的条件信号的依从性的方法。它也被称为无分类器引导,简单地说,调整它可以更好的使用图像质量更好或更具备多样性。值介于7和8.5之间通常是稳定扩散的好选择。 默认情况下使用为7.5。
如果值很大, 图像质量可能更好,但对应的多样性会降低
如果值很小, 图像质量可能更差,但对应的多样性会增加
Seed: 随机种子数
eta (DDIM): DDIM采样方法
Added Prompt: 在上述Prompt基础上所额外添加的提示,使生成的图片更好
Negative Prompt: 控制sd生成的图片把那些相关提示过滤
使用技术
Segment Anything: 提示词分割的大模型
ControlNet Canny : 对分割图进行边缘检测,以此作为图像生成的控制条件
Stable Diffusion : 文本到图像的扩散大模型通过Segment Anything Model强大的图像分割能力,我们可以很好的得到分割后的像素图。然后由ControlNet with Stable Diffusion将控制图为不同语义的分割图和文本(prompt)作为控制条件来完成Segment to Image任务。这样Segment Anything Model通过ControlNet与Stable Diffusion进行集成。
fork项目运行
fork该项目
启动进入线上开发环境
建议选择V100 32GB开发环境。
飞桨AI Studio每周运行项目即可免费获得56小时V100 32G算力
安装ppdiffusers依赖
1# 安装paddlenlp和ppdiffusers依赖
2!pip install "paddlenlp>=2.5.2" "ppdiffusers>=0.11.1" safetensors --user
1# 采用Canny边缘检测图片作为控制条件
2!python gradio_canny2image.py
1# 采用ADE20K分割协议的图片作为控制条件
2!python gradio_seg2image_segmenter.py
安装ppsegSAM依赖
1# 安装依赖
2!pip install -r requirements.txt --user
1# 下载样例图片
2!mkdir ~/examples
3%cd ~/examples
4!wget https://paddleseg.bj.bcebos.com/dygraph/demo/cityscapes_demo.png
1# 下载分词表
2%cd ~
3!wget https://bj.bcebos.com/paddleseg/dygraph/bpe_vocab_16e6/bpe_simple_vocab_16e6.txt.gz
1# 运行脚本
2!python scripts/text_to_sam_clip.py --model-type vit_h
AI技术日日迭代,期待各位开发者精彩创作,也诚邀各位开发者加入AI Studio进行开源创作,详细创作激励体系请点击下方链接。
https://aistudio.baidu.com/aistudio/cooperate/appcreation