跳转至

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]

获取项目下的所有参考图片(如背景美术、道具设计等)。

for ref_img in project.reference_images():
    print(f"{ref_img.file_name} - {ref_img.category}")

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

project.update_settings(
    agent_model="gpt-4.1",
    feature_flags={"translationTable": True},
)

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]

获取项目下的所有漫画资源。

for manga in project.mangas():
    print(f"{manga.title} by {manga.author}")

novels() -> Generator[Novel, None, None]

获取项目下的所有小说资源。

for novel in project.novels():
    print(f"{novel.title} by {novel.author}")

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]

搜索项目中的片段。详细参数说明请参阅 搜索 章节。

for clip in project.search(query="桜"):
    print(clip.subtitle)

数据模型关系

Project
├── Video[]              # 视频列表
│   ├── Clip[]           # 片段列表
│   ├── VideoResource[]  # 视频附属资源(剧本、香盘表等)
│   ├── PredictCreator[] # 预测创作者
│   └── PredictCharacter[]  # 预测角色
├── Character[]          # 角色列表
├── ReferenceImage[]     # 参考图片列表
├── Resource[]           # 其他材料/资源
├── TranslationTable[]   # 翻译表
├── Manga[]              # 漫画列表
├── Novel[]              # 小说列表
└── Metadata[]           # 动态元数据列表