Project (项目)¶
Project 是 AIMage SDK 的核心模型,代表一个动画/影视制作项目。通过 Project 可以访问其下的所有资源。
获取项目¶
# 获取所有项目
for project in client.projects():
print(f"{project.name} - {project.description}")
# 查找特定项目
projects = list(client.projects())
target = next(p for p in projects if p.name == "MyProject")
属性¶
| 属性 | 类型 | 说明 |
|---|---|---|
id |
str |
项目唯一标识 |
name |
str |
项目名称 |
description |
str | None |
项目描述 |
created_at |
datetime |
创建时间 |
updated_at |
datetime |
更新时间 |
organization_id |
str | None |
所属组织 ID |
owner_id |
str | None |
所有者 ID |
embedding_model_version |
int | None |
embedding 模型版本 |
pipeline_version |
int | None |
pipeline 版本 |
is_active |
bool |
项目是否启用 |
stat |
dict | None |
项目统计信息 |
script_knowledge |
dict | None |
剧本知识配置 |
season_name_number_mapping |
dict[str, int] | None |
季名称到编号的映射 |
episode_number_encoding |
str | None |
集数编码方式 |
agent_model |
str | None |
项目使用的 agent 模型 |
feature_flags |
dict |
功能开关 |
extra |
dict |
后端返回的额外字段 |
方法¶
videos() -> Generator[Video, None, None]¶
获取项目下的所有视频,支持分页惰性加载。
for video in project.videos():
print(f"S{video.season_number}E{video.episode_number}: {video.name}")
print(f" 时长: {video.duration:.1f}s")
print(f" 分辨率: {video.width}x{video.height}")
characters() -> Generator[Character, None, None]¶
获取项目下的所有角色。
for character in project.characters():
print(f"{character.name} ({'主角' if character.is_protagonist else '配角'})")
print(f" 特征: {', '.join(character.features)}")
resources(file_type=None, folder_path=None) -> Generator[Resource, None, None]¶
获取项目下的其他材料/资源。可按文件类型和文件夹过滤。
for resource in project.resources(file_type="resources"):
print(f"{resource.name}: {resource.folder_path}")
reference_images() -> Generator[ReferenceImage, None, None]¶
获取项目下的所有参考图片(如背景美术、道具设计等)。
translation_tables(q=None, page=1, size=300) -> Generator[TranslationTable, None, None]¶
获取项目下的翻译表。
for table in project.translation_tables(q="Character"):
print(f"{table.name}: {table.row_count} rows")
创建资料的便捷方法¶
Project 实例提供创建子资源的快捷入口,等价于调用 client.create_*() 并自动传入 project.id。
| 方法 | 说明 |
|---|---|
create_resource(**fields) |
创建其他材料/资源 |
create_reference_image(**fields) |
创建参考图像 |
create_character(**fields) |
创建角色 |
create_translation_table(**fields) |
创建翻译表 |
project.create_character(name="司", name_en="Tsukasa")
project.create_resource(name="notes.md", file_path="materials/notes.md")
project.create_translation_table(
name="Terms",
columns=[
{"key": "ja", "label": "日本語", "index": 0},
{"key": "en", "label": "English", "index": 1},
],
)
update_settings(...)¶
更新项目设置,可设置 agent_model 或直接传 feature_flags。
set_feature_flags(...)¶
设置 SDK 包装好的功能开关。
project.set_feature_flags(
image_generation=True,
translation_table=True,
material_reading=True,
clip_embedding_search=True,
)
mangas() -> Generator[Manga, None, None]¶
获取项目下的所有漫画资源。
novels() -> Generator[Novel, None, None]¶
获取项目下的所有小说资源。
metadata() -> Generator[Metadata, None, None]¶
获取项目的动态元数据信息。详细说明请参阅 Metadata 模型。
for metadata in project.metadata():
print(f"{metadata.category} - {metadata.name} ({metadata.category_type})")
for option in metadata.options:
print(f" {option.key}: {option.value}")
search(...) -> Generator[Clip, None, None]¶
搜索项目中的片段。详细参数说明请参阅 搜索 章节。
数据模型关系¶
Project
├── Video[] # 视频列表
│ ├── Clip[] # 片段列表
│ ├── VideoResource[] # 视频附属资源(剧本、香盘表等)
│ ├── PredictCreator[] # 预测创作者
│ └── PredictCharacter[] # 预测角色
├── Character[] # 角色列表
├── ReferenceImage[] # 参考图片列表
├── Resource[] # 其他材料/资源
├── TranslationTable[] # 翻译表
├── Manga[] # 漫画列表
├── Novel[] # 小说列表
└── Metadata[] # 动态元数据列表