|
@@ -6,6 +6,7 @@
|
|
|
//
|
|
|
|
|
|
import PhotosUI
|
|
|
+import BetterSegmentedControl
|
|
|
enum TSGeneratorImageStyle {
|
|
|
case ageOld //变老
|
|
|
case ageChild //变年轻
|
|
@@ -16,6 +17,7 @@ enum TSGeneratorImageStyle {
|
|
|
case photoExpand //照片扩展
|
|
|
case photoQuality //照片变高清
|
|
|
case motherDay //母亲节
|
|
|
+ case catTohuman //猫变人
|
|
|
}
|
|
|
|
|
|
class TSAIUploadPhotoBaseVC: TSBaseVC {
|
|
@@ -140,7 +142,37 @@ class TSAIUploadPhotoBaseVC: TSBaseVC {
|
|
|
deleteBtn.isHidden = true
|
|
|
return deleteBtn
|
|
|
}()
|
|
|
-
|
|
|
+
|
|
|
+ lazy var segmentedView: BetterSegmentedControl = {
|
|
|
+ let segmentedView = BetterSegmentedControl(
|
|
|
+ frame: .zero,
|
|
|
+ segments:
|
|
|
+ LabelSegment.segments(
|
|
|
+ withTitles: ["Femenino".localized,"Masculino".localized,"Aleatorio".localized],
|
|
|
+ normalFont: .font(size: 12.0),
|
|
|
+ normalTextColor: .white.withAlphaComponent(0.4),
|
|
|
+ selectedFont: .font(size: 12.0),
|
|
|
+ selectedTextColor: "#111111".uiColor),
|
|
|
+ options:[.backgroundColor(.white.withAlphaComponent(0.1)),
|
|
|
+ .indicatorViewBackgroundColor(.white),
|
|
|
+ .indicatorViewInset(2),
|
|
|
+ .cornerRadius(20.0),
|
|
|
+ .animationSpringDamping(1.0)]
|
|
|
+ )
|
|
|
+ segmentedView.addTarget(self,action: #selector(segmentedControlValueChanged(_:)),for: .valueChanged)
|
|
|
+ return segmentedView
|
|
|
+ }()
|
|
|
+ var additionalPrompt = "male"
|
|
|
+ @objc func segmentedControlValueChanged(_ sender: BetterSegmentedControl) {
|
|
|
+ switch sender.index {
|
|
|
+ case 0:
|
|
|
+ additionalPrompt = "male"
|
|
|
+ case 1:
|
|
|
+ additionalPrompt = "female"
|
|
|
+ default:
|
|
|
+ additionalPrompt = ""
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
override func createView() {
|
|
|
|
|
@@ -199,11 +231,20 @@ extension TSAIUploadPhotoBaseVC {
|
|
|
make.width.height.equalTo(32)
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- //文字信息区域
|
|
|
- cusStackView.addSubviewToStack(getTextInfoCell(text: "Single photo with face fully visible".localized))
|
|
|
- cusStackView.addSpacing(length: lineSpacing)
|
|
|
- cusStackView.addSubviewToStack(getTextInfoCell(text: "No group photos, covered faces, nudes".localized))
|
|
|
+ if generatorStyle == .catTohuman {
|
|
|
+ cusStackView.addSubviewToStackWhiteBoard(segmentedView, length: 46)
|
|
|
+ segmentedView.snp.makeConstraints { make in
|
|
|
+ make.width.equalTo(k_ScreenWidth-70)
|
|
|
+ make.height.equalTo(40)
|
|
|
+ make.center.equalToSuperview()
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ //文字信息区域
|
|
|
+ cusStackView.addSubviewToStack(getTextInfoCell(text: "Single photo with face fully visible".localized))
|
|
|
+ cusStackView.addSpacing(length: lineSpacing)
|
|
|
+ cusStackView.addSubviewToStack(getTextInfoCell(text: "No group photos, covered faces, nudes".localized))
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
func getTextInfoCell(text:String) -> UIView {
|
|
@@ -268,9 +309,11 @@ extension TSAIUploadPhotoBaseVC {
|
|
|
|
|
|
func generateImage() {
|
|
|
if kJudgeVip(externalBool: true, vc: self){ return } //判断 vip
|
|
|
-
|
|
|
guard let upLoadImage = upLoadImage else { return }
|
|
|
- let gennerateVC = TSAIListPhotoGeneratorBaseVC(generatorModel: TSAIListPhotoGeneratorModel(upLoadImage: upLoadImage, generatorStyle: generatorStyle)){ [weak self] model in
|
|
|
+ if generatorStyle != .catTohuman {
|
|
|
+ additionalPrompt = ""
|
|
|
+ }
|
|
|
+ let gennerateVC = TSAIListPhotoGeneratorBaseVC(generatorModel: TSAIListPhotoGeneratorModel(upLoadImage: upLoadImage, generatorStyle: generatorStyle,additionalPrompt: additionalPrompt)){ [weak self] model in
|
|
|
guard let self = self else { return }
|
|
|
saveModel(model: model)
|
|
|
}
|
|
@@ -298,6 +341,8 @@ extension TSAIUploadPhotoBaseVC {
|
|
|
TSRMShared.photoQualityDBHistory.updateData(model)
|
|
|
case .motherDay:
|
|
|
TSRMShared.motherDayDBHistory.updateData(model)
|
|
|
+ case .catTohuman:
|
|
|
+ TSRMShared.catTohumanDBHistory.updateData(model)
|
|
|
}
|
|
|
}
|
|
|
|