Grounded-Segment-Anything icon indicating copy to clipboard operation
Grounded-Segment-Anything copied to clipboard

add Tag2Text and avoid usage issues

Open positive666 opened this issue 1 year ago • 11 comments

非常感谢分享这么好的项目供给学习,由于我不知道这个PR是否会merge,所以我基于自己的使用体验,仅做如下修改:

  1. 适配了Tag2Text的项目,有BUG可能是因为transfomers的版本问题,因为你们更新速度比较快。这里我提供下一种问题:”按照Tag2Text作者提供的4.15.0是完全可以推理正常的,如果安装4.15.0后导致别的比如grounded的transformer兼容问题,缓存下载后可以再切换回自己的高版本就可以了“,目前我的工作目录是兼容的。
  2. huggfingface SD模型有些大了,这样调用时候容易断掉,看Issue很多同学不知道缓存在哪里并且系统的目录累积大模型占据空间并不好,所以加了接口的cache_dir指定安装,还有autoLabel脚本中的gpt是否启动; 再次感谢你们团队的工作,CVPR的论文我正在精读中,期待你们release grounded with text的训练部分,并且基于工程部分的应用和算法我也有许多想法和想做的

positive666 avatar Apr 14 '23 03:04 positive666

非常感谢分享这么好的项目供给学习,由于我不知道这个PR是否会merge,所以我基于自己的使用体验,仅做如下修改:

  1. 适配了Tag2Text的项目,有BUG可能是因为transfomers的版本问题,因为你们更新速度比较快。这里我提供下一种问题:”按照Tag2Text作者提供的4.15.0是完全可以推理正常的,如果安装4.15.0后导致别的比如grounded的transformer兼容问题,缓存下载后可以再切换回自己的高版本就可以了“,目前我的工作目录是兼容的。
  2. huggfingface SD模型有些大了,这样调用时候容易断掉,看Issue很多同学不知道缓存在哪里并且系统的目录累积大模型占据空间并不好,所以加了接口的cache_dir指定安装,还有autoLabel脚本中的gpt是否启动; 再次感谢你们团队的工作,CVPR的论文我正在精读中,期待你们release grounded with text的训练部分,并且基于工程部分的应用和算法我也有许多想法和想做的

非常非常感谢你的贡献!我们一定会merge你的PR,这边我们会先体验一下!非常欢迎作为contributor!

rentainhe avatar Apr 14 '23 04:04 rentainhe

@positive666 直接用Tag2Text预测的tag的话,会有比较多的形容词,以及无关的名词,比如demo1.jpg,会出来诸如“family”这样的词,对GroundingDINO检测效果不好,建议chatgpt过滤一下

Andy1621 avatar Apr 14 '23 04:04 Andy1621

一个建议: text2tag整个文件夹是不是可以先不引入,在需要的时候使用git clone引入,这样可以减少核心代码的量,比如我们对于whisper,diffusers的处理

SlongLiu avatar Apr 14 '23 05:04 SlongLiu

对于SD部分的改进感觉很好啊,有没有考虑分成两个PR我们先合并一个,text2tag部分我们先测试一下

SlongLiu avatar Apr 14 '23 05:04 SlongLiu

对于SD部分的改进感觉很好啊,有没有考虑分成两个PR我们先合并一个,text2tag部分我们先测试一下

OK

positive666 avatar Apr 14 '23 05:04 positive666

@Andy1621 是的,Tag2TEXT有个标题输入的参数可以调节,我看GPT过滤你们已经做了

positive666 avatar Apr 14 '23 05:04 positive666

一个建议: text2tag整个文件夹是不是可以先不引入,在需要的时候使用git clone引入,这样可以减少核心代码的量,比如我们对于whisper,diffusers的处理

是的,我确实一开始打算这样 不过Tag2Text的代码里修改写参数路径 所以看来打算CLONE 修改的分支了

positive666 avatar Apr 14 '23 06:04 positive666

一个建议: text2tag整个文件夹是不是可以先不引入,在需要的时候使用git clone引入,这样可以减少核心代码的量,比如我们对于whisper,diffusers的处理

是的,我确实一开始打算这样 不过Tag2Text的代码里修改写参数路径 所以看来打算CLONE 修改的分支了

嗯嗯,感觉能够直接从第三方导入也可以使得Tag2Text的代码本身更易用

SlongLiu avatar Apr 14 '23 06:04 SlongLiu

关于cache_dir,我觉得默认(不指定参数的情况下)情况下是不是可以和原有dir保持一致,比如默认是None。(因为我看到默认的cache_dir指定成了.cache_dir) 我看目前diffusers的路径是:

# .../diffusers/src/diffusers/utils/constants.py
...
default_cache_path = HUGGINGFACE_HUB_CACHE
...
DIFFUSERS_CACHE = default_cache_path


# .../huggingface_hub/constants.py
# default cache
default_home = os.path.join(os.path.expanduser("~"), ".cache")
hf_cache_home = os.path.expanduser(
    os.getenv(
        "HF_HOME",
        os.path.join(os.getenv("XDG_CACHE_HOME", default_home), "huggingface"),
    )
)
default_cache_path = os.path.join(hf_cache_home, "hub")
HUGGINGFACE_HUB_CACHE = os.getenv("HUGGINGFACE_HUB_CACHE", default_cache_path)

现在情况下,也是可以通过环境变量引入cache dir的。

SlongLiu avatar Apr 14 '23 06:04 SlongLiu

@SlongLiu @rentainhe @Andy1621 Tag2text(transformers==4.15.0)和BLIP的transformers产生了冲突,如果调用这个模型可行的话,我这里是目前没调用BLIP了:选择Tag2text,代码不Import BLIP相关的API函数了。可以测试下。通过三方导入我去试试修改下使用方式和逻辑

positive666 avatar Apr 14 '23 06:04 positive666

@SlongLiu @rentainhe @Andy1621 Tag2text(transformers==4.15.0)和BLIP的transformers产生了冲突,如果调用这个模型可行的话,我这里是目前没调用BLIP了:选择Tag2text,代码不Import BLIP相关的API函数了。可以测试下。通过三方导入我去试试修改下使用方式和逻辑

好的没问题,这边您尝试完我们会及时跟进~

rentainhe avatar Apr 14 '23 07:04 rentainhe