编辑任何东西

segment这是一个正在进行的项目,旨在编辑和生成图像中的任何内容,由Segment AnythingControlNet、 BLIP2Stable Diffusion等提供支持。

 

一个有趣的项目。非常欢迎任何形式的贡献和建议!

消息

2023/04/12 - 文本引导编辑的初始版本在sam2groundingdino_edit.py(对象级)和sam2vlpart_edit.py(部件级)中。

2023/04/10 - edit-anything 的初始版本在sam2edit.py.

2023/04/10 - 我们将预训练模型转换为扩散器样式,使用时自动加载预训练模型sam2image_diffuser.py。现在您可以轻松地将我们的预训练模型与不同的基础模型结合起来!

2023/04/09 - 我们发布了一个基于 StableDiffusion 的 ControlNet 预训练模型,该模型生成由 SAM 分割调节的图像。

特征

突出特点:

  • 以 SAM 掩码为条件的预训练 ControlNet 可以通过细粒度控制生成图像。
  • 与类别无关的 SAM 掩码支持更多形式的编辑和生成。
  • BLIP2 文本生成可实现无文本引导控制。

通过 Text-Grounding 和 Segment-Anything 编辑特定事物

通过文本引导的零件遮罩进行编辑

文本接地:“狗头”

人类提示:“可爱的狗” 

文本接地:“猫眼”

人类提示:“一只可爱的小人形猫” 

 

 

通过文本引导的对象遮罩进行编辑

文本接地:“长凳”

人类提示:“长凳” 

 

按段编辑任何内容

人类提示:“灿烂的夕阳天空,红砖墙” 

人类提示:“湖边的椅子,晴天,春天”  edit-anything 的初始版本。(我们将很快添加更多对蒙版的控制。)

 

通过 Segment-Anything 生成任何东西

BLIP2 Prompt: "a large white and red ferry" 

 (1: input image; 2: segmentation mask; 3-8: generated images.)

BLIP2 提示:“多云的天空” 

BLIP2提示:“一架黑色无人机在蓝天飞翔” 

 

  1. 人工提示和 BLIP2 生成的提示构建文本指令。
  2. SAM 模型对输入图像进行分割,生成没有类别的分割掩码。
  3. 分割掩码和文本指令指导图像生成。

注意:由于 SAM 数据集中的隐私保护,生成的图像中的人脸也被模糊了。我们正在训练具有清晰图像的新模型来解决这个问题。

进行中

  • 在 SAM 数据集中使用 85k 个样本训练的条件生成。

  • 使用来自 LAION 和 SAM 的更多图像进行训练。

  • 对不同蒙版的交互控制以进行图像编辑。

  • 使用Grounding DINO进行类别相关的自动编辑。

  • ChatGPT 引导图像编辑。

设置

创建环境

    conda env create -f environment.yaml
    conda activate control

安装 BLIP2 和 SAM

将这些模型放在models文件夹中。

pip install git+https://github.com/huggingface/transformers.git

pip install git+https://github.com/facebookresearch/segment-anything.git

# For text-guided editing
pip install git+https://github.com/openai/CLIP.git

pip install git+https://github.com/facebookresearch/detectron2.git

pip install git+https://github.com/IDEA-Research/GroundingDINO.git

下载预训练模型

# Segment-anything ViT-H SAM model. 
cd models/
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth

# BLIP2 model will be auto downloaded.

# Part Grounding Swin-Base Model.
wget https://github.com/Cheems-Seminar/segment-anything-and-name-it/releases/download/v1.0/swinbase_part_0a0000.pth

# Grounding DINO Model.
wget https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha2/groundingdino_swinb_cogcoor.pth

# Get edit-anything-ckpt-v0-1.ckpt pretrained model from huggingface. 
# No need to download this if your are using sam2image_diffuser.py!!! But please install safetensors for reading the ckpt.
https://huggingface.co/shgao/edit-anything-v0-1

运行演示

python sam2image_diffuser.py
# or 
python sam2image.py
# or 
python sam2edit.py
# or
python sam2vlpart_edit.py
# or
python sam2groundingdino_edit.py

如果您有 GUI 来运行 gradio 演示,请在这些文件中设置“use_gradio = True”。

训练

  1. 生成训练数据集dataset_build.py
  2. segmentsegmentControlNet用 传输稳定扩散模型tool_add_control_sd21.py
  3. 训练模型sam_train_sd21.py

致谢

本项目基于:

Segment Anything , ControlNet , BLIP2 , MDT , 稳定扩散大规模无监督语义分割Grounded Segment Anything:从对象到零件Grounded-Segment-Anything

感谢这些惊人的项目!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于LSP(Language Server Protocol)的C/C++程序编辑与编译服务需要以下几个关键组件: 1. 编辑器/客户端:这可以是任何支持LSP的编辑器或IDE,例如Visual Studio Code、Sublime Text、Vim等。编辑器通过LSP与服务端进行通信,发送请求并接收响应。 2. 语言服务器:语言服务器是一个独立的进程,负责处理客户端发送的请求并返回响应。对于C/C++语言,可以使用clangd作为语言服务器。clangd提供了代码补全、跳转到定义、重构等功能,以及代码的静态分析和编译。 3. 编译器/工具链:C/C++语言需要一个编译器来将源代码编译为可执行文件。在服务端中,你需要安装适当的C/C++编译器(例如GCC、Clang)和相关的工具链。 4. 代码分析工具:为了提供更多的代码分析和智能提示功能,你可能需要使用其他代码分析工具,如Clang-Tidy、Cppcheck等。这些工具可以帮助检查代码中的潜在问题或错误,并提供建议。 5. 构建系统:服务端需要一个构建系统来编译和构建C/C++项目。常见的构建系统包括Make、CMake等。你需要确保你的构建系统配置正确,并能与语言服务器配合使用。 6. 服务器端代码:这是一个运行在服务器上的代码,负责与客户端进行通信,并提供C/C++编辑和编译服务。服务器端代码需要实现LSP协议,处理客户端的请求并返回响应。 通过以上组件的组合,你可以搭建一个基于LSP的C/C++程序编辑与编译服务,提供代码补全、导航、重构等功能,以及对代码的静态分析和编译支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值