lh пре 1 месец
родитељ
комит
a1bb2ee0e7

+ 2 - 0
app/Services/AIGeneration/AIVideoGenerationService.php

@@ -2812,6 +2812,8 @@ class AIVideoGenerationService
                     'duration' => $inner['duration'] ?? ($outer['duration'] ?? 0),
                     'framespersecond' => $inner['framespersecond'] ?? 0,
                     'error_message' => '',
+                    // 保留token用量(快快AI返回结构:data.data.usage),供积分/token统计使用
+                    'usage' => $inner['usage'] ?? ($outer['usage'] ?? []),
                 ];
                 return $this->processSeedanceSuccessResponse($task, $normalized);
             }

+ 2 - 1
app/Services/Anime/AnimeService.php

@@ -9761,7 +9761,8 @@ class AnimeService
     public function saveActVideoGenerateParams($data) {
         $episode_id = getProp($data, 'episode_id');
         $model = getProp($data, 'video_model');
-        if (!in_array($model, ['zhizhen-20', 'zhizhen-20-fas', 'zhizhen-20-mini'])) {
+        $valid_models = DB::table('mp_video_models')->where('ace_mode', 1)->select('model')->pluck('model')->toArray();
+        if (!in_array($model, $valid_models)) {
             Utils::throwError('20003:该模型不可用');
         }
 

+ 9 - 0
app/Services/PointsService.php

@@ -186,6 +186,15 @@ class PointsService
             return (int)$tokens;
         }
 
+        // kuaikuai(快快AI)返回格式:data.data.usage.total_tokens / completion_tokens
+        // result_json 中已保留规范化后的 usage 字段(queryKuaikuaiTaskStatus 同步)
+        if ($task->api_type === 'kuaikuai') {
+            $tokens = $resultJson['usage']['total_tokens']
+                ?? $resultJson['usage']['completion_tokens']
+                ?? 0;
+            return (int)$tokens;
+        }
+
         // 其他API:优先从 usage 中读取
         $tokens = $resultJson['usage']['total_tokens']
             ?? $resultJson['usage']['completion_tokens']