|
22 | 22 | // invasion of privacy, or any other unlawful purposes is strictly prohibited. |
23 | 23 | // Violation of these terms may result in termination of the license and may subject the violator to legal action. |
24 | 24 |
|
25 | | -using System.Globalization; |
26 | 25 | using System.Text.RegularExpressions; |
27 | | -using Midjourney.Base; |
28 | 26 | using RestSharp; |
29 | 27 | using Serilog; |
30 | 28 |
|
@@ -1263,6 +1261,75 @@ public DiscordService GetInstanceByTask(TaskInfo task, TaskInfo targetTask, out |
1263 | 1261 |
|
1264 | 1262 | var instance = _accountService.GetDiscordInstanceIsAlive(task.SubInstanceId ?? task.InstanceId); |
1265 | 1263 |
|
| 1264 | + // 悠船慢速变化任务特殊处理 |
| 1265 | + // 如果父级是悠船慢速任务,且当前账号没有慢速额度的情况下,交由其他慢速账号出图 |
| 1266 | + if (task.IsPartner && task.Action != null) |
| 1267 | + { |
| 1268 | + if (targetTask.Mode == GenerationSpeedMode.RELAX |
| 1269 | + && task.Action != TaskAction.VIDEO |
| 1270 | + && task.Action != TaskAction.UPSCALE) |
| 1271 | + { |
| 1272 | + // Vary Region、Vary Subtle, Vary Strong、缩放、平移 -> 可以在当前账号快速模式下继续执行 |
| 1273 | + |
| 1274 | + // 如果父级是慢速,且属于以下操作,则只能通过其他慢速账号继续执行 |
| 1275 | + // UPSCALE_HD |
| 1276 | + // V1, V2, V3, V4 |
| 1277 | + // ::reroll |
| 1278 | + var relaxActions = new List<TaskAction>() |
| 1279 | + { |
| 1280 | + TaskAction.UPSCALE_HD, |
| 1281 | + }; |
| 1282 | + |
| 1283 | + var forceRelax = false; |
| 1284 | + |
| 1285 | + var customId = task.GetProperty<string>(Constants.TASK_PROPERTY_CUSTOM_ID, default); |
| 1286 | + |
| 1287 | + // 低变化/高变化 - 暂时也强制慢速 |
| 1288 | + if (relaxActions.Contains(task.Action.Value) |
| 1289 | + || customId?.Contains("::low_variation") == true |
| 1290 | + || customId?.Contains("::high_variation") == true |
| 1291 | + || customId?.Contains("::variation") == true |
| 1292 | + || customId?.Contains("::reroll") == true) |
| 1293 | + { |
| 1294 | + forceRelax = true; |
| 1295 | + } |
| 1296 | + else |
| 1297 | + { |
| 1298 | + // 如果没有快速或极速,则依然强制慢速处理 |
| 1299 | + if (!modes.Contains(GenerationSpeedMode.FAST) |
| 1300 | + && !modes.Contains(GenerationSpeedMode.TURBO)) |
| 1301 | + { |
| 1302 | + forceRelax = true; |
| 1303 | + } |
| 1304 | + } |
| 1305 | + |
| 1306 | + // 还是精确一些 - 如果后续处理麻烦,可以统一慢速处理 |
| 1307 | + // 简单点 -> 虽然 Vary Subtle、Vary Strong、缩放、平移 可以通过快速模式继续生成,但是原始任务是慢速任务 |
| 1308 | + // 简单点统一用慢速变化操作 |
| 1309 | + |
| 1310 | + // 强制慢速账号衍生 |
| 1311 | + if (forceRelax) |
| 1312 | + { |
| 1313 | + mode = GenerationSpeedMode.RELAX; |
| 1314 | + modes = [GenerationSpeedMode.RELAX]; |
| 1315 | + |
| 1316 | + task.AccountFilter ??= new(); |
| 1317 | + task.AccountFilter.Modes = modes; |
| 1318 | + |
| 1319 | + // 判断此账号是否有慢速额度,如果没有则需要换账号 |
| 1320 | + if (instance != null && instance.IsAllowContinue(GenerationSpeedMode.RELAX) && instance.Account.IsAcceptActionTask()) |
| 1321 | + { |
| 1322 | + // 允许在当前账号继续执行 |
| 1323 | + } |
| 1324 | + else |
| 1325 | + { |
| 1326 | + // 不允许在当前账号继续执行,交由其他慢速账号出图 |
| 1327 | + instance = null; |
| 1328 | + } |
| 1329 | + } |
| 1330 | + } |
| 1331 | + } |
| 1332 | + |
1266 | 1333 | // 是否允许继续任务 |
1267 | 1334 | var isContinue = false; |
1268 | 1335 |
|
|
0 commit comments