本项目提供 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的应用,可在其他客户机上单独运行。