genz27 Warp commited on
Commit
749a764
·
1 Parent(s): deb4314

fix: 修复打码配置热加载和模型转换问题

Browse files

- 修复热加载缺少 ezcaptcha/capmonster/capsolver 配置同步

- EZ-Captcha 改用 ReCaptchaV3TaskProxylessS9 高分值版本

- 获取不到 reCAPTCHA token 时直接返回错误

- 修复 TIER_TWO portrait 模型名称转换错误

Co-Authored-By: Warp <agent@warp.dev>

src/core/database.py CHANGED
@@ -1100,6 +1100,12 @@ class Database:
1100
  config.set_captcha_method(captcha_config.captcha_method)
1101
  config.set_yescaptcha_api_key(captcha_config.yescaptcha_api_key)
1102
  config.set_yescaptcha_base_url(captcha_config.yescaptcha_base_url)
 
 
 
 
 
 
1103
 
1104
  # Cache config operations
1105
  async def get_cache_config(self) -> CacheConfig:
 
1100
  config.set_captcha_method(captcha_config.captcha_method)
1101
  config.set_yescaptcha_api_key(captcha_config.yescaptcha_api_key)
1102
  config.set_yescaptcha_base_url(captcha_config.yescaptcha_base_url)
1103
+ config.set_capmonster_api_key(captcha_config.capmonster_api_key)
1104
+ config.set_capmonster_base_url(captcha_config.capmonster_base_url)
1105
+ config.set_ezcaptcha_api_key(captcha_config.ezcaptcha_api_key)
1106
+ config.set_ezcaptcha_base_url(captcha_config.ezcaptcha_base_url)
1107
+ config.set_capsolver_api_key(captcha_config.capsolver_api_key)
1108
+ config.set_capsolver_base_url(captcha_config.capsolver_base_url)
1109
 
1110
  # Cache config operations
1111
  async def get_cache_config(self) -> CacheConfig:
src/services/flow_client.py CHANGED
@@ -503,7 +503,8 @@ class FlowClient:
503
  for retry_attempt in range(max_retries):
504
  # 每次重试都重新获取 reCAPTCHA token
505
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="IMAGE_GENERATION")
506
- recaptcha_token = recaptcha_token or ""
 
507
  session_id = self._generate_session_id()
508
 
509
  # 构建请求 - clientContext 只在外层,requests 内不重复
@@ -576,7 +577,8 @@ class FlowClient:
576
 
577
  # 获取 reCAPTCHA token - 使用 IMAGE_GENERATION action
578
  recaptcha_token, _ = await self._get_recaptcha_token(project_id, action="IMAGE_GENERATION")
579
- recaptcha_token = recaptcha_token or ""
 
580
  session_id = self._generate_session_id()
581
 
582
  json_data = {
@@ -646,7 +648,8 @@ class FlowClient:
646
  for retry_attempt in range(max_retries):
647
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
648
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
649
- recaptcha_token = recaptcha_token or ""
 
650
  session_id = self._generate_session_id()
651
  scene_id = str(uuid.uuid4())
652
 
@@ -731,7 +734,8 @@ class FlowClient:
731
  for retry_attempt in range(max_retries):
732
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
733
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
734
- recaptcha_token = recaptcha_token or ""
 
735
  session_id = self._generate_session_id()
736
  scene_id = str(uuid.uuid4())
737
 
@@ -819,7 +823,8 @@ class FlowClient:
819
  for retry_attempt in range(max_retries):
820
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
821
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
822
- recaptcha_token = recaptcha_token or ""
 
823
  session_id = self._generate_session_id()
824
  scene_id = str(uuid.uuid4())
825
 
@@ -910,7 +915,8 @@ class FlowClient:
910
  for retry_attempt in range(max_retries):
911
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
912
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
913
- recaptcha_token = recaptcha_token or ""
 
914
  session_id = self._generate_session_id()
915
  scene_id = str(uuid.uuid4())
916
 
@@ -998,7 +1004,8 @@ class FlowClient:
998
 
999
  for retry_attempt in range(max_retries):
1000
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
1001
- recaptcha_token = recaptcha_token or ""
 
1002
  session_id = self._generate_session_id()
1003
  scene_id = str(uuid.uuid4())
1004
 
@@ -1203,7 +1210,7 @@ class FlowClient:
1203
  elif method == "ezcaptcha":
1204
  client_key = config.ezcaptcha_api_key
1205
  base_url = config.ezcaptcha_base_url
1206
- task_type = "ReCaptchaV3TaskProxyless"
1207
  elif method == "capsolver":
1208
  client_key = config.capsolver_api_key
1209
  base_url = config.capsolver_base_url
 
503
  for retry_attempt in range(max_retries):
504
  # 每次重试都重新获取 reCAPTCHA token
505
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="IMAGE_GENERATION")
506
+ if not recaptcha_token:
507
+ raise Exception("Failed to obtain reCAPTCHA token")
508
  session_id = self._generate_session_id()
509
 
510
  # 构建请求 - clientContext 只在外层,requests 内不重复
 
577
 
578
  # 获取 reCAPTCHA token - 使用 IMAGE_GENERATION action
579
  recaptcha_token, _ = await self._get_recaptcha_token(project_id, action="IMAGE_GENERATION")
580
+ if not recaptcha_token:
581
+ raise Exception("Failed to obtain reCAPTCHA token")
582
  session_id = self._generate_session_id()
583
 
584
  json_data = {
 
648
  for retry_attempt in range(max_retries):
649
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
650
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
651
+ if not recaptcha_token:
652
+ raise Exception("Failed to obtain reCAPTCHA token")
653
  session_id = self._generate_session_id()
654
  scene_id = str(uuid.uuid4())
655
 
 
734
  for retry_attempt in range(max_retries):
735
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
736
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
737
+ if not recaptcha_token:
738
+ raise Exception("Failed to obtain reCAPTCHA token")
739
  session_id = self._generate_session_id()
740
  scene_id = str(uuid.uuid4())
741
 
 
823
  for retry_attempt in range(max_retries):
824
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
825
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
826
+ if not recaptcha_token:
827
+ raise Exception("Failed to obtain reCAPTCHA token")
828
  session_id = self._generate_session_id()
829
  scene_id = str(uuid.uuid4())
830
 
 
915
  for retry_attempt in range(max_retries):
916
  # 每次重试都重新获取 reCAPTCHA token - 视频使用 VIDEO_GENERATION action
917
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
918
+ if not recaptcha_token:
919
+ raise Exception("Failed to obtain reCAPTCHA token")
920
  session_id = self._generate_session_id()
921
  scene_id = str(uuid.uuid4())
922
 
 
1004
 
1005
  for retry_attempt in range(max_retries):
1006
  recaptcha_token, browser_id = await self._get_recaptcha_token(project_id, action="VIDEO_GENERATION")
1007
+ if not recaptcha_token:
1008
+ raise Exception("Failed to obtain reCAPTCHA token")
1009
  session_id = self._generate_session_id()
1010
  scene_id = str(uuid.uuid4())
1011
 
 
1210
  elif method == "ezcaptcha":
1211
  client_key = config.ezcaptcha_api_key
1212
  base_url = config.ezcaptcha_base_url
1213
+ task_type = "ReCaptchaV3TaskProxylessS9"
1214
  elif method == "capsolver":
1215
  client_key = config.capsolver_api_key
1216
  base_url = config.capsolver_base_url
src/services/generation_handler.py CHANGED
@@ -1001,14 +1001,15 @@ class GenerationHandler:
1001
  # 如果模型 key 不包含 ultra,自动添加
1002
  if "ultra" not in model_key:
1003
  # veo_3_1_i2v_s_fast_fl -> veo_3_1_i2v_s_fast_ultra_fl
 
1004
  # veo_3_1_t2v_fast -> veo_3_1_t2v_fast_ultra
 
1005
  # veo_3_0_r2v_fast -> veo_3_0_r2v_fast_ultra
1006
  if "_fl" in model_key:
1007
  model_key = model_key.replace("_fl", "_ultra_fl")
1008
- elif model_key.endswith("_fast"):
 
1009
  model_key = model_key + "_ultra"
1010
- elif "_fast_" in model_key:
1011
- model_key = model_key.replace("_fast_", "_fast_ultra_")
1012
 
1013
  if stream:
1014
  yield self._create_stream_chunk(f"TIER_TWO 账号自动切换到 ultra 模型: {model_key}\n")
 
1001
  # 如果模型 key 不包含 ultra,自动添加
1002
  if "ultra" not in model_key:
1003
  # veo_3_1_i2v_s_fast_fl -> veo_3_1_i2v_s_fast_ultra_fl
1004
+ # veo_3_1_i2v_s_fast_portrait_fl -> veo_3_1_i2v_s_fast_portrait_ultra_fl
1005
  # veo_3_1_t2v_fast -> veo_3_1_t2v_fast_ultra
1006
+ # veo_3_1_t2v_fast_portrait -> veo_3_1_t2v_fast_portrait_ultra
1007
  # veo_3_0_r2v_fast -> veo_3_0_r2v_fast_ultra
1008
  if "_fl" in model_key:
1009
  model_key = model_key.replace("_fl", "_ultra_fl")
1010
+ else:
1011
+ # 直接在末尾添加 _ultra
1012
  model_key = model_key + "_ultra"
 
 
1013
 
1014
  if stream:
1015
  yield self._create_stream_chunk(f"TIER_TWO 账号自动切换到 ultra 模型: {model_key}\n")