A Kotlin Multiplatform application built with Compose Multiplatform to browse and interact with models from CivitAI.
- Multiplatform Support: Full support for Android, iOS, and Desktop (JVM).
- Adaptive UI: Built with Material 3 Adaptive API, providing optimized layouts for different screen sizes (List/Detail and Supporting Pane strategies).
- Model Browsing: View the latest, most downloaded, and top-rated models from CivitAI.
- Search: Advanced search for models by name, tags, or creators.
- Model Details: Comprehensive model information including versions, images, and descriptions.
- Favorites: Save both models and individual images for quick access.
- Custom Lists: Create and manage personalized collections of models.
- Advanced NSFW Handling:
- Toggle NSFW content globally.
- Customizable blur strength for NSFW images.
- Blur support powered by Haze.
- Dynamic & Glassmorphism UI:
- Material 3 dynamic color support.
- Advanced glassmorphism effects with customizable blur types (Haze, HazeProgressive) and levels.
- Shared element transitions for a fluid navigation experience.
- Backup & Restore: Securely export and import your favorites, blacklist, custom lists, settings, and search history.
- Blacklist: Filter out specific models or creators from your feed.
- Sharing: Easily share models via generated QR codes or direct URLs.
- Stats: Detailed insights into your usage, including favorite counts, blacklist size, and search history.
- Kotlin Multiplatform (KMP): Shared business logic across platforms.
- Compose Multiplatform: Modern, declarative UI for Android, iOS, and Desktop.
- Navigation3: Cutting-edge navigation library for Compose Multiplatform.
- Ktor: Powerful asynchronous HTTP client for API communication.
- Koin: Pragmatic dependency injection.
- Room (KMP): Robust local database for favorites and blacklist with multiplatform support.
- Kamel: Efficient asynchronous image loading.
- Haze: Beautiful glassmorphism and blur effects.
- BuildKonfig: Compile-time project configuration and API key management.
- DataStore: Persistent key-value storage for application settings.
- Sonner: Elegant toast notifications.
- AboutLibraries: Automatic license management and attribution.
- FileKit: Multiplatform file picker and management.
- QRose: QR code generation for Compose Multiplatform.
- MaterialKolor: Dynamic Material 3 color palettes from any color.
- Firebase: Analytics, Crashlytics, and Performance monitoring ( supported via GitLive SDK for KMP).
- Android Studio or IntelliJ IDEA
- JDK 17 or higher
- Xcode (for iOS development)
- A CivitAI API Key
This project requires a CivitAI API key to function correctly.
- Go to your CivitAI Settings and generate a new API Key.
- In the root directory of the project, create or open the
local.propertiesfile. - Add your API key to the
local.propertiesfile:
api_key=YOUR_CIVITAI_API_KEY_HEREThe project uses BuildKonfig to pull this key into the shared code during compilation.
- Open the project in Android Studio.
- Select the
androidrun configuration. - Click Run.
- You can run the desktop application from the terminal:
./gradlew :desktop:run- Or use the
desktoprun configuration in your IDE.
- Open the
iosApp/iosApp.xcworkspacein Xcode. - Select a simulator or physical device.
- Click Run.
- Alternatively, if you are using Fleet or IntelliJ with the KMP plugin, you can run it directly from the IDE.
This project is for educational/personal use. Please refer to CivitAI's terms of service when using their API.