Skip to content

Added model sizes#168

Closed
sherucon wants to merge 5 commits into
Starmel:masterfrom
sherucon:add-model-sizes
Closed

Added model sizes#168
sherucon wants to merge 5 commits into
Starmel:masterfrom
sherucon:add-model-sizes

Conversation

@sherucon

@sherucon sherucon commented Jul 2, 2026

Copy link
Copy Markdown

Model Size Display Enhancement

Overview

This PR implements a new feature to display model file sizes right next to model names throughout the OpenSuperWhisper UI, providing users with clear information about the storage requirements of each model they can download.

Closes #143.

Key Features

✅ Onboarding Screen

Model sizes are now displayed in the onboarding view (OpenSuperWhisper/Onboarding/OnboardingView.swift), showing accurate file sizes below each model description.

✅ Settings Model Selection

Model sizes are displayed in the model selection screen within settings (OpenSuperWhisper/Settings.swift), providing storage information for downloadable Whisper and Parakeet models.

Model Sizes Displayed

Model Size (MB) Type
Whisper V3 Large 1,624 Whisper
Whisper Medium 874 Whisper
Whisper Small 574 Whisper
Parakeet v3 483 Parakeet
Parakeet v2 464 Parakeet

Technical Improvements

1. Unified Model Size Storage

  • Removed redundant size field from OnboardingModelType enum
  • Consolidated all model sizes in OnboardingUnifiedModel struct
  • Follows the same pattern as SettingsDownloadableModel for consistency

2. Accurate Parakeet Model Sizes

  • Parakeet v3: 483 MB
  • Parakeet v2: 464 MB
  • Sizes based on actual FluidAudio download analysis (detailed in parakeet_download_analysis.md)

3. Fixed Compiler Issues

  • Resolved pattern matching errors in OnboardingView.swift
  • Changed .whisper(let url, _) to .whisper(let url) to match the updated enum definition

Implementation Details

Files Modified:

  1. OpenSuperWhisper/Onboarding/OnboardingView.swift

    • Fixed compiler errors
    • Added size display in OnboardingUnifiedModelItemView
  2. OpenSuperWhisper/Settings.swift

    • Refactored OnboardingModelType enum
    • Added sizes to OnboardingUnifiedModels collection
    • Updated ModelDownloadItemView to display sizes

Pattern Used:

  • Size is stored as Int representing MB
  • Uses ByteCountFormatter for display (same as existing codebase)
  • Computed property sizeString formats for user display

Analysis Documentation

For detailed information about Parakeet model download sizes, see parakeet_download_analysis.md:

  • Key Finding: FluidAudio selectively downloads only required components
  • Result: ~2.99 GB repo → 483 MB actual download (v3)
  • Impact: Much more storage-efficient than assumed

Benefits

User Experience:

  1. Better Decision Making: Users can see storage requirements before downloading
  2. Transparency: Clear information about model sizes
  3. Planning: Helps users manage device storage effectively

Code Quality:

  1. DRY Principle: Single source of truth for model sizes
  2. Consistency: Matches existing SettingsDownloadableModel pattern
  3. Maintainability: Easier to update model sizes in one place
  4. Accuracy: Parakeet sizes now reflect actual download sizes

Testing

Manual verification completed:

  • ✅ Model sizes display correctly in onboarding
  • ✅ Model sizes display correctly in settings
  • ✅ Parakeet models show accurate sizes (464-483 MB)
  • ✅ Whisper models show correct sizes (574-1,624 MB)
  • ✅ UI updates correctly when model is selected

Future Considerations

  • Could be extended to show actual file size after download completion
  • May add storage usage calculations for disk space planning
  • Could provide download progress estimates based on model size

sherucon and others added 5 commits July 2, 2026 18:22
Show model sizes (in MB) right next to model names wherever there is a menu to choose/download a model:
- Onboarding screen (OnboardingUnifiedModelItemView)
- Model selection screen in settings (ModelDownloadItemView)

The implementation follows existing code patterns:
- Model size is stored as Integer (MB) in OnboardingUnifiedModel structure
- ByteCountFormatter is used to format sizes for display (same as SettingsDownloadableModel)
- Parakeet models have size 0 placeholder for future implementation
- UI displays sizes in caption2 font below model description
- Remove redundant size field from OnboardingModelType.whisper enum
- Keep single size field in OnboardingUnifiedModel (consistent with SettingsDownloadableModel)
- Add accurate Parakeet model sizes: v3 (483 MB), v2 (464 MB)
- Update sizeString to use model.size instead of extracting from enum
- Cleaner, more maintainable architecture
@sherucon sherucon closed this Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request - models size

1 participant