TSFuncStyle.swift 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. //
  2. // TSFuncStyle.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/6/23.
  6. //
  7. enum TSFuncStyle:Int,Equatable,CaseIterable {
  8. case ageOld = 1 //变老
  9. case ageChild = 2 //变年轻
  10. case oldPhoto = 3 //旧照片修复
  11. case eyeOpen = 4 //开眼
  12. case pretty = 5 //变美
  13. case photoLive = 6 //把照片动起来
  14. case photoExpand = 7 //照片扩展
  15. case photoQuality = 8 //照片变高清
  16. case motherDay = 9 //母亲节
  17. case catTohuman = 10 //猫变人
  18. case futureBaby = 11 //预测宝宝
  19. case changeEmote = 12 // 改变表情
  20. case changehairColor = 13 //改发色
  21. case changehair = 14 //改发型
  22. case ptp = 15
  23. case ttp = 16
  24. case chat = 17
  25. case process = 18 // 走变老变年轻那套交互流程,接口用图生图的接口
  26. case videoV2 = 19 //视频v2,有声音
  27. var imageMaxKb:Int{
  28. switch self {
  29. case .oldPhoto,.eyeOpen,.pretty:
  30. return 5*1024
  31. default:
  32. return 10*1024
  33. }
  34. }
  35. var imageMaxBitSize:Int{
  36. switch self {
  37. case .oldPhoto,.eyeOpen,.pretty:
  38. return kUploadImageMaxBit5Size
  39. default:
  40. return kUploadImageMaxBit10Size
  41. }
  42. }
  43. // var userDefaultsKey:String{
  44. //
  45. // }
  46. func getHintKey(hintType:Int)->String {
  47. switch self {
  48. case .ageOld:
  49. return "isFirstAIListAgeOldHintVC"
  50. case .ageChild:
  51. return "isFirstAIListAgeChildHintVC"
  52. case .oldPhoto:
  53. return "isFirstAIChangeRestOldPhoto"
  54. case .eyeOpen:
  55. return "isFirstAIEyeOpenPhoto"
  56. case .pretty:
  57. return "isFirstAIPrettyPhoto"
  58. case .photoLive:
  59. return "isFirstAILivePhoto"
  60. case .photoExpand:
  61. return ""
  62. case .photoQuality:
  63. return ""
  64. case .motherDay:
  65. return "isFirstAIMotherDay"
  66. case .catTohuman:
  67. return "isFirstAICatTohuman"
  68. case .futureBaby:
  69. return "isFirstAIFutureBaby"
  70. case .changeEmote:
  71. return "isFirstAIChangeEmote"
  72. case .changehairColor:
  73. return "isFirstAIChangeHairColor"
  74. case .changehair:
  75. return "isFirstAIChangeHair"
  76. case .videoV2:
  77. return "isFirstFunc\(self.rawValue))" + "_hintType\(hintType)"
  78. default:
  79. return "isFirstFunc\(self.rawValue))"
  80. }
  81. }
  82. func getConfig(hintType:Int)->TSAIListHintBaseVC.Config {
  83. switch self {
  84. case .ageOld:
  85. return .defaultConfig
  86. case .ageChild:
  87. return .defaultConfig
  88. case .oldPhoto:
  89. return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
  90. case .eyeOpen:
  91. return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
  92. case .pretty:
  93. return .getDefaultConfig(imageMaxBitSize:imageMaxBitSize)
  94. case .photoLive:
  95. return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
  96. case .photoExpand:
  97. return .getDefaultConfig(imageMaxBitSize:imageMaxBitSize)
  98. case .photoQuality:
  99. return .defaultConfig
  100. case .motherDay:
  101. return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
  102. case .catTohuman:
  103. return .catTohumanConfig
  104. case .futureBaby:
  105. return .futureBabyConfig
  106. case .videoV2:
  107. return TSAIListHintBaseVC.Config.getConfig(hint: hintType)
  108. default:
  109. return .defaultConfig
  110. }
  111. }
  112. // var config:TSAIListHintBaseVC.Config{
  113. //
  114. // }
  115. var advance:Bool{
  116. switch self {
  117. case .catTohuman,.motherDay,.futureBaby:
  118. return true
  119. default:
  120. return false
  121. }
  122. }
  123. var vipFreeNumType:VipFreeNumType{
  124. if self == .videoV2 || self == .photoLive {
  125. return .videoV2
  126. }
  127. return .aiGenerate
  128. }
  129. }
  130. extension TSFuncStyle {
  131. var generateModel:TSGenerateModel? {
  132. switch self {
  133. case .ageOld:
  134. return TSGenerateModel(json: kTSDiscoverVM.ageOld)
  135. case .ageChild:
  136. return TSGenerateModel(json: kTSDiscoverVM.ageChild)
  137. case .oldPhoto:
  138. return TSGenerateModel(json: kTSDiscoverVM.oldPhoto)
  139. case .eyeOpen:
  140. return TSGenerateModel(json: kTSDiscoverVM.eyeOpen)
  141. case .pretty:
  142. return TSGenerateModel(json: kTSDiscoverVM.pretty)
  143. case .photoLive:
  144. return TSGenerateModel(json: kTSDiscoverVM.photoLive)
  145. case .photoExpand:
  146. return TSGenerateModel(json: kTSDiscoverVM.photoExpand)
  147. case .photoQuality:
  148. return TSGenerateModel(json: kTSDiscoverVM.photoQuality)
  149. case .motherDay:
  150. return TSGenerateModel(json: kTSDiscoverVM.motherDay)
  151. case .catTohuman:
  152. return TSGenerateModel(json: kTSDiscoverVM.catTohuman)
  153. case .futureBaby:
  154. return TSGenerateModel(json: kTSDiscoverVM.futureBaby)
  155. default:
  156. return nil
  157. }
  158. }
  159. //是否拦截多个生成
  160. var isInterceptMultipleGenerations: Bool {
  161. switch self {
  162. case .changeEmote,.changehairColor,.changehair,.ttp,.chat:
  163. dePrint("不拦截")
  164. return false
  165. default:
  166. return true
  167. }
  168. }
  169. }