Skip to content

Commit ede5e03

Browse files
authored
test: generate cover (#282)
* test: generate cover * docs: update docs
1 parent 710029d commit ede5e03

2 files changed

Lines changed: 82 additions & 1 deletion

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ pip install -r requirements.txt
173173
> [!TIP]
174174
> - 有关自动切片的配置在 `bilive.toml` 文件的 `[slice]` 部分。
175175
> - `auto_slice` 默认为 false, 即不进行自动切片。
176-
> - 可以通过单元测试调试你自己的 prompt,单元测试在 `tests/test_autoslice.py`,执行 `python -m unittest` 即可,后接 `tests.test_autoslice` 测试整个模块,`tests.test_autoslice.TestXXXMain` 测试某个模型。
176+
> - 可以通过单元测试调试你自己的 prompt,单元测试在 `tests/test_autoslice.py`,执行 `python -m unittest` 即可,后接 `tests.test_autoslice` 测试整个模块,`tests.test_autoslice.TestXXXMain` 测试某个模型。部分模型会返回多个标题,请在 prompt 中指出,仅返回一个标题的字符串即可。
177177
178178
MLLM 模型主要用于自动切片后的切片标题生成,此功能默认关闭,如果需要打开请将 `auto_slice` 参数设置为 `true`,并且写下你自己的 `slice_prompt`(可以包含 `{artist}` 关键词会自动替换),其他配置分别有:
179179
- `slice_duration` 以秒为单位设置切片时长(不建议超过 180 秒)。
@@ -196,6 +196,7 @@ MLLM 模型主要用于自动切片后的切片标题生成,此功能默认关
196196
> [!TIP]
197197
> - 有关自动生成视频封面的配置在 `bilive.toml` 文件的 `[cover]` 部分。
198198
> - `generate_cover` 默认为 false, 即不进行自动生成视频封面。
199+
> - 可以通过单元测试调试你自己的 prompt,单元测试在 `tests/test_cover.py`,执行 `python -m unittest` 即可,后接 `tests.test_cover` 测试整个模块,`tests.test_cover.TestXXXMain` 测试某个模型。
199200
200201
采用图生图多模态模型,自动获取视频截图并上传风格变换后的视频封面,如需使用本功能,请将 `generate_cover` 参数设置为 `true`,并且写下你自己的 prompt,注意部分模型只支持英文,接下来需要配置的参数有 image_gen_model 和对应的 api key,请自行根据链接注册账号并且申请对应 api key,填写在对应的参数中,请注意以下模型只有你在 `image_gen_model` 参数中设置的那个模型会生效。
201202

tests/test_cover.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import unittest
2+
from src.cover.image_model_sdk.amazon_sdk import amazon_generate_cover
3+
from src.cover.image_model_sdk.baidu_sdk import baidu_generate_cover
4+
from src.cover.image_model_sdk.hidream_sdk import hidream_generate_cover
5+
from src.cover.image_model_sdk.ideogram_sdk import ideogram_generate_cover
6+
from src.cover.image_model_sdk.kolors_sdk import kolors_generate_cover
7+
from src.cover.image_model_sdk.luma_sdk import luma_generate_cover
8+
from src.cover.image_model_sdk.minimax_sdk import minimax_generate_cover
9+
from src.cover.image_model_sdk.recraft_sdk import recraft_generate_cover
10+
from src.cover.image_model_sdk.stability_sdk import stable_diffusion_generate_cover
11+
from src.cover.image_model_sdk.tencent_sdk import hunyuan_generate_cover
12+
13+
14+
class BaseTest(unittest.TestCase):
15+
file_path = "your_image_path"
16+
17+
18+
class TestAmazonMain(BaseTest):
19+
def test_amazon_generate_cover(self):
20+
cover_path = amazon_generate_cover(self.file_path)
21+
self.assertIsNotNone(cover_path)
22+
print(cover_path, flush=True)
23+
24+
25+
class TestBaiduMain(BaseTest):
26+
def test_baidu_generate_cover(self):
27+
cover_path = baidu_generate_cover(self.file_path)
28+
self.assertIsNotNone(cover_path)
29+
print(cover_path, flush=True)
30+
31+
class TestHidreamMain(BaseTest):
32+
def test_hidream_generate_cover(self):
33+
cover_path = hidream_generate_cover(self.file_path)
34+
self.assertIsNotNone(cover_path)
35+
print(cover_path, flush=True)
36+
37+
class TestIdeogramMain(BaseTest):
38+
def test_ideogram_generate_cover(self):
39+
cover_path = ideogram_generate_cover(self.file_path)
40+
self.assertIsNotNone(cover_path)
41+
print(cover_path, flush=True)
42+
43+
class TestKolorsMain(BaseTest):
44+
def test_kolors_generate_cover(self):
45+
cover_path = kolors_generate_cover(self.file_path)
46+
self.assertIsNotNone(cover_path)
47+
print(cover_path, flush=True)
48+
49+
class TestLumaMain(BaseTest):
50+
def test_luma_generate_cover(self):
51+
cover_path = luma_generate_cover(self.file_path)
52+
self.assertIsNotNone(cover_path)
53+
print(cover_path, flush=True)
54+
55+
class TestMinimaxMain(BaseTest):
56+
def test_minimax_generate_cover(self):
57+
cover_path = minimax_generate_cover(self.file_path)
58+
self.assertIsNotNone(cover_path)
59+
print(cover_path, flush=True)
60+
61+
class TestRecraftMain(BaseTest):
62+
def test_recraft_generate_cover(self):
63+
cover_path = recraft_generate_cover(self.file_path)
64+
self.assertIsNotNone(cover_path)
65+
print(cover_path, flush=True)
66+
67+
class TestStabilityMain(BaseTest):
68+
def test_stable_diffusion_generate_cover(self):
69+
cover_path = stable_diffusion_generate_cover(self.file_path)
70+
self.assertIsNotNone(cover_path)
71+
print(cover_path, flush=True)
72+
73+
class TestTencentMain(BaseTest):
74+
def test_hunyuan_generate_cover(self):
75+
cover_path = hunyuan_generate_cover(self.file_path)
76+
self.assertIsNotNone(cover_path)
77+
print(cover_path, flush=True)
78+
79+
if __name__ == "__main__":
80+
unittest.main()

0 commit comments

Comments
 (0)