添加艾特角色功能

This commit is contained in:
Azmat@qq.com
2026-09-17 18:31:29 +08:00
parent 5df038c635
commit abccf4393a
18 changed files with 2769 additions and 182 deletions
+9 -3
View File
@@ -129,7 +129,7 @@ def _refresh_processing_free_asset(free_asset: FreeAsset) -> bool:
return False
def _guard_asset_reference(asset: Asset, label: str) -> None:
def _guard_asset_reference(asset: Asset, label: str, ref_type: str = "") -> None:
"""三库引用前的审核闸(模块4 · 4.2)。
平台生成的资产免审直接过;用户上传的必须真过一遍审核才能当生成参考。
@@ -140,7 +140,13 @@ def _guard_asset_reference(asset: Asset, label: str) -> None:
"""
from apps.assets.review import poll_asset_review, reference_review_state, wait_upload_review
state = reference_review_state(asset)
# Seedance 对人物类参考图不区分「用户上传」还是「平台生成」:只要像真人,普通 URL
# 都可能触发 PrivacyInformation。人物语义或审核类资产必须先登记,再以 asset:// 引用。
require_registered = (
ref_type in {"model", "character"}
or asset.category in Asset.REVIEW_CATEGORIES
)
state = reference_review_state(asset, require_registered=require_registered)
if state == "processing":
poll_asset_review(asset)
state = reference_review_state(asset)
@@ -314,7 +320,7 @@ def build_content_items(
asset = Asset.objects.filter(id=ref["asset_id"], team=team, is_deleted=False).first()
if asset is None:
raise ValueError(f"素材「{label or '未命名'}」不存在或已被删除")
_guard_asset_reference(asset, label)
_guard_asset_reference(asset, label, ref_type)
from .services import _asset_preview_url, _seedance_ref_url
raw_url = _asset_preview_url(asset)