earthy-buat

byFatihaja

Buat website sederhana

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

Page 1 of 27

System Requirements Document for earthy-buat

1. Introduction

earthy-buat delivers NEXUS AI STUDIO — PHOTO & VIDEO ENHANCER, a professional AI-based photo and video editing platform with premium visual quality, a modern interface, and editing features that are easy to use from both phone and PC. The product must contain features that genuinely function — not merely designs or demo buttons.

The audience is hobbyist photographers, social creators, and small studios in Indonesia and beyond who want visible, believable quality gains from AI enhancement. The platform serves four accepted user roles: a Photo Editor working on still images, a Video Editor working on video enhancement and stabilization, a Face Swap Creator working on consent-based face replacement in video, and a Project Owner managing projects, downloads, and settings. The product must feel like a serious instrument that renders real results, not a hype toy.

Page 2 of 27

2. System Overview

NEXUS AI STUDIO is a responsive web application with a dark-mode professional editing interface. It provides a dashboard with ten menu destinations, dedicated workspaces for photo enhancement, video enhancement, video stabilization, face swap, background removal, color correction, and sharpen & deblur, plus project management, result downloads, and settings.

The application is delivered as a first-party web product with application-owned identity: users establish their own access through self-service enrollment and return through verification, so that durable projects, job status, results, and settings remain bound to the correct person. Heavy AI work (upscaling, video enhancement, face swap) runs on a Python/FastAPI backend using FFmpeg, OpenCV, and AI models, with GPU acceleration when available. Lightweight adjustments (brightness, contrast, saturation, crop, basic filters) preview directly in the browser.

Every processing job follows the pipeline UPLOAD → VALIDASI FILE → PILIH FITUR → PENGATURAN → PROSES AI → PREVIEW → DOWNLOAD and carries one of five statuses: Waiting, Uploading, Processing, Completed, Failed. When the AI backend is not configured, the interface displays the status "AI backend belum dikonfigurasi" and never fakes a completed render.

Narrow exclusions: The product does not claim that iPhone Natural Look results come from a real iPhone camera; does not promise 100% stabilization; does not promise perfect quality when image information is already lost from the source file; does not permit face swap for impersonation, fake evidence, or misleading video; and does not present AI results as genuine recordings without appropriate disclosure.

Page 3 of 27

2a. Product Interpretation and Delivery Boundary

The product is a first-party web application. Anonymous visitors can read the Landing page to understand what NEXUS AI STUDIO does and what it targets. Because projects, job status, results, and settings are durable and must remain bound to the correct person, the application owns identity: a visitor enrolls through Sign Up, and returning users verify through Login. Protected destinations — the dashboard, all tool workspaces, My Projects, Download Results, and Settings — are reachable only after identity is established.

Heavy AI processing is owned by the application's backend, which may call external AI APIs or self-hosted models; API keys live in server environment variables and never in frontend code. The browser owns only the lightweight real-time preview of brightness, contrast, saturation, crop, and basic filters, using Web Workers or WebAssembly where appropriate and WebGL/WebGPU when the device supports it. The product does not claim that all features run in real time when the device or model does not support it.

Current scope covers all ten dashboard destinations, the full processing pipeline, job statuses, retry on failure, project deletion, export quality settings, and the security/privacy constraints. Future scope is limited to what is explicitly deferred in Section 11.

2b. Source Content Inventory

Not applicable — no reference directive with content_source was supplied.

2c. Page Content and Component Coverage

Page 4 of 27

Landing

  • Information/state: Anonymous entry explaining NEXUS AI STUDIO — PHOTO & VIDEO ENHANCER, its target users, and its editing functions before identity or protected work exists. Full-bleed generative hero band with the stacked headline "UPLOAD. / ENHANCE. / 4K." set flush-left on ruled baselines. A narrow vertical status column on the right edge lists AI backend state, max supported resolution, and queue depth in 11px uppercase tracked micro-type.
  • Primary actions: "Upload Photo" and "Upload Video" instrument panels (56px tall on desktop, full-width stacked at 375px) that route an anonymous visitor into the identity boundary before any protected work begins; entry to Sign Up and Login.
  • Supporting actions: Read the AI-backend status pill; read the max supported resolution and queue depth readouts.
  • Domain entities: AI backend status, max supported resolution, queue depth.
  • Component responsibilities: Generative hero canvas (real-time particle field, cyan/violet, resolution gradient left-to-right); stacked headline block with cyan rules bleeding to the viewport edge; upload instrument panels; status column; identity entry links.
  • States: Loading — hero canvas initializes with a static gradient field until WebGL is ready. Empty — no user media present; hero is the only visual subject. Success — visitor proceeds to Sign Up or Login. Error — WebGL unavailable: static gradient field replaces the canvas, all text and controls remain whole. Recovery — reduced-motion or no-WebGL fallback keeps the composition and controls intact.

Sign Up

  • Information/state: Self-service enrollment surface for a visitor who wants to own and resume durable projects. Explains that projects, job status, results, and settings are bound to the account.
  • Primary actions: Submit enrollment details to create the account; proceed to the dashboard after successful enrollment.
  • Supporting actions: Navigate to Login if already enrolled; return to Landing.
  • Domain entities: Account identity, enrollment submission.
  • Component responsibilities: Enrollment form; validation messaging; submit control; link to Login.
  • States: Loading — submit control shows an in-progress state. Empty — blank form. Success — account created, routed to the dashboard. Error — invalid or incomplete input shows a clear inline message; server failure shows a retryable message. Recovery — the form retains entered values so the user can correct and resubmit.

Login

  • Information/state: Returning verification surface for users who already own projects, results, settings, or stored work.
  • Primary actions: Submit credentials to verify identity; proceed to the dashboard after successful verification.
  • Supporting actions: Navigate to Sign Up; return to Landing.
  • Domain entities: Account identity, verification submission.
  • Component responsibilities: Verification form; validation messaging; submit control; link to Sign Up.
  • States: Loading — submit control shows an in-progress state. Empty — blank form. Success — verified, routed to the dashboard. Error — incorrect credentials show a clear message without revealing which field failed; server failure shows a retryable message. Recovery — the form retains the entered identifier so the user can retry.
Page 5 of 27

NEXUS AI STUDIO — PHOTO & VIDEO ENHANCER

  • Information/state: Main dashboard. Displays the file upload area, the list of recent projects, processing status, and result resolution information. Hosts the menu of ten destinations: AI Photo Enhancer, AI Video Enhancer, AI Video Stabilizer, AI Face Swap, AI Background Remover, AI Color Correction, AI Sharpen & Deblur, My Projects, Download Results, Settings. Opens with a full-bleed generative hero band, then a two-column work area: a wide upload/canvas stage (8 columns) and a narrow inspector column (4 columns).
  • Primary actions: Drag-and-drop upload; "Upload Photo" and "Upload Video" buttons; open any of the ten menu destinations; select a recent project to resume.
  • Supporting actions: Read processing status per job; read result resolution; read the AI-backend status pill; change export quality from the top strip.
  • Domain entities: Project, job, job status (Waiting, Uploading, Processing, Completed, Failed), result resolution, export quality, AI backend status.
  • Component responsibilities: Collapsible sidebar (264px desktop, 64px icon rail, off-canvas drawer under 768px); top strip with wordmark, AI-backend status pill, and export-quality selector; generative hero band; upload dropzone (28px radius); recent-projects list; job status rows; resolution readouts in tabular figures; mobile bottom navigation (Home, Enhance, Projects, Downloads, Settings) with 44px minimum touch targets.
  • States: Loading — hero band and recent-projects list show skeleton placeholders. Empty — no recent projects: the upload stage is the primary subject with a clear invitation to upload. Success — a job appears in the recent list with its status and, when completed, its result resolution. Error — upload validation failure shows a clear message; backend-absent state shows "AI backend belum dikonfigurasi" and disables processing. Recovery — failed jobs expose an inline retry control; the user can re-upload or open My Projects.

AI Photo Enhancer

  • Information/state: Photo enhancement workspace. Shows the uploaded photo on the canvas stage, the preset list (Natural HD, Ultra Clear, 4K Detail, HDR Photo, Low Light Recovery, Portrait Enhance, Old Photo Restoration), AI controls (AI Upscale 2×/4×/8×, output resolution up to 4K if supported by the processing model, AI Denoise, AI Deblur, AI Sharpen, AI Face Enhancement, HDR-style enhancement, automatic color correction, lighting and shadow correction), manual adjustments (brightness, contrast, saturation, exposure, sharpness), the Before & After comparison slider, and export format selection (PNG, JPG, WebP).
  • Primary actions: Upload a photo; select a preset; set upscale factor; toggle AI Denoise, AI Deblur, AI Sharpen, AI Face Enhancement, HDR-style enhancement, automatic color correction, lighting and shadow correction; adjust brightness, contrast, saturation, exposure, sharpness; drag the Before & After slider; choose export format; start processing; download the result.
  • Supporting actions: Read live resolution and file-size readouts above each side of the comparison; read job status; retry a failed job; read the AI-backend status pill.
  • Domain entities: Photo project, preset, upscale factor, AI enhancement toggles, manual adjustment values, Before & After comparison, export format, job status, result resolution.
  • Component responsibilities: Upload dropzone; preset selector; AI control panel; manual slider panel; Before & After instrument (1px cyan scanning line, square machined handle, tabular-figure readouts); export format selector; Process button; progress bar; success/failure notification.
  • States: Loading — canvas shows the uploaded photo while the inspector loads. Empty — no photo uploaded: the dropzone is the primary subject. Success — processed result appears in the Before & After slider with its resolution and file size; a success notification is shown. Error — validation failure (wrong type or size) shows a clear message; processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process. Recovery — retry re-runs the job with the same settings; the user can change settings and reprocess.
  • Constraint surface: The workspace must preserve face identity, expression, pose, skin tone, clothing, and the original background; it must not change face shape or add details inconsistent with the source photo.

AI Video Enhancer

  • Information/state: Video enhancement workspace. Shows the uploaded video, the preset list (iPhone Natural Look, Ultra HD, Cinematic HDR, Sharp Detail, Low Light Enhancement, Social Media Quality), AI controls (AI Video Upscaling up to 4K if supported, AI Video Denoise, AI Video Deblur, Detail Enhancement, Color Grading, HDR-style Color Enhancement, Auto Exposure Correction, Shadow & Highlight Recovery, Frame Interpolation if supported, FPS setting according to model capability), before-and-after video preview, and MP4 export resolution selection (720p, 1080p, 4K according to system support).
  • Primary actions: Upload a video; select a preset; toggle AI enhancement controls; set FPS; set export resolution; start processing; preview before and after; download the MP4 result.
  • Supporting actions: Read job status and progress; read duration, FPS, and resolution readouts in tabular figures; retry a failed job; read the AI-backend status pill.
  • Domain entities: Video project, preset, AI enhancement toggles, FPS setting, export resolution, before/after preview, job status.
  • Component responsibilities: Upload dropzone; preset selector; AI control panel; FPS control; export resolution selector; before/after video preview; Process button; progress bar; success/failure notification.
  • States: Loading — video loads into the preview stage. Empty — no video uploaded: the dropzone is the primary subject. Success — processed video plays in the before/after preview; a success notification is shown. Error — validation failure shows a clear message; processing failure shows a clear message with a retry button; unsupported resolution or FPS shows a clear capability message; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process. Recovery — retry re-runs the job; the user can lower resolution or FPS and reprocess.
  • Constraint surface: The iPhone Natural Look preset must imitate a natural visual character, clear detail, reasonable skin tones, and balanced dynamic range; the interface must not claim the result came from a real iPhone camera.
Page 6 of 27

AI Video Stabilizer

  • Information/state: Video stabilization workspace. Shows the uploaded video, stabilization level selection (Low, Medium, Strong), Auto Crop toggle to cover empty areas caused by stabilization, crop adjustment controls so the user can control the cut region, original aspect ratio preservation, Before & After preview, and audio-video synchronization status.
  • Primary actions: Upload a video; choose stabilization level; enable Auto Crop; adjust the crop region; start processing; preview before and after; download the stabilized result.
  • Supporting actions: Read job status and progress; read aspect ratio and duration readouts; retry a failed job; read the AI-backend status pill.
  • Domain entities: Video project, stabilization level, crop region, aspect ratio, audio-video synchronization, job status.
  • Component responsibilities: Upload dropzone; stabilization level selector; Auto Crop toggle; crop adjustment control; Before & After preview; Process button; progress bar; success/failure notification.
  • States: Loading — video loads into the preview stage. Empty — no video uploaded: the dropzone is the primary subject. Success — stabilized video plays in the before/after preview with audio and video in sync; a success notification is shown. Error — validation failure shows a clear message; processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process. Recovery — retry re-runs the job; the user can change stabilization level or crop and reprocess.
  • Constraint surface: The feature targets smoother motion without excessive distortion; the interface must not promise that video is always 100% stable, because results depend on the source video's condition.

AI Face Swap

  • Information/state: Dedicated face swap workspace. Shows the source video, the reference face photo, the system check results for quality, lighting, and face compatibility, per-frame face detection results, the face selection control when multiple people appear in the video, Face Tracking status, lighting and skin tone adjustment controls, blending strength control, Before & After preview, and the consent confirmation for using another person's face photo. Displays the AI-edited content label when required.
  • Primary actions: Upload the source video; upload the reference face photo; confirm consent for using another person's face photo; select which face to swap when multiple people are present; enable Face Tracking; adjust lighting and skin tone; set blending strength; start processing; preview before and after; download the processed video.
  • Supporting actions: Read the system check results; read job status and progress; read processing duration relative to server capability; retry a failed job; read the AI-backend status pill.
  • Domain entities: Face swap project, source video, reference face photo, quality/lighting/compatibility check result, detected faces per frame, selected face, Face Tracking state, lighting and skin tone values, blending strength, consent confirmation, AI-edited content label, job status.
  • Component responsibilities: Source video dropzone; reference face photo dropzone; system check panel; face selection control; Face Tracking toggle; lighting and skin tone controls; blending strength control; Before & After preview; consent confirmation control; AI-edited content label; Process button; progress bar; success/failure notification.
  • States: Loading — video and reference photo load into their stages. Empty — no source video or no reference photo: the corresponding dropzone is the primary subject. Success — processed video plays in the before/after preview with the AI-edited content label; a success notification is shown. Error — validation failure shows a clear message; failed quality, lighting, or compatibility check shows a clear explanation; processing failure shows a clear message with a retry button; missing consent blocks processing with a clear message; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process. Recovery — retry re-runs the job; the user can replace the reference photo or adjust settings and reprocess.
  • Constraint surface: Only face photos owned by the user or used with the permission of the person concerned may be used. The feature must not be used to impersonate another person, create fake evidence, or create misleading video. The result must be labeled as AI-edited content when required.

AI Background Remover

  • Information/state: Background removal destination for uploaded media. Shows the uploaded media, the removal result, and the export controls.
  • Primary actions: Upload media; start background removal; preview the result; download the result.
  • Supporting actions: Read job status and progress; retry a failed job; read the AI-backend status pill.
  • Domain entities: Media project, background removal result, job status.
  • Component responsibilities: Upload dropzone; result preview; Process button; progress bar; success/failure notification.
  • States: Loading — media loads into the preview stage. Empty — no media uploaded: the dropzone is the primary subject. Success — the result appears in the preview; a success notification is shown. Error — validation failure shows a clear message; processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process. Recovery — retry re-runs the job.
Page 7 of 27

AI Color Correction

  • Information/state: Color correction destination for uploaded media. Shows the uploaded media, color and lighting controls, and the corrected result.
  • Primary actions: Upload media; adjust color and lighting controls; start correction; preview the result; download the result.
  • Supporting actions: Read job status and progress; retry a failed job; read the AI-backend status pill.
  • Domain entities: Media project, color and lighting values, corrected result, job status.
  • Component responsibilities: Upload dropzone; color and lighting control panel; result preview; Process button; progress bar; success/failure notification.
  • States: Loading — media loads into the preview stage. Empty — no media uploaded: the dropzone is the primary subject. Success — the corrected result appears in the preview; a success notification is shown. Error — validation failure shows a clear message; processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process. Recovery — retry re-runs the job; the user can change controls and reprocess.

AI Sharpen & Deblur

  • Information/state: Sharpen and deblur destination for uploaded media. Shows the uploaded media, sharpness and deblur controls, and the processed result.
  • Primary actions: Upload media; adjust sharpness and deblur controls; start processing; preview the result; download the result.
  • Supporting actions: Read job status and progress; retry a failed job; read the AI-backend status pill.
  • Domain entities: Media project, sharpness and deblur values, processed result, job status.
  • Component responsibilities: Upload dropzone; sharpness and deblur control panel; result preview; Process button; progress bar; success/failure notification.
  • States: Loading — media loads into the preview stage. Empty — no media uploaded: the dropzone is the primary subject. Success — the processed result appears in the preview; a success notification is shown. Error — validation failure shows a clear message; processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process. Recovery — retry re-runs the job; the user can change controls and reprocess.

My Projects

  • Information/state: Browse and management surface for projects. Shows the project list, each project's job status (Waiting, Uploading, Processing, Completed, Failed), result resolution, and a delete control per project. Job rows render as a pipeline strip — WAITING → UPLOADING → PROCESSING → COMPLETED → FAILED — drawn as five connected segments that fill with cyan as the job advances.
  • Primary actions: Open a project to resume it; delete a project; retry a failed job from its inline retry control.
  • Supporting actions: Read status, resolution, and timestamps; filter or scan the list.
  • Domain entities: Project, job, job status, result resolution, deletion.
  • Component responsibilities: Project list; pipeline strip per job row; inline retry control on the failed segment; delete control; status readouts in tabular figures.
  • States: Loading — the project list shows skeleton rows. Empty — no projects: a clear invitation to start an upload. Success — projects list with current statuses and resolutions. Error — list load failure shows a clear message with a retry control; a failed job shows its failed segment expanded into an inline retry control. Recovery — retry re-runs the failed job; deletion removes the project after confirmation.
Page 8 of 27

Download Results

  • Information/state: Destination for reviewing and downloading processed photo or video results with the supported formats and quality. Shows each completed result with its resolution and file size.
  • Primary actions: Download a result; choose the supported format or quality where applicable.
  • Supporting actions: Read resolution and file size readouts in tabular figures; navigate back to the originating project.
  • Domain entities: Result, format, quality, resolution, file size.
  • Component responsibilities: Result list; download control; format/quality selector; resolution and file-size readouts.
  • States: Loading — the result list shows skeleton rows. Empty — no completed results: a clear message pointing to the tool workspaces. Success — the download begins and a success notification is shown. Error — download failure shows a clear message with a retry control. Recovery — retry re-attempts the download.

Settings

  • Information/state: User preference destination, including export quality settings.
  • Primary actions: Change export quality; save preferences.
  • Supporting actions: Read the AI-backend status pill; read current preference values.
  • Domain entities: Export quality preference, user preferences.
  • Component responsibilities: Export quality selector; preference controls; save control; success/failure notification.
  • States: Loading — current preferences load into the controls. Empty — defaults are shown when no preference has been set. Success — saved preferences are confirmed with a success notification. Error — save failure shows a clear message with a retry control. Recovery — retry re-attempts the save; unsaved values remain in the controls.
Page 9 of 27

3. Functional Requirements

FR-1 — Dashboard menu and overview (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should see a main dashboard with the menu items AI Photo Enhancer, AI Video Enhancer, AI Video Stabilizer, AI Face Swap, AI Background Remover, AI Color Correction, AI Sharpen & Deblur, My Projects, Download Results, and Settings, so that I can reach every accepted capability from one place.

  • Trigger/input: The user opens the dashboard after identity verification.
  • Observable result: All ten menu destinations are present and navigable; the dashboard shows the file upload area, the list of recent projects, processing status, and result resolution information.
  • Access state: Login required.
  • Failure/recovery: If the recent-projects list fails to load, a clear message with a retry control is shown while the upload area and menu remain usable.
  • Continuation: The user opens a tool workspace or resumes a recent project.

FR-2 — File upload area with drag-and-drop and explicit buttons (explicit) As a Photo Editor, Video Editor, or Face Swap Creator, I should upload files by drag-and-drop or by pressing the "Upload Photo" and "Upload Video" buttons, so that I can start a job from either phone or desktop.

  • Trigger/input: The user drops a file onto the dropzone or presses an upload button.
  • Observable result: The file is accepted into the workspace and the job enters the Uploading status.
  • Access state: Login required.
  • Failure/recovery: Invalid file type or size shows a clear validation message and the file is not accepted.
  • Continuation: The user proceeds to feature selection and settings.

FR-3 — File validation (explicit) As a Photo Editor, Video Editor, or Face Swap Creator, I should have my upload validated for file type and size, so that unsupported or oversized files are rejected before processing.

  • Trigger/input: A file is submitted for upload.
  • Observable result: Valid files proceed; invalid files are rejected with a clear message.
  • Access state: Login required.
  • Failure/recovery: The user can select a different file.
  • Continuation: Valid files move to feature selection.

FR-4 — Video duration and size limits (explicit) As a Video Editor or Face Swap Creator, I should have video duration and size limited according to server capacity, so that processing stays within what the server can handle.

  • Trigger/input: A video is submitted for upload.
  • Observable result: Videos within the server's duration and size capacity are accepted; videos beyond it are rejected with a clear message stating the limit.
  • Access state: Login required.
  • Failure/recovery: The user can trim or replace the video.
  • Continuation: Accepted videos move to feature selection.

FR-5 — Processing pipeline (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should have every job follow UPLOAD → VALIDASI FILE → PILIH FITUR → PENGATURAN → PROSES AI → PREVIEW → DOWNLOAD, so that the workflow is transparent and predictable.

  • Trigger/input: The user starts a job.
  • Observable result: The job advances through the seven pipeline stages in order.
  • Access state: Login required.
  • Failure/recovery: A failure at any stage stops the pipeline and shows a clear message with a retry button.
  • Continuation: The user retries or adjusts settings and reprocesses.

FR-6 — Job statuses (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should see each processing task carry one of the statuses Waiting, Uploading, Processing, Completed, or Failed, so that I always know where my job stands.

  • Trigger/input: A job exists in the system.
  • Observable result: The job displays exactly one of the five statuses at any time.
  • Access state: Login required.
  • Failure/recovery: A Failed job shows a clear message and a retry button.
  • Continuation: The user retries the failed job or opens another project.

FR-7 — Progress bar and notifications (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should see a processing progress bar and success or failure notifications, so that I can follow long-running work and know the outcome.

  • Trigger/input: A job is processing or completes.
  • Observable result: A progress bar reflects job progress; a success or failure notification is shown on completion.
  • Access state: Login required.
  • Failure/recovery: A failure notification states the reason and offers retry.
  • Continuation: The user downloads the result or retries.

FR-8 — AI Photo Enhancer: upscale and AI enhancement controls (explicit) As a Photo Editor, I should enhance an uploaded photo with AI Upscale 2×, 4×, and 8×, output resolution up to 4K if supported by the processing model, AI Denoise, AI Deblur, AI Sharpen, AI Face Enhancement, HDR-style enhancement, automatic color correction, and lighting and shadow correction, so that I can improve photo quality.

  • Trigger/input: The user uploads a photo and selects enhancement controls.
  • Observable result: The processed photo reflects the selected enhancements and reports its output resolution.
  • Access state: Login required.
  • Failure/recovery: Processing failure shows a clear message with a retry button; unsupported upscale or resolution shows a clear capability message.
  • Continuation: The user compares Before & After and exports.

FR-9 — AI Photo Enhancer: manual adjustments (explicit) As a Photo Editor, I should adjust brightness, contrast, saturation, exposure, and sharpness, so that I can fine-tune the result.

  • Trigger/input: The user moves the adjustment controls.
  • Observable result: The preview reflects the adjustment values.
  • Access state: Login required.
  • Failure/recovery: Values outside the supported range are clamped with a clear indication.
  • Continuation: The user processes or exports.

FR-10 — AI Photo Enhancer: Before & After slider (explicit) As a Photo Editor, I should compare the photo Before & After using a slider, so that I can judge the improvement.

  • Trigger/input: The user drags the comparison slider.
  • Observable result: The split view moves with the drag, showing the original on one side and the processed result on the other, with live resolution and file-size readouts above each side.
  • Access state: Login required.
  • Failure/recovery: If the processed result is unavailable, the slider shows the original only with a clear message.
  • Continuation: The user exports or adjusts settings.

FR-11 — AI Photo Enhancer: export formats (explicit) As a Photo Editor, I should export the result as PNG, JPG, or WebP, so that I can match the format to my destination.

  • Trigger/input: The user selects an export format and downloads.
  • Observable result: The downloaded file uses the selected format.
  • Access state: Login required.
  • Failure/recovery: Export failure shows a clear message with a retry control.
  • Continuation: The user downloads again or returns to the workspace.

FR-12 — AI Photo Enhancer: identity preservation constraint (explicit) As a Photo Editor, I should have the enhancement preserve face identity, expression, pose, skin tone, clothing, and the original background, and should not have the face shape changed or details added that are inconsistent with the source photo, so that the result remains faithful to my photo.

  • Trigger/input: A photo is processed.
  • Observable result: The result retains the source's face identity, expression, pose, skin tone, clothing, and background.
  • Access state: Login required.
  • Failure/recovery: If the model cannot honor the constraint, the job fails with a clear message rather than producing an altered identity.
  • Continuation: The user adjusts settings and reprocesses.

FR-13 — AI Photo Enhancer presets (explicit) As a Photo Editor, I should apply the presets Natural HD, Ultra Clear, 4K Detail, HDR Photo, Low Light Recovery, Portrait Enhance, and Old Photo Restoration, so that I can reach a good result quickly.

  • Trigger/input: The user selects a preset.
  • Observable result: The preset's settings are applied to the enhancement controls and reflected in the preview.
  • Access state: Login required.
  • Failure/recovery: If a preset cannot be applied, a clear message is shown and the previous settings remain.
  • Continuation: The user processes or further adjusts.

FR-14 — AI Video Enhancer: enhancement controls (explicit) As a Video Editor, I should enhance an uploaded video with AI Video Upscaling up to 4K if supported, AI Video Denoise, AI Video Deblur, Detail Enhancement, Color Grading, HDR-style Color Enhancement, Auto Exposure Correction, Shadow & Highlight Recovery, Frame Interpolation if supported, and FPS setting according to model capability, so that I can improve video quality.

  • Trigger/input: The user uploads a video and selects enhancement controls.
  • Observable result: The processed video reflects the selected enhancements.
  • Access state: Login required.
  • Failure/recovery: Processing failure shows a clear message with a retry button; unsupported upscaling, frame interpolation, or FPS shows a clear capability message.
  • Continuation: The user previews before and after and exports.

FR-15 — AI Video Enhancer: before/after preview and MP4 export (explicit) As a Video Editor, I should preview the video before and after processing and export MP4 at 720p, 1080p, or 4K according to system support, so that I can verify and deliver the result.

  • Trigger/input: The user plays the preview and selects an export resolution.
  • Observable result: The preview plays both versions; the exported file is MP4 at the selected resolution when supported.
  • Access state: Login required.
  • Failure/recovery: An unsupported resolution shows a clear capability message; export failure shows a clear message with a retry control.
  • Continuation: The user downloads or changes resolution.

FR-16 — AI Video Enhancer presets (explicit) As a Video Editor, I should apply the presets iPhone Natural Look, Ultra HD, Cinematic HDR, Sharp Detail, Low Light Enhancement, and Social Media Quality, so that I can reach a good result quickly.

  • Trigger/input: The user selects a preset.
  • Observable result: The preset's settings are applied and reflected in the preview.
  • Access state: Login required.
  • Failure/recovery: If a preset cannot be applied, a clear message is shown and the previous settings remain.
  • Continuation: The user processes or further adjusts.

FR-17 — iPhone Natural Look constraint (explicit) As a Video Editor, I should have the iPhone Natural Look preset imitate a natural visual character with clear detail, reasonable skin tones, and balanced dynamic range, and the interface should not claim the result came from a real iPhone camera, so that the preset is honest about what it does.

  • Trigger/input: The iPhone Natural Look preset is applied.
  • Observable result: The result shows natural character, clear detail, reasonable skin tones, and balanced dynamic range; no claim of real iPhone camera origin appears anywhere in the interface or output labeling.
  • Access state: Login required.
  • Failure/recovery: If the preset cannot be applied, a clear message is shown.
  • Continuation: The user processes or selects another preset.

FR-18 — AI Video Stabilizer: stabilization controls (explicit) As a Video Editor, I should stabilize a shaky or walking-recorded video with AI Video Stabilization that reduces camera shake and corrects unstable camera movement, using Low, Medium, or Strong stabilization, so that the motion is smoother.

  • Trigger/input: The user uploads a video and selects a stabilization level.
  • Observable result: The processed video shows reduced camera shake and corrected unstable movement at the selected level.
  • Access state: Login required.
  • Failure/recovery: Processing failure shows a clear message with a retry button.
  • Continuation: The user previews before and after and exports.

FR-19 — AI Video Stabilizer: Auto Crop and crop control (explicit) As a Video Editor, I should use Auto Crop to cover empty areas caused by stabilization and adjust the crop so that I control the cut region, while the original aspect ratio is preserved, so that the stabilized frame stays clean and correctly proportioned.

  • Trigger/input: The user enables Auto Crop or adjusts the crop region.
  • Observable result: Empty areas are covered; the crop region matches the user's adjustment; the original aspect ratio is preserved.
  • Access state: Login required.
  • Failure/recovery: If the crop cannot preserve the aspect ratio, a clear message explains the constraint.
  • Continuation: The user processes or adjusts the crop.

FR-20 — AI Video Stabilizer: preview and audio-video synchronization (explicit) As a Video Editor, I should preview Before & After and have audio and video synchronization maintained, so that the stabilized result is usable.

  • Trigger/input: The user plays the before/after preview.
  • Observable result: Both versions play; audio and video remain in sync in the processed result.
  • Access state: Login required.
  • Failure/recovery: If synchronization cannot be maintained, the job fails with a clear message rather than delivering a desynchronized result.
  • Continuation: The user retries or adjusts settings.

FR-21 — Stabilizer honesty constraint (explicit) As a Video Editor, I should see the feature target smoother motion without excessive distortion, and the interface should not promise that video is always 100% stable, because results depend on the source video's condition, so that my expectations match reality.

  • Trigger/input: The user opens or uses the stabilizer.
  • Observable result: The interface states that results depend on the source video's condition and does not promise 100% stability.
  • Access state: Login required.
  • Failure/recovery: Not applicable — this is a presentation constraint.
  • Continuation: The user proceeds with stabilization.

FR-22 — AI Face Swap: guided flow (explicit) As a Face Swap Creator, I should open the AI Face Swap menu, upload a source video, upload a reference face photo, have the system check quality, lighting, and face compatibility, have the system detect faces in every frame, have the system process the face replacement while preserving expression, gaze direction, lighting, and head movement for a consistent result, see a preview of the result, and download the processed video, so that I can complete a face swap end to end.

  • Trigger/input: The user opens AI Face Swap and uploads a source video and a reference face photo.
  • Observable result: The system reports the quality, lighting, and compatibility check; detects faces per frame; produces a consistent replacement preserving expression, gaze direction, lighting, and head movement; shows a preview; and allows download.
  • Access state: Login required.
  • Failure/recovery: A failed quality, lighting, or compatibility check shows a clear explanation; processing failure shows a clear message with a retry button.
  • Continuation: The user downloads the result or replaces the reference photo and reprocesses.

FR-23 — AI Face Swap: additional controls (explicit) As a Face Swap Creator, I should select which face to swap when multiple people appear in the video, use Face Tracking, adjust lighting and skin tone, set blending strength, preview Before & After, and have processing run according to video duration and server capability, so that I can control the result.

  • Trigger/input: The user selects a face, enables Face Tracking, adjusts lighting and skin tone, or sets blending strength.
  • Observable result: The selected face is the swap target; tracking follows it; lighting and skin tone adjustments and blending strength are reflected in the result; processing time reflects video duration and server capability.
  • Access state: Login required.
  • Failure/recovery: If no face is detected or the selected face is lost, a clear message is shown with guidance to reselect.
  • Continuation: The user previews and downloads.

FR-24 — AI Face Swap: consent and prohibited use (explicit) As a Face Swap Creator, I should use only face photos I own or that are used with the permission of the person concerned, and the feature must not be used to impersonate another person, create fake evidence, or create misleading video, so that face swap is used responsibly.

  • Trigger/input: The user attempts to process a face swap.
  • Observable result: Processing requires confirmation that the face photo is owned by the user or used with the person's permission; the interface states the prohibited uses.
  • Access state: Login required.
  • Failure/recovery: Missing consent blocks processing with a clear message.
  • Continuation: The user confirms consent and proceeds, or abandons the job.

FR-25 — AI Face Swap: AI-edited content label (explicit) As a Face Swap Creator, I should have the result labeled as AI-edited content when required, so that viewers are not misled.

  • Trigger/input: A face swap result is produced.
  • Observable result: The result carries an AI-edited content label when required.
  • Access state: Login required.
  • Failure/recovery: If the label cannot be applied, the result is not presented as a completed deliverable.
  • Continuation: The user downloads the labeled result.

FR-26 — Real-time preview of lightweight adjustments (explicit) As a Photo Editor or Video Editor, I should see changes to brightness, contrast, saturation, crop, and basic filters immediately in the browser, so that I can tune the look without waiting for the server.

  • Trigger/input: The user moves a lightweight adjustment control.
  • Observable result: The preview updates immediately to reflect the change.
  • Access state: Login required.
  • Failure/recovery: If the device cannot render the preview, a clear message explains the limitation and the adjustment still applies to the processed job.
  • Continuation: The user continues adjusting or starts processing.

FR-27 — Server-side processing indicator (explicit) As a Photo Editor, Video Editor, or Face Swap Creator, I should see a processing indicator for AI features that require the server, so that I know when work has moved off my device.

  • Trigger/input: A server-side AI feature is invoked.
  • Observable result: A processing indicator is shown for the duration of the server work.
  • Access state: Login required.
  • Failure/recovery: If the server is unavailable, the indicator resolves into a clear failure message with a retry button.
  • Continuation: The user retries or adjusts settings.

FR-28 — Local processing technology (explicit) As a Photo Editor or Video Editor, I should have local processing use Web Workers or WebAssembly where appropriate and WebGL/WebGPU when my device supports it, so that browser-side work is efficient.

  • Trigger/input: A lightweight adjustment is applied in the browser.
  • Observable result: Local processing uses the appropriate browser technology available on the device.
  • Access state: Login required.
  • Failure/recovery: If the device lacks support, the preview falls back to a simpler path with a clear indication.
  • Continuation: The user continues adjusting.

FR-29 — Heavy AI work on the backend (explicit) As a Photo Editor, Video Editor, or Face Swap Creator, I should have AI upscaling, video enhancement, and face swap run on the AI backend, and the interface should not claim that all features run in real time when the device or model does not support it, so that expectations match capability.

  • Trigger/input: A heavy AI feature is invoked.
  • Observable result: The job runs on the backend; the interface states real-time capability only where the device and model support it.
  • Access state: Login required.
  • Failure/recovery: Backend unavailability shows "AI backend belum dikonfigurasi" and disables processing.
  • Continuation: The user retries when the backend is available.

FR-30 — AI Background Remover (explicit) As a Photo Editor, I should remove the background from uploaded media, so that I can isolate the subject.

  • Trigger/input: The user uploads media and starts background removal.
  • Observable result: The result shows the subject isolated from the background.
  • Access state: Login required.
  • Failure/recovery: Processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process.
  • Continuation: The user downloads the result.

FR-31 — AI Color Correction (explicit) As a Photo Editor or Video Editor, I should correct the color of uploaded media with color and lighting controls, so that the media looks balanced.

  • Trigger/input: The user uploads media and adjusts color and lighting controls.
  • Observable result: The result reflects the applied color and lighting correction.
  • Access state: Login required.
  • Failure/recovery: Processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process.
  • Continuation: The user downloads the result.

FR-32 — AI Sharpen & Deblur (explicit) As a Photo Editor or Video Editor, I should sharpen and reduce blur in uploaded media, so that detail is clearer.

  • Trigger/input: The user uploads media and adjusts sharpness and deblur controls.
  • Observable result: The result shows increased sharpness and reduced blur.
  • Access state: Login required.
  • Failure/recovery: Processing failure shows a clear message with a retry button; backend-absent state shows "AI backend belum dikonfigurasi" and disables Process.
  • Continuation: The user downloads the result.

FR-33 — My Projects: browse and manage (explicit) As a Project Owner, I should browse my projects with their job status and result resolution, so that I can track and manage my work.

  • Trigger/input: The user opens My Projects.
  • Observable result: The project list shows each project with its status and result resolution.
  • Access state: Login required.
  • Failure/recovery: List load failure shows a clear message with a retry control.
  • Continuation: The user opens, retries, or deletes a project.

FR-34 — Delete project (explicit) As a Project Owner, I should delete a project, so that I can remove work I no longer want stored.

  • Trigger/input: The user presses the delete control on a project.
  • Observable result: The project is removed from the list and its stored files are removed.
  • Access state: Login required.
  • Failure/recovery: Deletion failure shows a clear message with a retry control.
  • Continuation: The user returns to the project list.

FR-35 — Retry failed jobs (explicit) As a Project Owner, I should see a clear message and a retry button when a job fails, so that I can recover without rebuilding the job.

  • Trigger/input: A job enters the Failed status.
  • Observable result: A clear failure message and a retry button are shown.
  • Access state: Login required.
  • Failure/recovery: Repeated failure shows the same clear message and retry control.
  • Continuation: The user retries or adjusts settings.

FR-36 — Download Results (explicit) As a Project Owner, I should review and download processed photo or video results with the supported formats and quality, so that I can use the output.

  • Trigger/input: The user opens Download Results and selects a result.
  • Observable result: The result downloads in the supported format and quality.
  • Access state: Login required.
  • Failure/recovery: Download failure shows a clear message with a retry control.
  • Continuation: The user downloads another result or returns to a project.

FR-37 — Settings: export quality (explicit) As a Project Owner, I should set export quality in Settings, so that my exports match my needs.

  • Trigger/input: The user changes the export quality setting and saves.
  • Observable result: The preference is saved and applied to subsequent exports.
  • Access state: Login required.
  • Failure/recovery: Save failure shows a clear message with a retry control.
  • Continuation: The user returns to a workspace or downloads.

FR-38 — AI backend not configured status (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should see the status "AI backend belum dikonfigurasi" when the AI model is not available, and the interface should not create fake buttons that claim a photo or video was successfully processed, so that I am never misled about whether processing happened.

  • Trigger/input: The AI backend is unavailable or unconfigured.
  • Observable result: The status "AI backend belum dikonfigurasi" is displayed; the Process button is disabled and replaced with configuration guidance; no success state is fabricated.
  • Access state: Login required.
  • Failure/recovery: When the backend becomes available, the status clears and processing is enabled.
  • Continuation: The user configures the backend or waits.

FR-39 — HTTPS (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should have my connection use HTTPS, so that my media and account data are protected in transit.

  • Trigger/input: Any request to the application.
  • Observable result: All traffic is served over HTTPS.
  • Access state: Applies to all access states.
  • Failure/recovery: Insecure requests are refused or redirected to HTTPS.
  • Continuation: The user continues over the secure connection.

FR-40 — Temporary file deletion (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should have temporary files deleted after processing or after the defined storage period, so that my media is not retained longer than intended.

  • Trigger/input: A job completes or the defined storage period elapses.
  • Observable result: Temporary files are removed.
  • Access state: Login required.
  • Failure/recovery: Cleanup failure is logged and retried; the user can delete the project manually.
  • Continuation: The user continues with other work.

FR-41 — AI result disclosure (explicit) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should not have AI results presented as genuine recordings without appropriate disclosure, and the product should not promise perfect quality when image information is already lost from the source file, so that the output is honest.

  • Trigger/input: An AI result is produced or described.
  • Observable result: AI-edited content is disclosed where required; no promise of perfect quality is made when source information is lost.
  • Access state: Login required.
  • Failure/recovery: Not applicable — this is a presentation constraint.
  • Continuation: The user downloads or adjusts settings.

FR-42 — Self-service enrollment (required_inference) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should be able to enroll myself before creating and storing projects, so that my durable work is bound to me.

  • Trigger/input: An anonymous visitor chooses to start using the product.
  • Observable result: An account is created and the user reaches the dashboard.
  • Access state: Anonymous entry.
  • Failure/recovery: Invalid or incomplete input shows a clear inline message; server failure shows a retryable message.
  • Continuation: The user proceeds to the dashboard.

FR-43 — Returning verification (required_inference) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should verify my identity when returning before accessing my projects, results, settings, or stored work, so that my work remains private to me.

  • Trigger/input: A returning user opens a protected destination.
  • Observable result: Verified users reach the requested destination; unverified users are routed to Login.
  • Access state: Anonymous entry to Login; protected destinations require verification.
  • Failure/recovery: Incorrect credentials show a clear message without revealing which field failed.
  • Continuation: The user reaches the dashboard or retries verification.

FR-44 — Backend AI, server processing, project storage, and file cleanup (required_inference) As a Photo Editor, Video Editor, Face Swap Creator, or Project Owner, I should have backend AI processing, server-side processing, project storage, and file cleanup available so that the durable processing pipeline can complete.

  • Trigger/input: A job is submitted.
  • Observable result: The job is processed, its project state is stored, and temporary files are cleaned up.
  • Access state: Login required.
  • Failure/recovery: Backend unavailability shows "AI backend belum dikonfigurasi"; processing failure shows a clear message with a retry button.
  • Continuation: The user downloads the result or retries.

FR-45 — Face photo consent before Face Swap (required_inference) As a Face Swap Creator, I should confirm consent for using another person's face photo before Face Swap processing begins, so that the accepted consent constraint is enforced at the point of use.

  • Trigger/input: The user attempts to start a face swap job.
  • Observable result: Processing is blocked until consent is confirmed.
  • Access state: Login required.
  • Failure/recovery: Missing consent shows a clear message explaining why processing is blocked.
  • Continuation: The user confirms consent and proceeds.
Page 10 of 27

4. User Personas

Page 11 of 27

Photo Editor (Pengguna AI Photo Enhancer)

Product context: The Photo Editor works with still images — portraits, old photos, low-light shots, and images that need more resolution or clarity. They use NEXUS AI STUDIO from a phone or a PC and care about results that stay faithful to the original photo.

Primary goal: Improve photo quality — resolution, noise, blur, sharpness, face detail, dynamic range, color, lighting — without altering the identity or content of the source photo.

Distinct accepted responsibilities: Uploading photos; selecting presets (Natural HD, Ultra Clear, 4K Detail, HDR Photo, Low Light Recovery, Portrait Enhance, Old Photo Restoration); setting AI Upscale 2×/4×/8×; toggling AI Denoise, AI Deblur, AI Sharpen, AI Face Enhancement, HDR-style enhancement, automatic color correction, and lighting/shadow correction; adjusting brightness, contrast, saturation, exposure, and sharpness; comparing Before & After with the slider; choosing PNG, JPG, or WebP export; downloading the result. Also uses AI Background Remover, AI Color Correction, and AI Sharpen & Deblur.

Relevant inputs or decisions: Which preset fits the photo; how far to upscale; whether to enable face enhancement; how much manual adjustment to apply; which export format to use.

Interactions with other accepted participants: Works alongside the Project Owner role when managing stored projects and downloads; relies on the backend AI processing that the platform provides.

Observable success: A processed photo that preserves face identity, expression, pose, skin tone, clothing, and background, with no changed face shape and no added details inconsistent with the source, exported in the chosen format at the reported resolution.

Page 12 of 27

Video Editor (Pengguna AI Video Enhancer & Stabilizer)

Product context: The Video Editor works with video footage — phone recordings, walking shots, low-light clips, and footage that needs more resolution or smoother motion. They use the platform from phone or desktop and need honest capability reporting.

Primary goal: Improve video quality up to 4K and stabilize shaky footage while keeping audio and video in sync and preserving the original aspect ratio.

Distinct accepted responsibilities: Uploading videos; selecting presets (iPhone Natural Look, Ultra HD, Cinematic HDR, Sharp Detail, Low Light Enhancement, Social Media Quality); setting AI Video Upscaling, AI Video Denoise, AI Video Deblur, Detail Enhancement, Color Grading, HDR-style Color Enhancement, Auto Exposure Correction, Shadow & Highlight Recovery, Frame Interpolation, and FPS; previewing before and after; exporting MP4 at 720p, 1080p, or 4K according to system support. For stabilization: choosing Low, Medium, or Strong; enabling Auto Crop; adjusting the crop region; preserving the original aspect ratio; maintaining audio-video synchronization. Also uses AI Color Correction and AI Sharpen & Deblur.

Relevant inputs or decisions: Which preset matches the footage; whether the target resolution is supported; whether frame interpolation is supported; how strong stabilization should be; how much crop to accept.

Interactions with other accepted participants: Works alongside the Project Owner role for project tracking and downloads; depends on backend AI processing and FFmpeg-based video handling.

Observable success: A processed video that reflects the selected enhancements, plays in the before/after preview, exports as MP4 at the chosen supported resolution, and — for stabilization — shows smoother motion without excessive distortion, with audio and video in sync and the original aspect ratio preserved.

Page 13 of 27

Face Swap Creator (Pengguna AI Face Swap)

Product context: The Face Swap Creator works with video face replacement using a reference face photo. They operate under an explicit consent boundary and need the system to check quality, lighting, and compatibility before processing.

Primary goal: Replace a face in a video with a reference face photo while preserving expression, gaze direction, lighting, and head movement for a consistent result — using only photos they own or are permitted to use.

Distinct accepted responsibilities: Opening AI Face Swap; uploading the source video; uploading the reference face photo; reviewing the system's quality, lighting, and compatibility check; selecting which face to swap when multiple people appear; using Face Tracking; adjusting lighting and skin tone; setting blending strength; previewing Before & After; downloading the processed video. Also confirms consent for using another person's face photo and ensures the AI-edited content label is applied when required.

Relevant inputs or decisions: Whether the reference photo passes the quality, lighting, and compatibility check; which face to target; how much blending strength to apply; whether consent is confirmed.

Interactions with other accepted participants: Works alongside the Project Owner role for storing and downloading the result; depends on backend face detection, face tracking, and face swap models with appropriate usage licenses.

Observable success: A processed video with a consistent face replacement that preserves expression, gaze direction, lighting, and head movement, labeled as AI-edited content when required, and downloadable — produced only after consent is confirmed.

Page 14 of 27

Project Owner (Pengguna My Projects, Download Results & Settings)

Product context: The Project Owner manages the durable side of the platform — the projects, job statuses, results, and preferences that persist across sessions.

Primary goal: Keep track of projects and their processing status, retrieve results, and control export quality.

Distinct accepted responsibilities: Viewing the list of recent projects; reading processing status (Waiting, Uploading, Processing, Completed, Failed) and result resolution; opening a project to resume it; deleting a project; retrying a failed job with the retry button; reviewing and downloading results from Download Results; setting export quality in Settings.

Relevant inputs or decisions: Which project to resume or delete; whether to retry a failed job; which result to download; what export quality to set.

Interactions with other accepted participants: Serves the Photo Editor, Video Editor, and Face Swap Creator roles by keeping their work organized and retrievable; depends on backend project storage and file cleanup.

Observable success: A project list that accurately reflects each job's status and resolution, successful deletion of unwanted projects, successful retry of failed jobs, downloaded results in the supported formats and quality, and saved export quality preferences.

5. Core User Flows

Page 15 of 27

Flow 1 — Photo Editor enhances a photo

  1. The Photo Editor opens the Landing page and reads what NEXUS AI STUDIO does.
  2. The Photo Editor presses "Upload Photo" and is routed into the identity boundary.
  3. The Photo Editor enrolls through Sign Up (or verifies through Login if already enrolled) and reaches the dashboard.
  4. On the dashboard, the Photo Editor drags a photo onto the dropzone or presses "Upload Photo". The job enters Uploading, then the file is validated for type and size.
  5. The Photo Editor opens AI Photo Enhancer. The photo appears on the canvas stage.
  6. The Photo Editor selects a preset — for example Low Light Recovery — and the preset's settings are applied to the controls and reflected in the preview.
  7. The Photo Editor sets AI Upscale to 4×, enables AI Denoise, AI Deblur, AI Sharpen, AI Face Enhancement, HDR-style enhancement, automatic color correction, and lighting/shadow correction, and adjusts brightness, contrast, saturation, exposure, and sharpness. Lightweight adjustments preview immediately in the browser.
  8. The Photo Editor presses Process. The job enters Processing with a progress bar and a server-side processing indicator. If the AI backend is not configured, the status "AI backend belum dikonfigurasi" is shown, Process is disabled, and no success is fabricated.
  9. On completion, the job enters Completed and a success notification is shown. The result appears in the Before & After slider with live resolution and file-size readouts above each side.
  10. The Photo Editor drags the slider to compare. The result preserves face identity, expression, pose, skin tone, clothing, and background, with no changed face shape and no added details inconsistent with the source.
  11. The Photo Editor selects PNG, JPG, or WebP and downloads the result.
  12. Failure/recovery: If processing fails, the job enters Failed with a clear message and a retry button. The Photo Editor retries, or adjusts settings and reprocesses.
  13. Continuation: The Photo Editor opens My Projects to see the project with its Completed status and result resolution, or starts another photo.

Flow 2 — Video Editor enhances a video

  1. The Video Editor verifies through Login and reaches the dashboard.
  2. The Video Editor drags a video onto the dropzone or presses "Upload Video". The job enters Uploading, then the file is validated for type, size, and duration against server capacity.
  3. The Video Editor opens AI Video Enhancer. The video loads into the preview stage.
  4. The Video Editor selects a preset — for example Cinematic HDR — and the preset's settings are applied and reflected in the preview.
  5. The Video Editor enables AI Video Upscaling up to 4K if supported, AI Video Denoise, AI Video Deblur, Detail Enhancement, Color Grading, HDR-style Color Enhancement, Auto Exposure Correction, Shadow & Highlight Recovery, and Frame Interpolation if supported, and sets FPS according to model capability.
  6. The Video Editor presses Process. The job enters Processing with a progress bar and a server-side processing indicator. If the AI backend is not configured, "AI backend belum dikonfigurasi" is shown and Process is disabled.
  7. On completion, the job enters Completed and a success notification is shown. The before/after preview plays both versions.
  8. The Video Editor selects MP4 export at 720p, 1080p, or 4K according to system support and downloads the result.
  9. Failure/recovery: An unsupported resolution or FPS shows a clear capability message. A processing failure shows a clear message with a retry button; the Video Editor retries or lowers the resolution and reprocesses.
  10. Continuation: The Video Editor opens My Projects to track the job or starts another video.
Page 16 of 27

Flow 3 — Video Editor stabilizes a shaky video

  1. The Video Editor verifies through Login and reaches the dashboard.
  2. The Video Editor uploads a video recorded while walking. The job enters Uploading, then validation checks type, size, and duration.
  3. The Video Editor opens AI Video Stabilizer. The video loads into the preview stage.
  4. The Video Editor selects Low, Medium, or Strong stabilization.
  5. The Video Editor enables Auto Crop to cover empty areas caused by stabilization, and adjusts the crop region so they control the cut. The original aspect ratio is preserved.
  6. The Video Editor presses Process. The job enters Processing with a progress bar. If the AI backend is not configured, "AI backend belum dikonfigurasi" is shown and Process is disabled.
  7. On completion, the job enters Completed and a success notification is shown. The Before & After preview plays both versions with audio and video in sync.
  8. The Video Editor observes smoother motion without excessive distortion. The interface does not promise that the video is always 100% stable, because results depend on the source video's condition.
  9. The Video Editor downloads the stabilized result.
  10. Failure/recovery: If synchronization cannot be maintained, the job fails with a clear message rather than delivering a desynchronized result. The Video Editor retries or changes the stabilization level or crop.
  11. Continuation: The Video Editor opens My Projects or starts another video.

Flow 4 — Face Swap Creator performs a consented face swap

  1. The Face Swap Creator verifies through Login and reaches the dashboard.
  2. The Face Swap Creator opens AI Face Swap.
  3. The Face Swap Creator uploads the source video. The job enters Uploading, then validation checks type, size, and duration against server capacity.
  4. The Face Swap Creator uploads the reference face photo.
  5. The Face Swap Creator confirms consent that the face photo is their own or is used with the permission of the person concerned. Without this confirmation, processing is blocked with a clear message.
  6. The system checks quality, lighting, and face compatibility and reports the result. A failed check shows a clear explanation.
  7. The system detects faces in every frame. If multiple people appear, the Face Swap Creator selects which face to swap. Face Tracking follows the selected face.
  8. The Face Swap Creator adjusts lighting and skin tone and sets the blending strength.
  9. The Face Swap Creator presses Process. The job enters Processing with a progress bar and a server-side processing indicator. Processing runs according to video duration and server capability. If the AI backend is not configured, "AI backend belum dikonfigurasi" is shown and Process is disabled.
  10. On completion, the job enters Completed and a success notification is shown. The result preserves expression, gaze direction, lighting, and head movement for a consistent look, and carries the AI-edited content label when required.
  11. The Face Swap Creator previews Before & After and downloads the processed video.
  12. Failure/recovery: If no face is detected or the selected face is lost, a clear message guides reselection. A processing failure shows a clear message with a retry button.
  13. Continuation: The Face Swap Creator opens My Projects or starts another face swap. The feature is not used to impersonate another person, create fake evidence, or create misleading video.
Page 17 of 27

Flow 5 — Photo Editor removes a background, corrects color, or sharpens and deblurs

  1. The Photo Editor verifies through Login and reaches the dashboard.
  2. The Photo Editor opens AI Background Remover, AI Color Correction, or AI Sharpen & Deblur.
  3. The Photo Editor uploads media. The job enters Uploading, then validation checks type and size.
  4. Depending on the destination, the Photo Editor starts background removal, adjusts color and lighting controls, or adjusts sharpness and deblur controls.
  5. The Photo Editor presses Process. The job enters Processing with a progress bar. If the AI backend is not configured, "AI backend belum dikonfigurasi" is shown and Process is disabled.
  6. On completion, the job enters Completed and a success notification is shown. The result appears in the preview.
  7. The Photo Editor downloads the result.
  8. Failure/recovery: A processing failure shows a clear message with a retry button.
  9. Continuation: The Photo Editor opens My Projects or starts another job.

Flow 6 — Project Owner manages projects, downloads, and settings

  1. The Project Owner verifies through Login and reaches the dashboard.
  2. The Project Owner opens My Projects. The project list shows each project with its job status (Waiting, Uploading, Processing, Completed, Failed) and result resolution. Job rows render as a pipeline strip — WAITING → UPLOADING → PROCESSING → COMPLETED → FAILED — filling with cyan as the job advances.
  3. The Project Owner opens a project to resume it, or presses the delete control to remove a project. Deletion removes the project and its stored files.
  4. For a failed job, the failed segment expands into an inline retry control. The Project Owner presses retry and the job re-runs with the same settings.
  5. The Project Owner opens Download Results, reviews completed results with their resolution and file size, and downloads a result in the supported format and quality.
  6. The Project Owner opens Settings and sets export quality. The preference is saved and applied to subsequent exports.
  7. Failure/recovery: A list load failure shows a clear message with a retry control. A download failure shows a clear message with a retry control. A save failure shows a clear message with a retry control.
  8. Continuation: The Project Owner returns to the dashboard or opens a tool workspace.
Page 18 of 27

Flow 7 — Anonymous visitor reaches the product

  1. The visitor opens the Landing page and reads what NEXUS AI STUDIO does, its target users, and its editing functions.
  2. The visitor reads the AI backend state, max supported resolution, and queue depth in the status column.
  3. The visitor presses "Upload Photo" or "Upload Video" and is routed into the identity boundary.
  4. The visitor enrolls through Sign Up, or verifies through Login if already enrolled.
  5. Failure/recovery: If WebGL is unavailable, a static gradient field replaces the hero canvas and all text and controls remain whole. If enrollment input is invalid, a clear inline message is shown and the form retains entered values.
  6. Continuation: The visitor reaches the dashboard and begins a job.

6. Visuals Colors and Theme

The creative direction is authoritative for this section. The muse is Refik Anadol; the headline concept is "Data made physical — a living latent-space canvas for NEXUS AI STUDIO." The product's core promise — AI improves your media — is rendered as data made visible: a coarse lattice resolving into a dense luminous field.

Page 19 of 27

Color tokens (dark mode)

RoleTokenValue
Background (ink ground, ~70% of every screen)--bg#05070D
Surface (navy graphite panels, cards, sidebars, glass sheets at 82–92% opacity)--surface#0C1220
Text (near-white on dark ground, contrast > 14:1)--text#EAF1FF
Primary (working signal — active nav rail, progress bars, slider thumbs, focus rings, key numerals; ≤ ~8% of surface)--primary#2BE8FF
Accent (secondary data hue — generative canvas, gradient strokes, Processing state only; never a button fill)--accent#7C5CFF
Muted (labels and metadata only, never below 14px)--muted#6B7A99
Panel border--borderrgba(43,232,255,0.14)
Divider--dividerrgba(255,255,255,0.08)
Floating glass sheet shadow (single shadow allowed)--shadow0 18px 60px rgba(0,0,0,0.55)

Body copy on any glass panel gets a solid #05070D scrim behind it so contrast never depends on what is flowing underneath.

Typography

  • Headings: Space Grotesk, weight 500/600, tracking -0.03em, sentence case for product names. Uppercase micro-labels at 11px with 0.18em tracking for state words (WAITING / PROCESSING / COMPLETED / FAILED) and technical readouts. Headline scale: clamp(34px, 6.5vw, 84px) so a tool name reads as a poster line. Never bold-black.
  • Body: Sora. 16px/1.65 on mobile, 17px/1.7 on desktop.
  • Type scale (1.25 modular): 11 / 13 / 16 / 20 / 25 / 34 / 52 / 84.
  • Numeric readouts (resolution, file size, duration, FPS, percentage): tabular figures, Space Grotesk 500, 1.15 line-height, so progress numbers do not jitter while counting.
Page 20 of 27

Shape language

Soft-rounded industrial: 14px radius on controls, 20px on panels, 28px on the upload dropzone and hero canvas frame. Never pill-shaped except for status chips and the mobile bottom-nav active indicator. 1px hairline borders in cyan at 12–16% opacity define every panel edge. No drop shadows except the single floating glass sheet shadow. Dividers are 1px rules at 8% white. The generative canvas is the only place curves are organic and unpredictable; all UI geometry stays disciplined and orthogonal so the data art reads as the anomaly.

Layout

Fixed 264px left rail on desktop, collapsing to a 64px icon rail and to an off-canvas drawer under 768px. Top strip holds the NEXUS AI STUDIO wordmark, the AI-backend status pill, and the export-quality selector. Content sits on a 12-column grid with a 24px gutter and 32–48px page margins. The dashboard opens with a full-bleed generative hero band, then a two-column work area: a wide upload/canvas stage (8 columns) and a narrow inspector column (4 columns) holding presets, sliders, and job status. Mobile is a strict single column: hero band, upload stage, one inspector sheet at a time, plus a 64px bottom navigation with 5 destinations (Home, Enhance, Projects, Downloads, Settings) and 44px minimum touch targets. Every tool page reuses this shell so the app feels like one instrument with swappable heads.

Page 21 of 27

Imagery

Generative, not photographic: the hero and section openers are rendered particle/fluid fields derived from the product's own concept — pixels resolving into detail, a low-res lattice on the left morphing into a dense resolved field on the right. Tool cards use small procedural diagram thumbnails rather than stock photos. The only real photography in the product is the user's own media inside the editor canvas. The Before/After slider is the product's signature image moment: a split with a cyan hairline handle and a 1px scanning line that travels with the drag.

Page 22 of 27

7. Signature Design Concept

The resolution gradient hero. The first screen is a full-bleed dark canvas: a real-time generative particle field in cyan #2BE8FF and violet #7C5CFF flowing across the entire viewport, with a horizontal resolution gradient running left to right — a coarse dim lattice on the left third, a dense luminous field on the right third, as if the page itself is being upscaled. It is not centred text over a blob.

The headline sits in the lower-left quadrant, flush left, at clamp(34px, 7vw, 96px) in Space Grotesk 500, reading "UPLOAD. / ENHANCE. / 4K." on three stacked lines with tight leading, each line sitting on its own thin cyan rule that extends to the viewport edge. Directly beneath it, a horizontal row of two wide controls — "Upload Photo" and "Upload Video" — in solid #0C1220 panels with cyan hairline borders and cyan label text, sized 56px tall on desktop and full-width stacked at 375px. A narrow vertical status column on the right edge lists AI backend state, max supported resolution, and queue depth in 11px uppercase tracked micro-type. Nothing is centred; the composition is weighted to the lower-left with the generative field as the dominant element.

The hero visualizes the product's own promise — coarse to resolved — instead of illustrating it. It recomposes only accepted content and controls: the two upload entry points, the AI-backend status, the max supported resolution, and the queue depth.

8. Interaction Model & Motion Direction

Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: webgl

Page 23 of 27

Landing Hero Motion Brief

  • Focal subject: A real-time generative particle field in cyan #2BE8FF and violet #7C5CFF flowing across the full viewport, with a horizontal resolution gradient — coarse dim lattice on the left third, dense luminous field on the right third.
  • Input → transformation → outcome thesis: As the visitor scrolls and as a preset is selected, the field's hue and density shift — selecting "Low Light Recovery" shifts the field toward deep amber-cyan, "Cinematic HDR" toward magenta-violet — so the page itself performs the product's promise of coarse-to-resolved enhancement. The outcome is a visitor who understands, before enrolling, that this is an instrument that renders real results.
  • Motion vocabulary: Cinematic but slow and continuous; the hero canvas drifts at roughly 0.15× user-perceived speed. Section entrances are 500ms opacity + 12px rise, staggered 60ms. Progress states animate as a cyan sweep across the job row plus a counting percentage in tabular figures. Hover on a tool card lifts it 2px and brightens its border to 26% cyan — no scale, no bounce.
  • Composed first frame: Full-bleed dark canvas #05070D; the generative field already flowing; the stacked headline "UPLOAD. / ENHANCE. / 4K." flush-left in the lower-left quadrant on cyan rules bleeding to the viewport edge; the two 56px upload instrument panels beneath it; the narrow status column on the right edge in 11px uppercase tracked micro-type.
  • Reduced-motion state: All decorative motion stops, leaving a static gradient field and instant state changes. The headline, upload controls, and status column remain whole and readable.

Landing Hero 3D Scene Brief — DIRECTION-DERIVED

A single crafted real-time WebGL scene: a particle field whose density and hue encode the product's defining state — the transition from a coarse, dim lattice to a dense, resolved luminous field. The scene reacts to scroll position and to the currently selected enhancement preset, shifting hue between cyan and violet (and toward deep amber-cyan or magenta-violet for the named presets). It is the only organic, unpredictable geometry in the interface; all UI geometry stays disciplined and orthogonal so the data art reads as the anomaly. Under prefers-reduced-motion, the scene renders a single static gradient frame.

Page 24 of 27

9. Non-Functional Requirements

NFR-1 — HTTPS (explicit) All connections must use HTTPS. Rationale: the product handles user media and account data.

NFR-2 — Upload validation (explicit) File type and size must be validated on upload. Rationale: prevents unsupported or oversized files from entering processing.

NFR-3 — Video duration and size limits (explicit) Video duration and size must be limited according to server capacity. Rationale: keeps processing within server capability.

NFR-4 — Temporary file deletion (explicit) Temporary files must be deleted after processing or after the defined storage period. Rationale: limits retention of user media.

NFR-5 — Project deletion (explicit) A delete-project control must be provided. Rationale: gives users control over stored work.

NFR-6 — Face photo consent (explicit) Consent must be requested for the use of another person's face photo. Rationale: enforces the accepted consent boundary for face swap.

NFR-7 — AI result disclosure (explicit) AI results must not be presented as genuine recordings without appropriate disclosure. Rationale: prevents misleading output.

NFR-8 — No perfect-quality promise (explicit) The product must not promise perfect quality when image information is already lost from the source file. Rationale: keeps expectations honest.

NFR-9 — No fake success (explicit) When the AI model is unavailable, the status "AI backend belum dikonfigurasi" must be displayed and no fake buttons may claim a photo or video was successfully processed. Rationale: the product must not mislead about whether processing happened.

NFR-10 — API key security (explicit) API keys must be stored on the server through environment variables, not in frontend code. Rationale: prevents credential exposure.

NFR-11 — Responsive compatibility (explicit) The interface must be compatible with Android, iPhone, tablet, and desktop. Rationale: the product is used from both phone and PC.

NFR-12 — Mobile layout discipline (explicit) The phone screen must not be filled with too many panels, and all buttons must be easy to press. Rationale: keeps the mobile editor usable.

NFR-13 — Real-time capability honesty (explicit) The product must not claim that all features run in real time when the device or model does not support it. Rationale: keeps capability claims accurate.

NFR-14 — Stabilization honesty (explicit) The product must not promise that video is always 100% stable, because results depend on the source video's condition. Rationale: keeps stabilization claims accurate.

NFR-15 — iPhone camera honesty (explicit) The iPhone Natural Look preset must not claim that results come from a real iPhone camera. Rationale: keeps preset claims accurate.

NFR-16 — Photo identity preservation (explicit) AI Photo Enhancer must preserve face identity, expression, pose, skin tone, clothing, and the original background, and must not change face shape or add details inconsistent with the source photo. Rationale: the enhancement must remain faithful to the source.

NFR-17 — Face swap prohibited uses (explicit) AI Face Swap must not be used to impersonate another person, create fake evidence, or create misleading video. Rationale: prevents harmful use.

NFR-18 — GPU acceleration (explicit) GPU acceleration must be used when available. Rationale: heavy AI processing benefits from GPU resources.

NFR-19 — Readable text and controls at every viewport (explicit) Headlines, wordmarks, labels, numbers, card text, and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element may cover any part of them. Imagery, decoration, and motion may be cropped, bled off an edge, rotated, overlapped, or cut as the creative direction asks, as long as they cover no readable text or control. Moving and scrollable content may cross the viewport or container edge by design and is judged by whether it actually moves or scrolls and whether every item becomes fully readable as it passes. With prefers-reduced-motion, moving content stops and shows whole items, wrapping into rows or sitting in a horizontally scrollable row (overflow-x: auto). Rationale: legibility and touchability are non-negotiable.

Page 25 of 27

10. Tech Stack

Frontend (explicit)

  • HTML, CSS, and JavaScript or React.
  • Responsive interface.
  • Media preview.
  • Project and job status management.
  • Web Workers or WebAssembly where appropriate for local processing.
  • WebGL/WebGPU when the device supports it.

Backend (explicit)

  • Python with FastAPI or an equivalent backend technology.
  • FFmpeg for video processing, format conversion, and audio merging.
  • OpenCV for image processing and stabilization where appropriate.
  • AI super-resolution model for resolution enhancement.
  • AI denoise and deblur models.
  • Face detection and face tracking models.
  • Face swap model with an appropriate usage license.
  • GPU acceleration when available.
  • External AI APIs or self-hosted models for heavy tasks.
  • API keys stored on the server through environment variables, never in frontend code.

Storage and deployment (explicit)

  • Project storage for durable projects, job status, and results.
  • Temporary file storage with cleanup after processing or after the defined storage period.
  • Deployment guidance and an example GPU server configuration as part of the deliverables.

Deliverables (explicit)

  • Complete project structure.
  • Frontend and backend code.
  • Installation guide.
  • Environment configuration file.
  • Instructions for running the website.
  • Integration of genuinely available AI models.
  • Error handling.
  • Deployment instructions.
  • Example GPU server configuration.
Page 26 of 27

11. Assumptions and Constraints

Assumptions

  • A-1 (required_inference) — Users reach the product through a self-service enrollment and return through verification, because projects, job status, results, and settings are durable and must remain bound to the correct person.
  • A-2 (required_inference) — The backend AI, server processing, project storage, and file cleanup are available to complete the durable processing pipeline; when they are not, the product shows "AI backend belum dikonfigurasi".
  • A-3 (required_inference) — Face photo consent is confirmed before Face Swap processing begins.
  • A-4 (explicit) — Output resolution up to 4K, frame interpolation, FPS settings, and 4K export depend on the processing model and system support; the interface reports capability honestly rather than assuming it.
  • A-5 (explicit) — Processing time for video, including face swap, depends on video duration and server capability.
  • A-6 (explicit) — Stabilization results depend on the source video's condition and are not guaranteed to be 100% stable.
  • A-7 (explicit) — Enhancement quality is limited by the information present in the source file; perfect quality is not promised when information is already lost.

Constraints

  • C-1 (explicit) — AI Photo Enhancer must preserve face identity, expression, pose, skin tone, clothing, and the original background; it must not change face shape or add details inconsistent with the source photo.
  • C-2 (explicit) — The iPhone Natural Look preset must imitate a natural visual character with clear detail, reasonable skin tones, and balanced dynamic range; the product must not claim results come from a real iPhone camera.
  • C-3 (explicit) — The product must not promise that video is always 100% stable.
  • C-4 (explicit) — Face Swap may use only face photos owned by the user or used with the permission of the person concerned; it must not be used to impersonate another person, create fake evidence, or create misleading video; results must be labeled as AI-edited content when required.
  • C-5 (explicit) — The product must not claim that all features run in real time when the device or model does not support it; AI upscaling, video enhancement, and face swap must use the AI backend.
  • C-6 (explicit) — The phone screen must not be filled with too many panels, and all buttons must be easy to press.
  • C-7 (explicit) — API keys must be stored on the server through environment variables, not in frontend code.
  • C-8 (explicit) — HTTPS must be used; file type and size must be validated on upload; video duration and size must be limited according to server capacity; temporary files must be deleted after processing or after the defined storage period.
  • C-9 (explicit) — AI results must not be presented as genuine recordings without appropriate disclosure; perfect quality must not be promised when image information is already lost from the source file.
  • C-10 (explicit) — When the AI model is unavailable, the status "AI backend belum dikonfigurasi" must be displayed and no fake buttons may claim a photo or video was successfully processed.
  • C-11 (explicit) — Features must genuinely function and be integrated, not merely UI or demo buttons.
  • C-12 (explicit) — The generic indigo/blue-on-white SaaS template is forbidden for this project; the ground is near-black and the signal is cyan #2BE8FF.
  • C-13 (explicit) — Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, and system-ui must not be used for headings or body.
  • C-14 (explicit) — Readable text and controls must stay whole at every viewport; imagery, decoration, and motion may be cropped or bled but must cover no readable text or control.
Page 27 of 27

Future Scope

No future-horizon requirements were stated in the authoritative thread. All accepted requirements are current.

12. Glossary

  • NEXUS AI STUDIO — PHOTO & VIDEO ENHANCER — The product name for the AI photo and video editing platform delivered by earthy-buat.
  • AI backend — The server-side processing layer that runs heavy AI work (upscaling, video enhancement, face swap) using Python/FastAPI, FFmpeg, OpenCV, and AI models, with GPU acceleration when available.
  • AI backend belum dikonfigurasi — The status displayed when the AI model is not available; processing is disabled and no success is fabricated.
  • Job — A single processing task with one of five statuses: Waiting, Uploading, Processing, Completed, Failed.
  • Pipeline — The processing workflow UPLOAD → VALIDASI FILE → PILIH FITUR → PENGATURAN → PROSES AI → PREVIEW → DOWNLOAD.
  • Preset — A named combination of enhancement settings. Photo presets: Natural HD, Ultra Clear, 4K Detail, HDR Photo, Low Light Recovery, Portrait Enhance, Old Photo Restoration. Video presets: iPhone Natural Look, Ultra HD, Cinematic HDR, Sharp Detail, Low Light Enhancement, Social Media Quality.
  • Before & After slider — The comparison instrument with a 1px cyan scanning line and square machined handle, with live resolution and file-size readouts above each side.
  • Pipeline strip — The job row rendering in My Projects: WAITING → UPLOADING → PROCESSING → COMPLETED → FAILED, drawn as five connected segments that fill with cyan as the job advances.
  • Auto Crop — The stabilizer control that covers empty areas caused by stabilization.
  • Face Tracking — The face swap capability that follows the selected face across video frames.
  • Blending strength — The face swap control that sets how strongly the replacement face is blended into the target.
  • AI-edited content label — The label applied to face swap results when required, disclosing that the content was edited by AI.
  • Export quality — The user preference in Settings that controls the quality of exported results.
  • Tabular figures — Numeric rendering with fixed-width digits so progress numbers do not jitter while counting.

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

No user flows yet.

The User Flow Agent will generate per-persona navigation diagrams after SRD updates.

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

No user flows yet.

The User Flow Agent will generate per-persona navigation diagrams after SRD updates.