Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
loveisland
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘小敏
loveisland
Commits
1100a35c
Commit
1100a35c
authored
Jun 08, 2026
by
刘小敏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化日志
parent
7ef2101c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
41 deletions
+41
-41
AiImgGen.php
addons/shopro/job/AiImgGen.php
+9
-9
AiVideoGen.php
addons/shopro/job/AiVideoGen.php
+6
-6
AiVideoRetry.php
addons/shopro/job/AiVideoRetry.php
+20
-20
Ai.php
addons/shopro/service/user/Ai.php
+6
-6
No files found.
addons/shopro/job/AiImgGen.php
View file @
1100a35c
...
...
@@ -39,7 +39,7 @@ class AiImgGen extends BaseJob
// }
// exit;
$this
->
debug_log
(
'== '
.
date
(
'Y-m-d H:i:s'
)
.
'[AI图片异步队列]AI图片生成脚本开始 userid '
.
$user_id
.
' id:'
.
$id
.
'=='
.
PHP_EOL
,
$user_id
);
$this
->
debug_log
(
'== '
.
date
(
'Y-m-d H:i:s'
)
.
'[
'
.
$id
.
'][
AI图片异步队列]AI图片生成脚本开始 userid '
.
$user_id
.
' id:'
.
$id
.
'=='
.
PHP_EOL
,
$user_id
);
// 校验入参
if
(
empty
(
$id
)
||
empty
(
$user_id
))
{
...
...
@@ -53,24 +53,24 @@ class AiImgGen extends BaseJob
// 查询tryon报表
$tryOn
=
AiTryOnModel
::
where
(
'id'
,
$id
)
->
find
();
if
(
!
$tryOn
)
{
$this
->
debug_log
(
'[AI图片异步队列][删除job]用户ID:'
.
$user_id
.
' id:'
.
$id
.
' 试戴记录不存在'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI图片异步队列][删除job]用户ID:'
.
$user_id
.
' id:'
.
$id
.
' 试戴记录不存在'
,
$user_id
);
$job
->
delete
();
return
false
;
}
if
(
$tryOn
->
ai_status
!==
0
)
{
$this
->
debug_log
(
'[AI图片异步队列][删除job]用户ID:'
.
$user_id
.
' id:'
.
$id
.
' 试戴记录已完成'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI图片异步队列][删除job]用户ID:'
.
$user_id
.
' id:'
.
$id
.
' 试戴记录已完成'
,
$user_id
);
$job
->
delete
();
return
false
;
}
$this
->
debug_log
(
'[AI图片异步队列] AI生成图片接口入参 :用户ID:'
.
$user_id
.
' tryondata:'
.
json_encode
(
$tryOn
->
toArray
()),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI图片异步队列] AI生成图片接口入参 :用户ID:'
.
$user_id
.
' tryondata:'
.
json_encode
(
$tryOn
->
toArray
()),
$user_id
);
// 合成AI图
$aiService
=
new
Ai
();
$res
=
$aiService
->
generateImage
(
$tryOn
->
toArray
(),
$user_id
,
'url'
);
$this
->
debug_log
(
'[AI图片异步队列] AI生成图片接口出参 :用户ID:'
.
$user_id
.
' res:'
.
json_encode
(
$res
),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI图片异步队列] AI生成图片接口出参 :用户ID:'
.
$user_id
.
' res:'
.
json_encode
(
$res
),
$user_id
);
// 我的试戴
if
(
$res
[
'code'
]
===
0
)
{
...
...
@@ -84,7 +84,7 @@ class AiImgGen extends BaseJob
$attachment
=
$aiService
->
saveFileLoc
(
isset
(
$res
[
'data'
])
?
$res
[
'data'
]
:
''
,
'.png'
,
'gen_ai'
,
$user_id
);
// 记录入参日志
$this
->
debug_log
(
'[AI生成图片接口] user_id:'
.
$user_id
.
' 保存到本地接口接口出参:'
.
json_encode
(
$attachment
),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI生成图片接口] user_id:'
.
$user_id
.
' 保存到本地接口接口出参:'
.
json_encode
(
$attachment
),
$user_id
);
if
(
$attachment
===
0
)
{
AiTryOnModel
::
where
(
'id'
,
$id
)
->
where
(
'user_id'
,
$user_id
)
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
'图片上传失败'
,
'user_id'
=>
$user_id
]);
...
...
@@ -98,7 +98,7 @@ class AiImgGen extends BaseJob
// 发送消息通知
$aiService
->
sendNotification
(
$user_id
,
$id
);
$this
->
debug_log
(
'[AI图片异步队列]删除Job'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI图片异步队列]删除Job'
,
$user_id
);
$job
->
delete
();
return
true
;
...
...
@@ -106,14 +106,14 @@ class AiImgGen extends BaseJob
}
catch
(
\Exception
$e
)
{
AiTryOnModel
::
where
(
'id'
,
$id
)
->
where
(
'user_id'
,
$user_id
)
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
'图片生成异常'
,
'user_id'
=>
$user_id
]);
$this
->
debug_log
(
'[AI图片异步队列]异常: id:'
.
$id
.
' userId '
.
$user_id
.
' LastSql:'
.
db
()
->
getLastSql
(),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI图片异步队列]异常: id:'
.
$id
.
' userId '
.
$user_id
.
' LastSql:'
.
db
()
->
getLastSql
(),
$user_id
);
format_log_error_custom_name
(
$e
,
'[AI图片异步队列] user_id:'
.
$user_id
,
''
,
'gen_ai'
);
// !empty($video_url) && $this->deleteLocalVideo($video_url); // 删除保存到本地的视频,如果已经保存了的话
// 删除队列job
$this
->
debug_log
(
'[AI图片异步队列]删除Job'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI图片异步队列]删除Job'
,
$user_id
);
$job
->
delete
();
}
...
...
addons/shopro/job/AiVideoGen.php
View file @
1100a35c
...
...
@@ -29,7 +29,7 @@ class AiVideoGen extends BaseJob
$id
=
$data
[
'id'
];
$user
=
$data
[
'user'
];
$user_id
=
isset
(
$user
[
'id'
])
?
$user
[
'id'
]
:
0
;
$this
->
debug_log
(
'=='
.
date
(
'Y-m-d H:i:s'
)
.
'[AI视频生成异步队列]生成AI视频脚本开始 userid:'
.
$user_id
.
' id:'
.
$id
.
'=='
.
PHP_EOL
,
$user_id
);
$this
->
debug_log
(
'=='
.
date
(
'Y-m-d H:i:s'
)
.
'[
'
.
$id
.
'][
AI视频生成异步队列]生成AI视频脚本开始 userid:'
.
$user_id
.
' id:'
.
$id
.
'=='
.
PHP_EOL
,
$user_id
);
// 开发过程中的临时代码 调试用
// $this->sendNotification($user_id, $taskid);
...
...
@@ -39,7 +39,7 @@ class AiVideoGen extends BaseJob
// 校验入参
if
(
empty
(
$id
)
||
empty
(
$user_id
))
{
$this
->
debug_log
(
'[AI视频生成异步队列][删除Job]入参有空值 tryon_id:'
.
$id
.
' user_id:'
.
$user_id
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列][删除Job]入参有空值 tryon_id:'
.
$id
.
' user_id:'
.
$user_id
,
$user_id
);
// 删除队列job
$job
->
delete
();
...
...
@@ -51,14 +51,14 @@ class AiVideoGen extends BaseJob
// 检查记录是否存在
if
(
!
$tryon
)
{
$this
->
debug_log
(
'[AI视频生成异步队列][删除Job]试戴记录不存在: id='
.
$id
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列][删除Job]试戴记录不存在: id='
.
$id
,
$user_id
);
$job
->
delete
();
return
false
;
}
// 检查是否已有任务ID(去重)
if
(
!
empty
(
$tryon
[
'ai_task_id'
])
||
$tryon
[
'ai_status'
]
!==
0
)
{
$this
->
debug_log
(
'[AI视频生成异步队列][删除Job]已有任务ID,跳过: id='
.
$id
.
', task_id='
.
$tryon
[
'ai_task_id'
],
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列][删除Job]已有任务ID,跳过: id='
.
$id
.
', task_id='
.
$tryon
[
'ai_task_id'
],
$user_id
);
$job
->
delete
();
return
false
;
}
...
...
@@ -72,7 +72,7 @@ class AiVideoGen extends BaseJob
$tryonModel
=
new
AiTryOnModel
();
$tryonModel
->
where
(
'id'
,
$id
)
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
$res
[
'msg'
]]);
$this
->
debug_log
(
'[AI视频生成异步队列][删除Job]合成AI视频失败 tryon_id:'
.
$id
.
' user_id:'
.
$user_id
.
' msg:'
.
$res
[
'msg'
],
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列][删除Job]合成AI视频失败 tryon_id:'
.
$id
.
' user_id:'
.
$user_id
.
' msg:'
.
$res
[
'msg'
],
$user_id
);
// 删除队列job
$job
->
delete
();
...
...
@@ -96,7 +96,7 @@ class AiVideoGen extends BaseJob
}
catch
(
\Exception
$e
)
{
// 队列执行失败,记录日志并删除队列job
format_log_error_custom_name
(
$e
,
'[AI视频生成异步队列][异常][删除Job] user_id:'
.
$user_id
,
''
,
'gen_ai'
);
format_log_error_custom_name
(
$e
,
'[
'
.
$id
.
'][
AI视频生成异步队列][异常][删除Job] user_id:'
.
$user_id
,
''
,
'gen_ai'
);
// 删除队列job
$job
->
delete
();
...
...
addons/shopro/job/AiVideoRetry.php
View file @
1100a35c
...
...
@@ -44,15 +44,15 @@ class AiVideoRetry extends BaseJob
$user
=
$data
[
'user'
];
$user_id
=
isset
(
$user
[
'id'
])
?
$user
[
'id'
]
:
0
;
$this
->
debug_log
(
' =='
.
date
(
'Y-m-d H:i:s'
)
.
' [AI视频查询异步队列]查询AI视频状态脚本开始 userid '
.
$user_id
.
' taskid:'
.
$taskid
.
' id:'
.
$id
.
'=='
.
PHP_EOL
,
$user_id
);
$this
->
debug_log
(
' =='
.
date
(
'Y-m-d H:i:s'
)
.
' [
'
.
$id
.
'][
AI视频查询异步队列]查询AI视频状态脚本开始 userid '
.
$user_id
.
' taskid:'
.
$taskid
.
' id:'
.
$id
.
'=='
.
PHP_EOL
,
$user_id
);
// 校验入参
if
(
empty
(
$id
)
||
empty
(
$user_id
)
||
empty
(
$taskid
))
{
$this
->
debug_log
(
'[AI视频查询异步队列]入参有空值 tryon_id:'
.
$id
.
' user_id:'
.
$user_id
.
' taskid:'
.
$taskid
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]入参有空值 tryon_id:'
.
$id
.
' user_id:'
.
$user_id
.
' taskid:'
.
$taskid
,
$user_id
);
// 删除队列job
$this
->
debug_log
(
'[AI视频查询异步队列]删除Job'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]删除Job'
,
$user_id
);
$job
->
delete
();
return
false
;
}
...
...
@@ -68,7 +68,7 @@ class AiVideoRetry extends BaseJob
'allow_redirects'
=>
true
];
$this
->
debug_log
(
'[AI视频查询异步队列]请求AI接口入参 user_id:'
.
$user_id
.
' AI接口url:'
.
$url
.
' params:'
.
json_encode
(
$params
),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]请求AI接口入参 user_id:'
.
$user_id
.
' AI接口url:'
.
$url
.
' params:'
.
json_encode
(
$params
),
$user_id
);
// 向AI接口 发送请求
$client
=
new
Http
();
...
...
@@ -78,7 +78,7 @@ class AiVideoRetry extends BaseJob
$content
=
preg_replace
(
'/[^\x20-\x7E]/'
,
''
,
$content
);
$result
=
json_decode
(
$content
,
true
);
$this
->
debug_log
(
'[AI视频查询异步队列]请求AI接口出参 response:'
.
json_encode
(
$result
),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]请求AI接口出参 response:'
.
json_encode
(
$result
),
$user_id
);
// 2. AI接口 返回值处理 接口失败场景
if
(
isset
(
$result
[
'error'
])){
...
...
@@ -89,7 +89,7 @@ class AiVideoRetry extends BaseJob
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
$message
]);
// 删除队列job
$this
->
debug_log
(
'[AI视频查询异步队列]删除Job'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]删除Job'
,
$user_id
);
$job
->
delete
();
return
false
;
}
...
...
@@ -104,22 +104,22 @@ class AiVideoRetry extends BaseJob
$aiService
=
new
Ai
();
$video_url
=
$aiService
->
saveFileLoc
(
isset
(
$result
[
'content'
][
'video_url'
])
?
$result
[
'content'
][
'video_url'
]
:
''
,
'.mp4'
,
'gen_ai'
,
$user_id
);
$this
->
debug_log
(
'[AI视频查询异步队列]保存本地接口返回值 video_url:'
.
$video_url
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]保存本地接口返回值 video_url:'
.
$video_url
,
$user_id
);
if
(
$video_url
===
0
){
AiTryOnModel
::
where
(
'user_id'
,
$user_id
)
->
where
(
'ai_task_id'
,
$taskid
)
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
'视频保存到本地失败'
]);
$this
->
debug_log
(
'[AI视频查询异步队列]保存本地视频失败 sql: '
.
db
()
->
getLastSql
(),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]保存本地视频失败 sql: '
.
db
()
->
getLastSql
(),
$user_id
);
}
// 更新我的试戴记录
AiTryOnModel
::
where
(
'user_id'
,
$user_id
)
->
where
(
'ai_task_id'
,
$taskid
)
->
update
([
'ai_status'
=>
1
,
'ai_url'
=>
config
(
'shopro.api_host'
)
.
$video_url
,
'ai_err_msg'
=>
'视频已完成'
]);
$this
->
debug_log
(
'[AI视频查询异步队列]保存本地视频成功 sql: '
.
db
()
->
getLastSql
(),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]保存本地视频成功 sql: '
.
db
()
->
getLastSql
(),
$user_id
);
// 发送成功消息通知
$aiService
->
sendNotification
(
$user_id
,
$id
);
// 删除队列job
$this
->
debug_log
(
'[AI视频查询异步队列]删除Job'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]删除Job'
,
$user_id
);
$job
->
delete
();
break
;
...
...
@@ -136,12 +136,12 @@ class AiVideoRetry extends BaseJob
][
$result
[
'status'
]];
AiTryOnModel
::
where
(
'user_id'
,
$user_id
)
->
where
(
'ai_task_id'
,
$taskid
)
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
$msg
]);
$this
->
debug_log
(
'[AI视频查询异步队列]AI视频任务 过期: taskId: '
.
$taskid
.
'userId '
.
$user_id
,
$user_id
);
$this
->
debug_log
(
'[AI视频查询异步队列]AI视频任务 过期: result:'
.
json_encode
(
$result
),
$user_id
);
$this
->
debug_log
(
'[AI视频查询异步队列]AI视频任务 过期: sql:'
.
db
()
->
getLastSql
(),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]AI视频任务 过期: taskId: '
.
$taskid
.
'userId '
.
$user_id
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]AI视频任务 过期: result:'
.
json_encode
(
$result
),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]AI视频任务 过期: sql:'
.
db
()
->
getLastSql
(),
$user_id
);
// 删除队列job
$this
->
debug_log
(
'[AI视频查询异步队列]删除Job'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]删除Job'
,
$user_id
);
$job
->
delete
();
break
;
...
...
@@ -161,14 +161,14 @@ class AiVideoRetry extends BaseJob
}
catch
(
\Exception
$e
)
{
AiTryOnModel
::
where
(
'user_id'
,
$user_id
)
->
where
(
'ai_task_id'
,
$taskid
)
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
'视频生成异常'
]);
$this
->
debug_log
(
'[AI视频异步队列]异常: taskId: '
.
$taskid
.
'userId '
.
$user_id
,
$user_id
);
$this
->
debug_log
(
'[AI视频异步队列]异常: sql:'
.
db
()
->
getLastSql
(),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频异步队列]异常: taskId: '
.
$taskid
.
'userId '
.
$user_id
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频异步队列]异常: sql:'
.
db
()
->
getLastSql
(),
$user_id
);
// 队列执行失败
format_log_error_custom_name
(
$e
,
'[AI视频异步队列] user_id:'
.
$user_id
,
''
,
'gen_ai'
);
// 删除队列job
$this
->
debug_log
(
'[AI视频异步队列]删除Job'
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频异步队列]删除Job'
,
$user_id
);
$job
->
delete
();
}
...
...
@@ -189,14 +189,14 @@ class AiVideoRetry extends BaseJob
$data
[
'retry_count'
]
=
$retryCount
;
// 存储到data中
// release(0) 立即放入队尾,release($delay) 延迟后放入队尾
$this
->
debug_log
(
'[AI视频查询异步队列]放入队尾Job: taskId: '
.
$taskid
.
' userId: '
.
$user_id
.
' retryCount: '
.
$retryCount
.
'id: '
.
$id
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]放入队尾Job: taskId: '
.
$taskid
.
' userId: '
.
$user_id
.
' retryCount: '
.
$retryCount
.
'id: '
.
$id
,
$user_id
);
$job
->
release
(
self
::
RETRY_DELAY
);
}
else
{
// 重试次数已达上限,标记失败
AiTryOnModel
::
where
(
'user_id'
,
$user_id
)
->
where
(
'ai_task_id'
,
$taskid
)
->
update
([
'ai_status'
=>
2
,
'ai_err_msg'
=>
'视频生成超时'
]);
$this
->
debug_log
(
'[AI视频查询异步队列]超时未得到结果: taskId: '
.
$taskid
.
'userId '
.
$user_id
.
' retryCount: '
.
$retryCount
.
'id: '
.
$id
,
$user_id
);
$this
->
debug_log
(
'[AI视频查询异步队列][删除Job]超时未得到结果: sql:'
.
db
()
->
getLastSql
(),
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列]超时未得到结果: taskId: '
.
$taskid
.
'userId '
.
$user_id
.
' retryCount: '
.
$retryCount
.
'id: '
.
$id
,
$user_id
);
$this
->
debug_log
(
'[
'
.
$id
.
'][
AI视频查询异步队列][删除Job]超时未得到结果: sql:'
.
db
()
->
getLastSql
(),
$user_id
);
// 删除队列job
$job
->
delete
();
...
...
addons/shopro/service/user/Ai.php
View file @
1100a35c
...
...
@@ -285,7 +285,7 @@ class Ai
// 查询tryon报表
$tryOn
=
AiTryOnModel
::
where
(
'id'
,
$id
)
->
find
();
if
(
!
$tryOn
)
{
custom_log
(
'[AI视频生成异步队列]用户ID:'
.
$userId
.
' id:'
.
$id
.
' 试戴记录不存在'
,
$userId
,
'gen_ai'
);
custom_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列]用户ID:'
.
$userId
.
' id:'
.
$id
.
' 试戴记录不存在'
,
$userId
,
'gen_ai'
);
return
[
'code'
=>
0
,
'msg'
=>
'试戴记录不存在'
...
...
@@ -300,7 +300,7 @@ class Ai
// 保存图片到本地做备份
$attachment
=
$this
->
saveFileLoc
(
isset
(
$resGenImg
[
'data'
])
?
$resGenImg
[
'data'
]
:
''
,
'.png'
,
'gen_ai'
,
$userId
);
custom_log
(
'[AI视频生成异步队列]用户ID:'
.
$userId
.
' id:'
.
$id
.
'图片保存到本地接口接口出参:'
.
json_encode
(
$attachment
),
$userId
,
'gen_ai'
);
custom_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列]用户ID:'
.
$userId
.
' id:'
.
$id
.
'图片保存到本地接口接口出参:'
.
json_encode
(
$attachment
),
$userId
,
'gen_ai'
);
// 调试的时候用,一张AI佩戴饰品的照片
// $resGenImg['data'] = 'https://ark-acg-cn-beijing.tos-cn-beijing.volces.com/doubao-seedream-5-0/02177752801269334e1fb186d00f6ff5c484dce264092c4da58e2_0.jpeg?X-Tos-Algorithm=TOS4-HMAC-SHA256&X-Tos-Credential=AKLTYWJkZTExNjA1ZDUyNDc3YzhjNTM5OGIyNjBhNDcyOTQ%2F20260430%2Fcn-beijing%2Ftos%2Frequest&X-Tos-Date=20260430T054730Z&X-Tos-Expires=86400&X-Tos-Signature=2d109489c534c8bd9e2f9f1820edff8956916da5ee5a477022f6ab8d3024af19&X-Tos-SignedHeaders=host';
...
...
@@ -310,7 +310,7 @@ class Ai
// $prompt = '人物轻动转头,自然微笑眨眼,动作流畅柔和,画面稳定无抖动扭曲,真人高清质感,饰品完整清晰展示,整体优雅自然,无变形穿模悬浮';
// $prompt = '人物微动转头微笑,不要眨眼,动作顺滑画面稳定,高清真人质感,饰品清晰展示,无变形悬浮穿模';
// $prompt = '人物全程全脸出镜,真人实拍质感,自然轻微转头浅笑,双目全程不眨眼,饰品完美展示,画面流畅稳定无卡顿,饰品轮廓细节清晰锐利,杜绝变形、悬浮、穿模问题,整体画质高清细腻。';
$prompt
=
'人物自然微动,轻微转头,微笑,动作柔和流畅,画面稳定不闪烁、不抖动、不扭曲,真实人像质感,高清清晰,耳部饰品完美展示,整体自然优雅,无变形、无穿模、无悬浮'
;
$prompt
=
'人物自然微动,轻微转头,微笑,动作柔和流畅,画面稳定不闪烁、不抖动、不扭曲,真实人像质感,高清清晰,耳部饰品完美展示,整体自然优雅,无变形、无穿模、无悬浮
、无漂浮、无飞动、无悬空、无拉伸、无重复、无错位问题。
'
;
$params
=
[
'headers'
=>
[
'Authorization'
=>
'Bearer '
.
$this
->
api_key
,
...
...
@@ -339,7 +339,7 @@ class Ai
];
// 记录入参日志
custom_log
(
'[AI视频生成异步队列]用户ID:'
.
$userId
.
' AI生成视频接口入参:'
.
json_encode
(
$params
),
$userId
,
'gen_ai'
);
custom_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列]用户ID:'
.
$userId
.
' AI生成视频接口入参:'
.
json_encode
(
$params
),
$userId
,
'gen_ai'
);
// AI接口 发送请求
$client
=
new
Http
();
...
...
@@ -351,7 +351,7 @@ class Ai
$result
=
json_decode
(
$content
,
true
);
// 记录出参日志
custom_log
(
'[AI视频生成异步队列]用户ID:'
.
$userId
.
' AI生成视频接口返回:'
.
json_encode
(
$result
),
$userId
,
'gen_ai'
);
custom_log
(
'[
'
.
$id
.
'][
AI视频生成异步队列]用户ID:'
.
$userId
.
' AI生成视频接口返回:'
.
json_encode
(
$result
),
$userId
,
'gen_ai'
);
return
[
'code'
=>
1
,
...
...
@@ -360,7 +360,7 @@ class Ai
];
}
catch
(
\Exception
$e
)
{
format_log_error_custom_name
(
$e
,
'[AI视频异步队列][生成异常] 用户ID:'
.
$userId
,
''
,
'gen_ai'
);
format_log_error_custom_name
(
$e
,
'[
'
.
$id
.
'][
AI视频异步队列][生成异常] 用户ID:'
.
$userId
,
''
,
'gen_ai'
);
return
[
'code'
=>
0
,
'msg'
=>
'视频生成失败'
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment