本项目提供 Airbox(算能SG2300X inside)AIGC能力的一站式体验。
- 连接 Airbox 的方式:请参考 Airbox Wiki。
- 当前可以在Airbox运行的应用如列表所示,部分已经接入到本项目。欢迎参考开发指南将这些应用以及其他实用有趣的应用接入进来。
模块名称 | 功能描述 | 内存占用 | 兼容openai api | 视频教程 |
---|---|---|---|---|
roop_face | 人像换脸 人脸增强 |
/v1/images/variations /v1/images/edit |
||
sd_lcm_tpu | 文生图 图生图 语义超分 |
/v1/images/generations /v1/images/edits /v1/images/variations |
||
img2txt | 看图说话、生成图像描述 | /v1/images/variations |
||
upscaler_tpu | 图像超分 | /v1/images/variations |
||
emotivoice | 文本转语音(支持情感控制) 音色克隆 |
/v1/audio/speech /v1/audio/translation |
||
gptsovits | 音色克隆 | 2203 MB | /v1/audio/speech |
|
flowmirror | 语音对话(目前效果不佳) | 4375 MB | /v1/audio/translation |
|
whisper | 语音转文本 | 844 MB | /v1/audio/transcriptions |
|
rmbg | 图像去背景 | 256 MB | /v1/images/edit |
|
llm_tpu | 大语言模型(Phi3, Qwen1.5, Qwen2.5, MiniCPM-V2.6, MiniCPM3) |
~ 1.5-5 G | /v1/chat/completions |
|
sherpa | 语音转文本 | ~ 255 MB | /v1/audio/transcriptions |
此处的内容与 app.txt
中一致。app.txt中每行的第一列是该仓库作为模块的名称,第二列是对应的 github 仓库地址,第三列是该模块的功能类别。
注意:
- 这些应用仓库在本项目中作为模块使用,因此名称可能与原始的仓库不同(模块名仅能包含字母、数字和下划线,且不能以数字开头)。
- GitHub仓库必须是当前用户有访问权限的(建议直接设置为public)。
用户使用上一节列表中的应用,仅需要按照以下步骤操作。
git clone https://github.com/ZillaRU/AigcHub-TPU.git && bash scripts/init_env.sh
* 如果本项目有更新的版本,建议先执行 git pull
更新本项目代码。
执行下面的命令:
bash scripts/init_app.sh app.txt中的模块名称
其中 app.txt中的模块名称
可以是多个,用空格分开。比如 bash scripts/init_app.sh emotivoice roop_face
。
这一步会从github获取模块的源码、配置环境、下载默认的模型文件。
-
执行
bash scripts/run.sh 模块名称
模块名称可以是多个,用空格分隔。例如,同时启动生图和换脸应用bash scripts/run.sh image_gen roop_face
。请注意,由于Airbox的 TPU 内存限制,部分应用不能同时启动,内存修改的方法请参考docs。
-
出现上图中的输出后,浏览器访问
盒子ip:8000/docs
,此时可以看到后台开始启动各模块的应用。启动完毕后,显示如图: -
查看并测试接口:选择对应接口并点击
Try it out
即可在当前选项卡编辑请求并发送,response 将会显示在下方。各 API 的 request定义可以在页面最下方看到。 -
以whisper模块为例,其Request和返回值与openai的
/v1/audio/transcriptions
兼容。POST的形式统一为f"http://{ip}:8000/{appname}/{openai_api}"
,如:http://localhost:8000/whisper_tpu/v1/audio/transcriptions
### 测试命令示例 curl http://localhost:8000/whisper_tpu/v1/audio/transcriptions \ -F 'file=@/data/AigcHub-TPU/repo/whisper_tpu/datasets/test/demo.wav;type=audio/wav' \ -F 'model=base'
-
以llm_tpu模块为例
参考samples文件夹,调用api的应用,可在其他客户机上单独运行。