优化故事版生成
This commit is contained in:
@@ -62,6 +62,23 @@ def get_default_model(capability: str) -> ModelConfig:
|
||||
return qs.filter(is_default=True).order_by("created_at").first() or qs.order_by("created_at").first()
|
||||
|
||||
|
||||
def get_storyboard_image_model() -> ModelConfig:
|
||||
"""故事板出图钉 YunQi gpt-image-2 多图 edits(与手工测通的 curl 同一条链路)。
|
||||
找不到再回落默认图像模型,避免测试/未 seed 环境直接挂。"""
|
||||
pinned = (
|
||||
ModelConfig.objects.select_related("provider")
|
||||
.filter(
|
||||
capability=ModelConfig.Capability.IMAGE,
|
||||
status=ModelConfig.Status.ACTIVE,
|
||||
provider__status="active",
|
||||
provider__name="yunqi",
|
||||
name="gpt-image-2",
|
||||
)
|
||||
.first()
|
||||
)
|
||||
return pinned or get_default_model(ModelConfig.Capability.IMAGE)
|
||||
|
||||
|
||||
def resolve_image_model(key: str | None) -> "ModelConfig | None":
|
||||
"""前端「生图模型选择」→ ModelConfig。用户显式选的可以是 disabled 模型(故不按 status 过滤)。
|
||||
· "volcano" → 火山官方 Seedream(取最新一版)
|
||||
@@ -2625,7 +2642,7 @@ def submit_storyboard(*, project, user, prompt: str = "", shot_ids: list | None
|
||||
adopted_script = project.script_versions.filter(is_adopted=True).first()
|
||||
if adopted_script is None:
|
||||
raise ValueError("script must be adopted before generating storyboard")
|
||||
if get_default_model(ModelConfig.Capability.IMAGE) is None:
|
||||
if get_storyboard_image_model() is None:
|
||||
raise ValueError("no active image model configured")
|
||||
if prompt:
|
||||
meta = dict(project.metadata or {})
|
||||
@@ -3046,7 +3063,7 @@ def poll_storyboard(*, project, user) -> dict:
|
||||
).values_list("request_payload__storyboard_shot", flat=True)
|
||||
if v
|
||||
}
|
||||
model_config = get_default_model(ModelConfig.Capability.IMAGE)
|
||||
model_config = get_storyboard_image_model()
|
||||
extra_prompt = (project.metadata or {}).get("storyboard_prompt", "") or ""
|
||||
spawnable = [s for s in active if str(s.id) not in inflight_shot_ids]
|
||||
slots = max(0, STORYBOARD_MAX_PARALLEL - len(inflight_shot_ids))
|
||||
|
||||
Reference in New Issue
Block a user