@umituz/react-native-ai-generation-content 1.58.4 → 1.58.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/README.md +2 -7
  2. package/package.json +1 -1
  3. package/src/domain/interfaces/ai-provider.interface.ts +0 -2
  4. package/src/domains/creations/domain/types/creation-categories.ts +2 -2
  5. package/src/domains/creations/domain/types/creation-types.ts +0 -2
  6. package/src/domains/face-detection/README.md +0 -2
  7. package/src/domains/generation/domain/feature-config.types.ts +1 -1
  8. package/src/domains/generation/infrastructure/flow/scenario-configs.ts +0 -15
  9. package/src/domains/generation/wizard/infrastructure/strategies/wizard-strategy.constants.ts +0 -4
  10. package/src/domains/generation/wizard/presentation/hooks/wizard-generation.types.ts +1 -1
  11. package/src/domains/prompts/infrastructure/builders/interaction-style-builder.ts +8 -25
  12. package/src/domains/scenarios/configs/wizard-input-detector.ts +1 -1
  13. package/src/domains/scenarios/domain/category-groups.ts +7 -15
  14. package/src/domains/scenarios/domain/scenario-category.enum.ts +0 -8
  15. package/src/domains/scenarios/domain/scenario-ids/ai-features.ids.ts +0 -2
  16. package/src/domains/scenarios/domain/scenario-ids/intimate-romantic.ids.ts +2 -39
  17. package/src/domains/scenarios/domain/scenario-ids/movie-legends.ids.ts +2 -31
  18. package/src/domains/scenarios/index.ts +2 -2
  19. package/src/presentation/hooks/generation/useVideoGeneration.ts +3 -3
  20. package/src/presentation/layouts/DualImageFeatureLayout.tsx +1 -1
  21. package/src/presentation/layouts/DualImageVideoFeatureLayout.tsx +1 -1
  22. package/src/presentation/layouts/README.md +4 -4
  23. package/src/presentation/layouts/types/feature-states.ts +1 -1
  24. package/src/presentation/screens/README.md +0 -3
package/README.md CHANGED
@@ -22,9 +22,6 @@ Provider-agnostic AI generation orchestration layer. Focus on business logic and
22
22
 
23
23
  ### Face & Person Features
24
24
  - **Face Swap**: Swap faces between images
25
- - **AI Hug**: Generate hug images (2 people)
26
- - **AI Kiss**: Generate kiss images (2 people)
27
- - **Couple Future**: Future predictions for couples
28
25
  - **Future Prediction**: Individual future scenarios
29
26
 
30
27
  ### Video & Animation
@@ -170,8 +167,7 @@ FEATURE HOOKS:
170
167
  - useTextToImageFeature: Image generation
171
168
  - useFaceSwapFeature: Face swapping
172
169
  - useTextToVoiceFeature: Text-to-speech
173
- - useAIHugFeature: AI hug generation
174
- - And 21+ more features
170
+ - And 20+ more features
175
171
 
176
172
  STRICTLY FORBIDDEN:
177
173
  - No skipping configuration
@@ -190,10 +186,9 @@ STRICTLY FORBIDDEN:
190
186
  ```
191
187
  @umituz/react-native-ai-generation-content/
192
188
  ├── src/
193
- │ ├── features/ # 25 AI features (each with README)
189
+ │ ├── features/ # 23 AI features (each with README)
194
190
  │ │ ├── text-to-image/
195
191
  │ │ ├── face-swap/
196
- │ │ ├── ai-hug/
197
192
  │ │ └── ...
198
193
  │ ├── domains/ # Shared domains
199
194
  │ │ ├── content-moderation/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-ai-generation-content",
3
- "version": "1.58.4",
3
+ "version": "1.58.6",
4
4
  "description": "Provider-agnostic AI generation orchestration for React Native with result preview components",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -24,8 +24,6 @@ export type ImageFeatureType =
24
24
  * Feature types for video generation (output: video)
25
25
  */
26
26
  export type VideoFeatureType =
27
- | "ai-hug"
28
- | "ai-kiss"
29
27
  | "image-to-video"
30
28
  | "text-to-video";
31
29
 
@@ -26,7 +26,7 @@ export const IMAGE_CREATION_TYPES: CreationTypeId[] = [
26
26
 
27
27
  /**
28
28
  * Video-related creation types (core types only)
29
- * NOTE: All other video types (scenarios, ai-hug, ai-kiss, etc.)
29
+ * NOTE: All other video types (scenarios, etc.)
30
30
  * are dynamically determined by output content via isVideoUrl()
31
31
  */
32
32
  export const VIDEO_CREATION_TYPES: CreationTypeId[] = [
@@ -76,7 +76,7 @@ export function getCategoryForType(type: CreationTypeId): CreationCategory {
76
76
  /**
77
77
  * Get category for a creation based on its output content
78
78
  * This is the PRIMARY method for categorization - OUTPUT determines category, not type
79
- * Handles all scenarios (solo_martial_artist, ski_resort, ai-hug, ai-kiss, etc.)
79
+ * Handles all scenarios (solo_martial_artist, ski_resort, etc.)
80
80
  *
81
81
  * Strategy: API response already tells us the type via field names:
82
82
  * - output.videoUrl exists → video
@@ -21,8 +21,6 @@ export type CreationTypeId =
21
21
  | "background-replacement"
22
22
  | "ai-brush"
23
23
  | "hd-touch-up"
24
- | "ai-hug"
25
- | "ai-kiss"
26
24
  | "anime-selfie";
27
25
 
28
26
  /**
@@ -307,8 +307,6 @@ interface FaceAnalysis {
307
307
  ## 📚 Related Features
308
308
 
309
309
  - [Face Swap](../../features/face-swap) - Swap faces between images
310
- - [AI Hug](../../features/ai-hug) - Generate AI hug images
311
- - [AI Kiss](../../features/ai-kiss) - Generate AI kiss images
312
310
 
313
311
  ---
314
312
 
@@ -30,7 +30,7 @@ export type OutputType = "image" | "video";
30
30
  // ============================================================================
31
31
 
32
32
  export interface FeatureConfig {
33
- /** Unique feature identifier (e.g., 'couple-future', 'ai-hug') */
33
+ /** Unique feature identifier (e.g., 'solo-fantasy', 'image-to-video') */
34
34
  readonly id: string;
35
35
 
36
36
  /** Generation type (determines which executor to use) */
@@ -6,21 +6,6 @@
6
6
  import type { ScenarioStepConfig } from "../../../../domain/entities/step-config.types";
7
7
 
8
8
  export const SCENARIO_CONFIGS: Record<string, ScenarioStepConfig> = {
9
- "romantic-kiss": {
10
- photoUploads: {
11
- count: 2,
12
- labels: ["First Partner", "Second Partner"],
13
- showFaceDetection: true,
14
- showNameInput: false,
15
- },
16
- },
17
- "couple-hug": {
18
- photoUploads: {
19
- count: 2,
20
- labels: ["Partner A", "Partner B"],
21
- showFaceDetection: true,
22
- },
23
- },
24
9
  "image-to-video": {
25
10
  photoUploads: {
26
11
  count: 1,
@@ -27,8 +27,6 @@ export const MODEL_INPUT_DEFAULTS = {
27
27
 
28
28
  /** Video feature type patterns for scenario detection */
29
29
  export const VIDEO_FEATURE_PATTERNS: Record<string, VideoFeatureType> = {
30
- kiss: "ai-kiss",
31
- hug: "ai-hug",
32
30
  "text-to-video": "text-to-video",
33
31
  "image-to-video": "image-to-video",
34
32
  };
@@ -47,8 +45,6 @@ export const IMAGE_PROCESSING_PROMPTS: Record<string, string> = {
47
45
 
48
46
  /** Default prompts for video generation features (no user input needed) */
49
47
  export const VIDEO_PROCESSING_PROMPTS: Record<string, string> = {
50
- "ai-kiss": "Create a romantic video where these two people share a gentle, loving kiss",
51
- "ai-hug": "Create a heartwarming video where these two people share a warm, affectionate hug",
52
48
  "image-to-video": "Animate this image with natural, smooth motion while preserving the original style",
53
49
  "solo_renaissance_portrait": "Transform this person into an elegant Renaissance-style animated portrait with classical artistic movements and period-appropriate lighting",
54
50
  "renaissance_portrait": "Transform this portrait into a majestic Renaissance-style animated painting with subtle classical movements",
@@ -20,7 +20,7 @@ export interface WizardScenarioData {
20
20
  readonly title?: string;
21
21
  readonly description?: string;
22
22
  /** Video feature type - set by main app to control generation mode */
23
- readonly featureType?: "text-to-video" | "image-to-video" | "ai-kiss" | "ai-hug";
23
+ readonly featureType?: "text-to-video" | "image-to-video";
24
24
  [key: string]: unknown;
25
25
  }
26
26
 
@@ -15,11 +15,7 @@
15
15
  // =============================================================================
16
16
 
17
17
  /** Interaction style between people in the image */
18
- export type InteractionStyle =
19
- | "romantic"
20
- | "friendly"
21
- | "professional"
22
- | "neutral";
18
+ export type InteractionStyle = "friendly" | "professional" | "neutral";
23
19
 
24
20
  export interface InteractionStyleOptions {
25
21
  /** Interaction style between people */
@@ -38,14 +34,6 @@ export interface InteractionStyleOptions {
38
34
 
39
35
  /** Interaction style rules - what TO DO for each style */
40
36
  const INTERACTION_RULES: Record<InteractionStyle, readonly string[]> = {
41
- romantic: [
42
- "Close physical proximity - touching, holding hands, arms around each other",
43
- "Warm, genuine, loving smiles showing happiness",
44
- "Affectionate eye contact or looking at camera together happily",
45
- "Natural romantic body language - leaning into each other",
46
- "Intimate connection visible between the two people",
47
- "Comfortable and relaxed together, natural poses",
48
- ],
49
37
  friendly: [
50
38
  "Casual comfortable proximity",
51
39
  "Genuine friendly smiles",
@@ -64,21 +52,13 @@ const INTERACTION_RULES: Record<InteractionStyle, readonly string[]> = {
64
52
 
65
53
  /** Interaction style forbidden - what NOT to do for each style */
66
54
  const INTERACTION_FORBIDDEN: Record<InteractionStyle, readonly string[]> = {
67
- romantic: [
68
- "Do NOT position people far apart or distant from each other",
69
- "Do NOT use cold, serious, stern, or angry expressions",
70
- "Do NOT create stiff, awkward, or unnatural poses",
71
- "Do NOT have people looking away from each other coldly",
72
- "Do NOT show disconnection or emotional distance between people",
73
- "Do NOT make poses look forced or uncomfortable",
74
- ],
75
55
  friendly: [
76
56
  "Do NOT use cold or unfriendly expressions",
77
57
  "Do NOT create awkward distancing",
78
58
  "Do NOT make poses stiff or formal",
79
59
  ],
80
60
  professional: [
81
- "Do NOT use overly casual or intimate positioning",
61
+ "Do NOT use overly casual positioning",
82
62
  "Do NOT use sloppy or unprofessional poses",
83
63
  ],
84
64
  neutral: [],
@@ -91,14 +71,18 @@ const INTERACTION_FORBIDDEN: Record<InteractionStyle, readonly string[]> = {
91
71
  /**
92
72
  * Get interaction rules for a given style
93
73
  */
94
- export function getInteractionRules(style: InteractionStyle): readonly string[] {
74
+ export function getInteractionRules(
75
+ style: InteractionStyle,
76
+ ): readonly string[] {
95
77
  return INTERACTION_RULES[style];
96
78
  }
97
79
 
98
80
  /**
99
81
  * Get forbidden actions for a given style
100
82
  */
101
- export function getInteractionForbidden(style: InteractionStyle): readonly string[] {
83
+ export function getInteractionForbidden(
84
+ style: InteractionStyle,
85
+ ): readonly string[] {
102
86
  return INTERACTION_FORBIDDEN[style];
103
87
  }
104
88
 
@@ -153,7 +137,6 @@ export function buildMinimalInteractionStylePrompt(
153
137
  }
154
138
 
155
139
  const styleDescriptions: Record<InteractionStyle, string> = {
156
- romantic: "close, touching, warm smiles, loving connection",
157
140
  friendly: "casual proximity, friendly smiles, relaxed poses",
158
141
  professional: "appropriate distance, confident expressions",
159
142
  neutral: "",
@@ -20,7 +20,7 @@ export const SCENARIO_TO_WIZARD_INPUT_MAP: Record<ScenarioInputType, WizardInput
20
20
  * Only matches generic I/O patterns
21
21
  */
22
22
  const INPUT_PATTERNS: Record<WizardInputType, readonly RegExp[]> = {
23
- [WizardInputType.DUAL_IMAGE]: [/kiss/i, /hug/i, /embrace/i, /couple/i, /dual/i, /partner/i],
23
+ [WizardInputType.DUAL_IMAGE]: [/dual/i],
24
24
  [WizardInputType.SINGLE_IMAGE]: [
25
25
  /^image-to-video$/i,
26
26
  /upscale/i,
@@ -20,10 +20,9 @@ export const TRUE_SOLO_CATEGORIES: readonly ScenarioCategory[] = [
20
20
  ];
21
21
 
22
22
  /**
23
- * @deprecated Use TRUE_SOLO_CATEGORIES for single-person apps
24
- * These categories contain COUPLE prompts despite the name
23
+ * General categories - scenarios that work with various content types
25
24
  */
26
- export const SINGLE_PERSON_CATEGORIES: readonly ScenarioCategory[] = [
25
+ export const GENERAL_CATEGORIES: readonly ScenarioCategory[] = [
27
26
  ScenarioCategory.FANTASY,
28
27
  ScenarioCategory.ADVENTURE,
29
28
  ScenarioCategory.SPORTS,
@@ -56,8 +55,6 @@ export const SINGLE_PERSON_CATEGORIES: readonly ScenarioCategory[] = [
56
55
  ScenarioCategory.ELITE,
57
56
  ScenarioCategory.GOTHIC,
58
57
  ScenarioCategory.DAILY_ESSENCE,
59
- ScenarioCategory.MOVIE_LEGENDS,
60
- ScenarioCategory.ICONIC_MOMENTS,
61
58
  ScenarioCategory.FOLKLORE,
62
59
  ScenarioCategory.MUSIC,
63
60
  ScenarioCategory.STEAMPUNK,
@@ -85,16 +82,11 @@ export const SINGLE_PERSON_CATEGORIES: readonly ScenarioCategory[] = [
85
82
  ];
86
83
 
87
84
  /**
88
- * Couple categories - scenarios designed for two people
85
+ * Multi-person categories - scenarios that may involve multiple people
86
+ * Note: Does NOT include intimate/romantic content (App Store Guidelines 1.1)
89
87
  */
90
- export const COUPLE_CATEGORIES: readonly ScenarioCategory[] = [
91
- ScenarioCategory.INTIMATE,
88
+ export const MULTI_PERSON_CATEGORIES: readonly ScenarioCategory[] = [
92
89
  ScenarioCategory.WEDDING,
93
- ScenarioCategory.AFFECTION,
94
- ScenarioCategory.ROMANTIC_KISSES,
95
- ScenarioCategory.SULTRY,
96
- ScenarioCategory.STOLEN_MOMENTS,
97
- ScenarioCategory.CONNECTION,
98
90
  ScenarioCategory.FAMILY,
99
91
  ScenarioCategory.TIME_TRAVEL,
100
92
  ScenarioCategory.HOME_LIFE,
@@ -107,6 +99,6 @@ export const COUPLE_CATEGORIES: readonly ScenarioCategory[] = [
107
99
  * All categories
108
100
  */
109
101
  export const ALL_CATEGORIES: readonly ScenarioCategory[] = [
110
- ...SINGLE_PERSON_CATEGORIES,
111
- ...COUPLE_CATEGORIES,
102
+ ...GENERAL_CATEGORIES,
103
+ ...MULTI_PERSON_CATEGORIES,
112
104
  ];
@@ -6,7 +6,6 @@
6
6
  export enum ScenarioCategory {
7
7
  TIME_TRAVEL = "time_travel",
8
8
  FAMILY = "family",
9
- INTIMATE = "intimate",
10
9
  WEDDING = "wedding",
11
10
  TRAVEL = "travel",
12
11
  CULTURAL = "cultural",
@@ -45,18 +44,11 @@ export enum ScenarioCategory {
45
44
  VILLAINOUS = "villainous",
46
45
  ELITE = "elite",
47
46
  GOTHIC = "gothic",
48
- CONNECTION = "connection",
49
47
  DAILY_ESSENCE = "daily_essence",
50
- MOVIE_LEGENDS = "movie_legends",
51
- ICONIC_MOMENTS = "iconic_moments",
52
48
  FOLKLORE = "folklore",
53
49
  MUSIC = "music",
54
50
  STEAMPUNK = "steampunk",
55
51
  ADVENTURE = "adventure",
56
- AFFECTION = "affection",
57
- ROMANTIC_KISSES = "romantic_kisses",
58
- SULTRY = "sultry",
59
- STOLEN_MOMENTS = "stolen_moments",
60
52
  URBAN_NIGHTS = "urban_nights",
61
53
  VINTAGE_SUMMER = "vintage_summer",
62
54
  ART_STUDIO = "art_studio",
@@ -6,8 +6,6 @@ export const AI_FEATURES_IDS = {
6
6
  // Special
7
7
  CUSTOM: "custom",
8
8
  // AI Features
9
- AI_HUG: "ai-hug",
10
- AI_KISS: "ai-kiss",
11
9
  TEXT_TO_VIDEO: "text-to-video",
12
10
  IMAGE_TO_VIDEO: "image-to-video",
13
11
  TEXT_TO_IMAGE: "text-to-image",
@@ -1,43 +1,6 @@
1
1
  /**
2
2
  * Intimate & Romantic Scenario IDs
3
+ * REMOVED: Content violates App Store Guidelines 1.1
3
4
  */
4
5
 
5
- export const INTIMATE_ROMANTIC_IDS = {
6
- // Intimate
7
- LUXURY_SPA: "luxury_spa",
8
- BUBBLE_BATH: "bubble_bath",
9
- SUNRISE_BED: "sunrise_bed",
10
- WINE_TASTING: "wine_tasting",
11
- ROSE_PETALS: "rose_petals",
12
- PRIVATE_BEACH: "private_beach",
13
- MASQUERADE: "masquerade",
14
- MOONLIGHT_BALCONY: "moonlight_balcony",
15
- // Affection
16
- BACK_HUG_SURPRISE: "back_hug_surprise",
17
- REUNION_EMBRACE: "reunion_embrace",
18
- COZY_BLANKET_HUG: "cozy_blanket_hug",
19
- BEAR_HUG_LIFT: "bear_hug_lift",
20
- RAINY_STREET_EMBRACE: "rainy_street_embrace",
21
- KITCHEN_WARMTH_HUG: "kitchen_warmth_hug",
22
- // Romantic Kisses
23
- FIRST_KISS_MOMENT: "first_kiss_moment",
24
- FOREHEAD_KISS_GENTLE: "forehead_kiss_gentle",
25
- HAND_KISS_ELEGANCE: "hand_kiss_elegance",
26
- SUNSET_KISS_SILHOUETTE: "sunset_kiss_silhouette",
27
- ESKIMO_KISS_PLAYFUL: "eskimo_kiss_playful",
28
- WEDDING_KISS_ALTAR: "wedding_kiss_altar",
29
- RAINY_KISS_PASSION: "rainy_kiss_passion",
30
- // Sultry
31
- MAGNETIC_GAZE: "magnetic_gaze",
32
- STEAMY_MIRROR_SILHOUETTE: "steamy_mirror_silhouette",
33
- SILK_AND_SHADOWS: "silk_and_shadows",
34
- PASSIONATE_WHISPER: "passionate_whisper",
35
- LOVERS_FIREPLACE_INTIMACY: "lovers_fireplace_intimacy",
36
- TANGLED_SHEETS_MOMENT: "tangled_sheets_moment",
37
- // Stolen Moments
38
- UNDER_TABLE_HAND_HOLD: "under_table_hand_hold",
39
- CROWD_STOLEN_LOOK: "crowd_stolen_look",
40
- ELEVATOR_PROXIMITY: "elevator_proximity",
41
- LIBRARY_SECRET_KISS: "library_secret_kiss",
42
- BACKSTAGE_TENSION: "backstage_tension",
43
- } as const;
6
+ export const INTIMATE_ROMANTIC_IDS = {} as const;
@@ -1,35 +1,6 @@
1
1
  /**
2
2
  * Movie Legends & Iconic Moments Scenario IDs
3
+ * REMOVED: Couple/romantic content violates App Store Guidelines 1.1
3
4
  */
4
5
 
5
- export const MOVIE_LEGENDS_IDS = {
6
- // Movie Legends
7
- TITANIC_BOW: "titanic_bow",
8
- SMITH_BACK_TO_BACK: "smith_back_to_back",
9
- PULP_FICTION_DANCE: "pulp_fiction_dance",
10
- MATRIX_BULLET_TIME: "matrix_bullet_time",
11
- LA_LA_LAND_DANCE: "la_la_land_dance",
12
- GATSBY_CHEERS: "gatsby_cheers",
13
- ROMEO_AQUARIUM: "romeo_aquarium",
14
- NOTEBOOK_RAIN: "notebook_rain",
15
- GHOST_POTTERY: "ghost_pottery",
16
- SPIDERMAN_KISS: "spiderman_kiss",
17
- DIRTY_DANCING_LIFT: "dirty_dancing_lift",
18
- PRETTY_WOMAN_BALCONY: "pretty_woman_balcony",
19
- TWILIGHT_MEADOW: "twilight_meadow",
20
- PRIDE_PREJUDICE_WALK: "pride_prejudice_walk",
21
- ETERNAL_SUNSHINE_ICE: "eternal_sunshine_ice",
22
- CASABLANCA_FAREWELL: "casablanca_farewell",
23
- TIFFANYS_RAIN: "tiffanys_rain",
24
- STAR_IS_BORN_LOOK: "star_is_born_look",
25
- GHOST_DEW_DROP: "ghost_dew_drop",
26
- // Iconic Moments
27
- KLIMT_THE_KISS: "klimt_the_kiss",
28
- TIMES_SQUARE_KISS: "times_square_kiss",
29
- AMERICAN_GOTHIC_POSE: "american_gothic_pose",
30
- ABBEY_ROAD_WALK: "abbey_road_walk",
31
- LENNON_YOKO_POSE: "lennon_yoko_pose",
32
- SKY_LUNCH_POSE: "sky_lunch_pose",
33
- MAGRITTE_LOVERS: "magritte_lovers",
34
- CREATION_TOUCH: "creation_touch",
35
- } as const;
6
+ export const MOVIE_LEGENDS_IDS = {} as const;
@@ -11,8 +11,8 @@ export type { Scenario } from "./domain/Scenario";
11
11
  // Category Groups - Pre-defined category groups for filtering
12
12
  export {
13
13
  TRUE_SOLO_CATEGORIES,
14
- SINGLE_PERSON_CATEGORIES,
15
- COUPLE_CATEGORIES,
14
+ GENERAL_CATEGORIES,
15
+ MULTI_PERSON_CATEGORIES,
16
16
  ALL_CATEGORIES,
17
17
  } from "./domain/category-groups";
18
18
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * useVideoGeneration Hook
3
- * Generic video generation hook for dual-image video features (ai-hug, ai-kiss)
3
+ * Generic video generation hook for dual-image video features
4
4
  * Uses centralized orchestrator for credit/error handling
5
5
  */
6
6
 
@@ -13,7 +13,7 @@ import { createCreationsRepository } from "../../../domains/creations/infrastruc
13
13
  import type { Creation } from "../../../domains/creations/domain/entities/Creation";
14
14
 
15
15
  /**
16
- * Input for dual image video features (ai-hug, ai-kiss)
16
+ * Input for dual image video features
17
17
  */
18
18
  export interface DualImageVideoInput {
19
19
  sourceImageBase64: string;
@@ -22,7 +22,7 @@ export interface DualImageVideoInput {
22
22
  }
23
23
 
24
24
  export interface VideoGenerationConfig<TResult> {
25
- /** Feature type (ai-hug, ai-kiss) */
25
+ /** Feature type for video generation */
26
26
  featureType: VideoFeatureType;
27
27
  /** User ID for credit operations */
28
28
  userId: string | undefined;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DualImageFeatureLayout
3
- * Centralized layout for all dual-image processing features (face-swap, ai-kiss, ai-hug)
3
+ * Centralized layout for all dual-image processing features (face-swap)
4
4
  * Handles: ScrollView, AIGenerationForm, AIGenerationResult, GenerationProgressContent
5
5
  * Note: No Modal wrapper - shows fullscreen progress when processing (FutureUS pattern)
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * DualImageVideoFeatureLayout
3
- * Centralized layout for dual-image video features (ai-kiss, ai-hug)
3
+ * Centralized layout for dual-image video features
4
4
  * Handles: ScrollView, AIGenerationForm, AIGenerationResult, GenerationProgressContent
5
5
  * Note: No Modal wrapper - shows fullscreen progress when processing (FutureUS pattern)
6
6
  */
@@ -120,14 +120,14 @@ Layout for dual image/video features:
120
120
  ```tsx
121
121
  import { DualImageVideoFeatureLayout } from '@umituz/react-native-ai-generation-content';
122
122
 
123
- function AIHugScreen() {
123
+ function ImageToVideoScreen() {
124
124
  return (
125
125
  <DualImageVideoFeatureLayout
126
- featureId="ai-hug"
126
+ featureId="image-to-video"
127
127
  userId="user-123"
128
128
  config={{
129
- title: 'AI Hug',
130
- description: 'Generate AI hug images',
129
+ title: 'Image to Video',
130
+ description: 'Generate video from images',
131
131
  inputType: 'image',
132
132
  }}
133
133
  onSelectSource={async () => {
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  /**
7
- * Dual image video feature state (for ai-kiss, ai-hug)
7
+ * Dual image video feature state
8
8
  */
9
9
  export interface DualImageVideoFeatureState {
10
10
  sourceImageUri: string | null;
@@ -115,11 +115,8 @@ type AIFeatureId =
115
115
  | 'inpainting'
116
116
  | 'image-to-image'
117
117
  | 'image-to-video'
118
- | 'ai-hug'
119
- | 'ai-kiss'
120
118
  | 'anime-selfie'
121
119
  | 'meme-generator'
122
- | 'couple-future'
123
120
  | 'future-prediction'
124
121
  | 'sketch-to-image'
125
122
  | 'script-generator'