修改行业提示词带素材库素材未生效的问题

This commit is contained in:
2026-08-03 17:59:45 +08:00
parent d2c85b03df
commit 97edb17062
+39 -1
View File
@@ -27,7 +27,11 @@ from app.services.generation.pipeline.db_lock_service import (
execute_with_lock_timeout,
)
from app.services.video_url import validate_and_get_record_id, get_video_stream_url
from app.services.private_portrait.reference_resolver import batch_resolve_private_portrait_reference_display_urls, resolve_private_portrait_reference_display_urls
from app.services.private_portrait.reference_resolver import (
batch_resolve_private_portrait_reference_display_urls,
resolve_private_portrait_reference_display_urls,
resolve_private_portrait_references,
)
from app.services.resource_signed_url_service import build_resource_signed_url
from app.services.resource_capacity_service import assert_user_resource_capacity_available
from app.services.upload_resource import delete_unbound_upload_resource, upload_reference_file, cleanup_upload_resource_files_after_commit
@@ -405,6 +409,24 @@ async def generate_record_resource(
else:
await get_image_engine(db, record.engine_id)
frozen_engine = _frozen_engine_view(record)
# 触发生成前兜底:私域素材在 GenerationRecord 创建时可能未走 resolve_private_portrait_references
# 导致入库 url 存的是前端预览地址而非供应商需要的 asset://。这里强制重新解析,
# 确保供应商侧拿到正确的 remote_asset_id / asset:// URI。
try:
raw_refs = json.loads(record.media_references) if record.media_references else None
except (TypeError, ValueError):
raw_refs = None
if raw_refs:
resolved_refs = await resolve_private_portrait_references(
db,
user_id=user_id_snapshot,
media_references=raw_refs,
gen_type=record.gen_type,
)
if resolved_refs is not None:
record.media_references = json.dumps(resolved_refs, ensure_ascii=False)
reference_usage = calculate_media_reference_usage(
record.media_references,
include=bool(record.include_media_references),
@@ -547,6 +569,22 @@ async def retry_generation(
else:
await get_image_engine(db, record.engine_id)
frozen_engine = _frozen_engine_view(record)
# 重试前兜底:私域素材 url 可能仍然是预览地址,重新解析确保供应商拿到 asset://
try:
raw_refs = json.loads(record.media_references) if record.media_references else None
except (TypeError, ValueError):
raw_refs = None
if raw_refs:
resolved_refs = await resolve_private_portrait_references(
db,
user_id=user_id_snapshot,
media_references=raw_refs,
gen_type=record.gen_type,
)
if resolved_refs is not None:
record.media_references = json.dumps(resolved_refs, ensure_ascii=False)
reference_usage = calculate_media_reference_usage(
record.media_references,
include=bool(record.include_media_references),