|
@@ -12,41 +12,30 @@ class TSAILIstVC: TSBaseVC {
|
|
|
let sectionModel = TSBasicSectionModel()
|
|
|
dataArray.append(sectionModel)
|
|
|
|
|
|
-
|
|
|
- sectionModel.addSubItemModel(
|
|
|
- createItemModel(
|
|
|
- leftImageName:"aiList_ttp",
|
|
|
- leftTitle: "Text ➡️ Photo".localized,
|
|
|
- leftSubTitle: "Turn words into visually stunning artwork".localized,
|
|
|
- rightViewStyle: 0,
|
|
|
- tapBlock: { [weak self] model, _, _ in
|
|
|
- guard let self = self else { return }
|
|
|
- kPushVC(target: self, modelVC: TSTextGeneralPictureVC())
|
|
|
- }))
|
|
|
-
|
|
|
+ //母亲节
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"aiList_quality",
|
|
|
- leftTitle: "Photo Enhancer".localized,
|
|
|
- leftSubTitle: "".localized,
|
|
|
+ leftImageName:"aiList_MotherDay",
|
|
|
+ leftTitle: "Happy Mother's Day".localized,
|
|
|
+ leftSubTitle: "Create sweet memories with Mom".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
|
// enterSelectPhotos(
|
|
|
-// userDefaultsKey: "",//"isFirstAIListQualityHintVC",
|
|
|
+// userDefaultsKey: "",
|
|
|
// maxBitSize: kUploadImageMaxBit10Size,
|
|
|
-// config:.defaultConfig
|
|
|
+// config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit10Size)
|
|
|
// ) { image in
|
|
|
let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit10Size, generatorStyle: .photoQuality)
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
// }
|
|
|
}))
|
|
|
-
|
|
|
+ //猫咪变人
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"aiList_photoExpand",
|
|
|
- leftTitle: "AI Expand Photo".localized,
|
|
|
- leftSubTitle: "".localized,
|
|
|
+ leftImageName:"aiList_catTohuman",
|
|
|
+ leftTitle: "Pet Humanization".localized,
|
|
|
+ leftSubTitle: "Curious about what your pet is like?".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
@@ -55,65 +44,68 @@ class TSAILIstVC: TSBaseVC {
|
|
|
// maxBitSize: kUploadImageMaxBit10Size,
|
|
|
// config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit10Size)
|
|
|
// ) { image in
|
|
|
- let baseVc = TSAIExpandImageVC(upLoadImage: nil)
|
|
|
+ let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit10Size, generatorStyle: .photoQuality)
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
// }
|
|
|
}))
|
|
|
|
|
|
+ //改发型
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"activePhoto.gif",
|
|
|
- leftTitle: "Make photo live".localized,
|
|
|
- leftSubTitle: "".localized,
|
|
|
+ leftImageName:"aiList_hair",
|
|
|
+ leftTitle: "Hair Salon".localized,
|
|
|
+ leftSubTitle: "Try new hair looks for every style".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
|
-// enterSelectPhotos(
|
|
|
-// userDefaultsKey: "isFirstAILivePhoto",
|
|
|
-// maxBitSize: kUploadImageMaxBit5Size,
|
|
|
-// config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit5Size)
|
|
|
-// ) { image in
|
|
|
- let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit5Size, generatorStyle: .photoLive)
|
|
|
+ enterSelectPhotos(
|
|
|
+ userDefaultsKey: "isFirstAIChangeHair",
|
|
|
+ maxBitSize: kUploadImageMaxBit10Size,
|
|
|
+ config:.changeHairConfig
|
|
|
+ ) { image in
|
|
|
+ let baseVc = TSAIChangeEmoteVC(upLoadImage: image, style: .changehair)
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
-// }
|
|
|
+ }
|
|
|
}))
|
|
|
|
|
|
+ //改发色
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"ailist_pretty",
|
|
|
- leftTitle: "Be Pretty".localized,
|
|
|
- leftSubTitle: "".localized,
|
|
|
+ leftImageName:"aiList_hairColor",
|
|
|
+ leftTitle: "Transform Hair Color".localized,
|
|
|
+ leftSubTitle: "Find out what hair color suits you".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
|
-// enterSelectPhotos(
|
|
|
-// userDefaultsKey: "isFirstAIPrettyPhoto",
|
|
|
-// maxBitSize: kUploadImageMaxBit5Size,
|
|
|
-// config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit5Size)
|
|
|
-// ) { image in
|
|
|
- let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit5Size, generatorStyle: .pretty)
|
|
|
+ enterSelectPhotos(
|
|
|
+ userDefaultsKey: "isFirstAIChangeHairColor",
|
|
|
+ maxBitSize: kUploadImageMaxBit10Size,
|
|
|
+ config:.changeHairConfig
|
|
|
+ ) { image in
|
|
|
+ let baseVc = TSAIChangeEmoteVC(upLoadImage: image, style: .changehairColor)
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
-// }
|
|
|
+ }
|
|
|
}))
|
|
|
|
|
|
+ //照片高清修复
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"ailist_eyeOpen",
|
|
|
- leftTitle: "Open Eyes".localized,
|
|
|
- leftSubTitle: "".localized,
|
|
|
+ leftImageName:"aiList_quality",
|
|
|
+ leftTitle: "Photo Enhancer".localized,
|
|
|
+ leftSubTitle: "Enhance photo's quality".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
|
// enterSelectPhotos(
|
|
|
-// userDefaultsKey: "isFirstAIEyeOpenPhoto",
|
|
|
-// maxBitSize: kUploadImageMaxBit5Size,
|
|
|
-// config: .getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit5Size)
|
|
|
+// userDefaultsKey: "",//"isFirstAIListQualityHintVC",
|
|
|
+// maxBitSize: kUploadImageMaxBit10Size,
|
|
|
+// config:.defaultConfig
|
|
|
// ) { image in
|
|
|
- let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit5Size, generatorStyle: .eyeOpen)
|
|
|
+ let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit10Size, generatorStyle: .photoQuality)
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
// }
|
|
|
}))
|
|
|
-
|
|
|
+ //老照片修复
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
leftImageName:"aiList_restOldPhoto",
|
|
@@ -131,43 +123,38 @@ class TSAILIstVC: TSBaseVC {
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
// }
|
|
|
}))
|
|
|
-
|
|
|
+ //扩图
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"aiList_hairColor",
|
|
|
- leftTitle: "Transform Hair Color".localized,
|
|
|
- leftSubTitle: "Find out what hair color suits you".localized,
|
|
|
+ leftImageName:"aiList_photoExpand",
|
|
|
+ leftTitle: "AI Expand Photo".localized,
|
|
|
+ leftSubTitle: "Seamlessly extend image boundaries".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
|
- enterSelectPhotos(
|
|
|
- userDefaultsKey: "isFirstAIChangeHairColor",
|
|
|
- maxBitSize: kUploadImageMaxBit10Size,
|
|
|
- config:.changeHairConfig
|
|
|
- ) { image in
|
|
|
- let baseVc = TSAIChangeEmoteVC(upLoadImage: image, style: .changehairColor)
|
|
|
+// enterSelectPhotos(
|
|
|
+// userDefaultsKey: "",
|
|
|
+// maxBitSize: kUploadImageMaxBit10Size,
|
|
|
+// config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit10Size)
|
|
|
+// ) { image in
|
|
|
+ let baseVc = TSAIExpandImageVC(upLoadImage: nil)
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
- }
|
|
|
+// }
|
|
|
}))
|
|
|
-
|
|
|
+ //AI 助手
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"aiList_hair",
|
|
|
- leftTitle: "Hair Salon".localized,
|
|
|
- leftSubTitle: "Try new hair looks for every style".localized,
|
|
|
+ leftImageName:"aiList_aiChat",
|
|
|
+ leftTitle: "AI Assistant".localized,
|
|
|
+ leftSubTitle: "Get smart and instant answers".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
|
- enterSelectPhotos(
|
|
|
- userDefaultsKey: "isFirstAIChangeHair",
|
|
|
- maxBitSize: kUploadImageMaxBit10Size,
|
|
|
- config:.changeHairConfig
|
|
|
- ) { image in
|
|
|
- let baseVc = TSAIChangeEmoteVC(upLoadImage: image, style: .changehair)
|
|
|
- kPushVC(target: self, modelVC: baseVc)
|
|
|
- }
|
|
|
+ let vc = TSChatViewController()//(uiStyle: .perfectHint)
|
|
|
+ vc.viewModel.uiStyle = .perfectHint
|
|
|
+ kPushVC(target: self, modelVC: vc)
|
|
|
}))
|
|
|
-
|
|
|
+ //预测老年
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
leftImageName:"aiList_oldPeople",
|
|
@@ -185,7 +172,7 @@ class TSAILIstVC: TSBaseVC {
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
// }
|
|
|
}))
|
|
|
-
|
|
|
+ //变回宝宝
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
leftImageName:"ailist_child",
|
|
@@ -205,7 +192,43 @@ class TSAILIstVC: TSBaseVC {
|
|
|
|
|
|
|
|
|
}))
|
|
|
-
|
|
|
+ //变漂亮
|
|
|
+ sectionModel.addSubItemModel(
|
|
|
+ createItemModel(
|
|
|
+ leftImageName:"ailist_pretty",
|
|
|
+ leftTitle: "Be Pretty".localized,
|
|
|
+ leftSubTitle: "Get the best face in every photo".localized,
|
|
|
+ rightViewStyle: 0,
|
|
|
+ tapBlock: { [weak self] model, _, _ in
|
|
|
+ guard let self = self else { return }
|
|
|
+// enterSelectPhotos(
|
|
|
+// userDefaultsKey: "isFirstAIPrettyPhoto",
|
|
|
+// maxBitSize: kUploadImageMaxBit5Size,
|
|
|
+// config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit5Size)
|
|
|
+// ) { image in
|
|
|
+ let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit5Size, generatorStyle: .pretty)
|
|
|
+ kPushVC(target: self, modelVC: baseVc)
|
|
|
+// }
|
|
|
+ }))
|
|
|
+ //睁眼
|
|
|
+ sectionModel.addSubItemModel(
|
|
|
+ createItemModel(
|
|
|
+ leftImageName:"ailist_eyeOpen",
|
|
|
+ leftTitle: "Open Eyes".localized,
|
|
|
+ leftSubTitle: "One-tap Retouch".localized,
|
|
|
+ rightViewStyle: 0,
|
|
|
+ tapBlock: { [weak self] model, _, _ in
|
|
|
+ guard let self = self else { return }
|
|
|
+// enterSelectPhotos(
|
|
|
+// userDefaultsKey: "isFirstAIEyeOpenPhoto",
|
|
|
+// maxBitSize: kUploadImageMaxBit5Size,
|
|
|
+// config: .getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit5Size)
|
|
|
+// ) { image in
|
|
|
+ let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit5Size, generatorStyle: .eyeOpen)
|
|
|
+ kPushVC(target: self, modelVC: baseVc)
|
|
|
+// }
|
|
|
+ }))
|
|
|
+ //改表情
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
leftImageName:"aiList_emote",
|
|
@@ -223,18 +246,38 @@ class TSAILIstVC: TSBaseVC {
|
|
|
kPushVC(target: self, modelVC: baseVc)
|
|
|
}
|
|
|
}))
|
|
|
-
|
|
|
-
|
|
|
+ //活照片
|
|
|
sectionModel.addSubItemModel(
|
|
|
createItemModel(
|
|
|
- leftImageName:"aiList_emoji",
|
|
|
- leftTitle: "Text ➡️ Emoji".localized,
|
|
|
- leftSubTitle: "Turn your inspiration into brilliant emojis".localized,
|
|
|
+ leftImageName:"aiList_livePhoto",
|
|
|
+ leftTitle: "Make photo live".localized,
|
|
|
+ leftSubTitle: "Bringing photos to life".localized,
|
|
|
rightViewStyle: 0,
|
|
|
tapBlock: { [weak self] model, _, _ in
|
|
|
guard let self = self else { return }
|
|
|
- kPushVC(target: self, modelVC: TSGenmojiVC())
|
|
|
+// enterSelectPhotos(
|
|
|
+// userDefaultsKey: "isFirstAILivePhoto",
|
|
|
+// maxBitSize: kUploadImageMaxBit5Size,
|
|
|
+// config:.getDefaultConfig(imageMaxBitSize: kUploadImageMaxBit5Size)
|
|
|
+// ) { image in
|
|
|
+ let baseVc = TSAIUploadPhotoBaseVC(titleString: model.leftTitle ?? "",upLoadImage: nil,imageMaxBitSize: kUploadImageMaxBit5Size, generatorStyle: .photoLive)
|
|
|
+ kPushVC(target: self, modelVC: baseVc)
|
|
|
+// }
|
|
|
}))
|
|
|
+
|
|
|
+ //文生表情
|
|
|
+// sectionModel.addSubItemModel(
|
|
|
+// createItemModel(
|
|
|
+// leftImageName:"aiList_emoji",
|
|
|
+// leftTitle: "Text ➡️ Emoji".localized,
|
|
|
+// leftSubTitle: "Turn your inspiration into brilliant emojis".localized,
|
|
|
+// rightViewStyle: 0,
|
|
|
+// tapBlock: { [weak self] model, _, _ in
|
|
|
+// guard let self = self else { return }
|
|
|
+// kPushVC(target: self, modelVC: TSGenmojiVC())
|
|
|
+// }))
|
|
|
+
|
|
|
+
|
|
|
return dataArray
|
|
|
|
|
|
}()
|
|
@@ -275,11 +318,11 @@ class TSAILIstVC: TSBaseVC {
|
|
|
lazy var layout: UICollectionViewFlowLayout = {
|
|
|
let layout = UICollectionViewFlowLayout()
|
|
|
layout.scrollDirection = .vertical
|
|
|
- let w = (k_ScreenWidth-32-10)/2
|
|
|
- let h = kGetScaleHeight(originalSize: CGSizeMake(167, 236), width: w)
|
|
|
+ let w = k_ScreenWidth-32
|
|
|
+ let h = kGetScaleHeight(originalSize: CGSizeMake(343, 124), width: w)
|
|
|
layout.itemSize = CGSize(width: w, height: h)
|
|
|
layout.minimumInteritemSpacing = 9.0
|
|
|
- layout.minimumLineSpacing = 12.0
|
|
|
+ layout.minimumLineSpacing = 16.0
|
|
|
|
|
|
layout.sectionInset = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16)
|
|
|
return layout
|