[NOTE] 该项目仍在建设中,我们将继续更新,并欢迎社区的贡献/拉取请求。
| |InternGPT(简称 iGPT) / InternChat(简称 iChat) 是一种基于指向语言驱动的视觉交互系统,允许您使用指向设备通过点击、拖动和绘制与 ChatGPT 进行互动。internGPT 的名称代表了 interaction(交互)、nonverbal(非语言)和 ChatGPT。与依赖纯语言的现有交互系统不同,通过整合指向指令,iGPT 显著提高了用户与聊天机器人之间的沟通效率,以及聊天机器人在视觉为中心任务中的准确性,特别是在复杂的视觉场景中。此外,在 iGPT 中,采用辅助控制机制来提高 LLM 的控制能力,并对一个大型视觉-语言模型 Husky 进行微调,以实现高质量的多模态对话(在ChatGPT-3.5-turbo评测中达到 93.89% GPT-4 质量)。
-
(2023.05.24) 🎉🎉🎉 现在已经支持DragGAN! 使用方法请参考视频演示。赶紧来体验这个新功能吧: Demo.
-
(2023.05.15) model_zoo 已经公开,里面包含了HuskyVQA! 赶紧在你自己的机器上部署试试吧!
-
(2023.05.15) 我们的代码在 Hugging Face也同步更新! 你可以复制一份仓库,然后使用自己的GPU运行demo。
InternGPT 上线了 (请访问: https://igpt.opengvlab.com). 赶紧来体验吧! [注意] 可能会出现排队等待较长时间。您可以clone我们的仓库并使用您自己的GPU运行。
更新:
(2023.05.24) 我们现在支持 DragGAN。你可以按照以下步骤试用:
- 点击
New Image
按钮; - 点击图片,其中蓝色表示起点,红色表示终点;
- 注意蓝色点的个数要和红色点的个数相同。然后你可以点击
Drag It
按钮; - 处理完成后,你会收到一张编辑后的图片和一个展示编辑过程的视频。
(2023.05.18) 我们现在已支持 ImageBind。如果你想根据音频生成一张新的图片,你可以提前上传一个音频文件:
- 从单个音频生成新的图片,你可以发送如下消息:
"generate a real image from this audio"
; - 从音频和文本生成新的图片,你可以发送如下消息:
"generate a real image from this audio and {your prompt}"
; - 从音频和图片生成新的图片,你需要再上传一个图片,然后发送如下消息:
"generate a new image from above image and audio"
;
主要功能使用:
在图片上传成功后, 您可以发送如下消息与iGPT进行多模态相关的对话:"what is it in the image?"
or "what is the background color of image?"
.
您同样也可以交互式地操作、编辑或者生成图片,具体如下:
- 点击图片上的任意位置,然后按下
Pick
按钮,预览分割区域。您也可以按下OCR
按钮,识别具体位置处存在的所有单词; - 要在图像中 删除掩码区域,您可以发送如下消息:
“remove the masked region”
; - 要在图像中 替换掩码区域的物体为其他物体,您可以发送如下消息:
“replace the masked region with {your prompt}”
; - 想 生成新图像,您可以发送如下消息:
“generate a new image based on its segmentation describing {your prompt}”
; - 想通过 涂鸦创建新图像,您应该按下
Whiteboard
按钮并在白板上绘制。绘制完成后,您需要按下保存
按钮并发送如下消息:“generate a new image based on this scribble describing {your prompt}”
。
dragGAN_demo2.mp4
video_demo_with_imagebind.mp4
online_demo.mp4
- 支持中文
- 支持 MOSS
- 基于 InternImage 和 InternVideo 的更强大的基础模型
- 更准确的交互体验
- OpenMMLab Toolkit
- 网页 & 代码生成
- 支持搜索引擎
- 低成本部署
- 支持 DragGAN
- 支持 ImageBind
- Agent响应验证
- 提示词优化
- 用户手册和视频demo
- 支持语音助手
- 支持点击交互
- 交互式图像编辑
- 交互式图像生成
- 交互式视觉问答
- Segment Anything模型
- 图像修复
- 图像描述
- 图像抠图
- 光学字符识别(OCR)
- 动作识别
- 视频描述
- 视频密集描述
- 视频高光时刻截取
- Linux
- Python 3.8+
- PyTorch 1.12+
- CUDA 11.6+
- GCC & G++ 5.4+
- GPU Memory > 17G 用于加载基本工具 (HuskyVQA, SegmentAnything, ImageOCRRecognition)
pip install -r requirements.txt
我们模型库 model_zoo
正式在huggingface公开!在运行我们的demo前,你需要先将model_zoo
下载到本地,然后放进项目的根目录下面。
小彩蛋:HuskyVQA模型也在model_zoo
里开源了!经我们测试,HuskyVQA的视觉问答能力达到了业界顶尖水平。更多细节请参考我们的report。
请提前将model_zoo
和certificate
文件添加到项目的根目录下面, 然后将docker/InternGPT_CN/docker-compose.yml
中的/path/to/InternGPT
变量修改为项目根目录。
你可以修改docker/InternGPT_CN/docker-compose.yml
文件中command
部分的load
变量来运行更多的功能。
cd docker/InternGPT_CN
# 构建镜像并运行一个容器
docker compose up
# 或者启动一个交互式BASH会话
docker compose run -i --entrypoint /bin/bash igpt_cn
运行以下 shell 可启动一个 gradio 服务:
python -u app.py --load "HuskyVQA_cuda:0,SegmentAnything_cuda:0,ImageOCRRecognition_cuda:0" --port 3456 -e
如果您想启用语音助手,请使用 openssl 生成证书:
mkdir certificate
openssl req -x509 -newkey rsa:4096 -keyout certificate/key.pem -out certificate/cert.pem -sha256 -days 365 -nodes
然后运行:
python -u app.py --load "HuskyVQA_cuda:0,SegmentAnything_cuda:0,ImageOCRRecognition_cuda:0" --port 3456 --https -e
如果您想减少响应时间并且有足够的显存容量,请移除命令中的-e
选项。
该项目根据Apache 2.0 license发布。
如果您在研究中发现这个项目有用,请考虑引用我们的论文:
@article{2023interngpt,
title={InternGPT: Solving Vision-Centric Tasks by Interacting with ChatGPT Beyond Language},
author={Liu, Zhaoyang and He, Yinan and Wang, Wenhai and Wang, Weiyun and Wang, Yi and Chen, Shoufa and Zhang, Qinglong and Yang, Yang and Li, Qingyun and Yu, Jiashuo and others},
journal={arXiv preprint arXiv:2305.05662},
year={2023}
}
感谢以下开源项目:
Hugging Face LangChain TaskMatrix SAM Stable Diffusion ControlNet InstructPix2Pix BLIP Latent Diffusion Models EasyOCR ImageBind DragGAN
如果您在试用、运行、部署中有任何问题,欢迎加入我们的微信群讨论!如果您对项目有任何的想法和建议,欢迎加入我们的微信群讨论!
加入微信群组二维码: