TextToImageViewModel

class TextToImageViewModel(val dispatchersProvider: DispatchersProvider, val getConfigurationUseCase: GetConfigurationUseCase, val getStableDiffusionSamplersUseCase: GetStableDiffusionSamplersUseCase, val getForgeModulesUseCase: GetForgeModulesUseCase, val fetchAndGetArliAiModelsUseCase: FetchAndGetArliAiModelsUseCase, val isADetailerAvailableUseCase: IsADetailerAvailableUseCase, val textToImageUseCase: TextToImageUseCase, val saveGenerationResultUseCase: SaveGenerationResultUseCase, val saveLastResultToCacheUseCase: SaveLastResultToCacheUseCase, val interruptGenerationUseCase: InterruptGenerationUseCase, val observeHordeProcessStatusUseCase: ObserveHordeProcessStatusUseCase, val observeLocalDiffusionProcessStatusUseCase: ObserveLocalDiffusionProcessStatusUseCase, val observeStableDiffusionCppProcessStatusUseCase: ObserveStableDiffusionCppProcessStatusUseCase, val observeCoreMlProcessStatusUseCase: ObserveCoreMlProcessStatusUseCase, val observeBonsaiProcessStatusUseCase: ObserveBonsaiProcessStatusUseCase, val preferenceManager: PreferenceManager, val backgroundTaskManager: BackgroundTaskManager, val backgroundWorkObserver: BackgroundWorkObserver, val wakeLockInterActor: WakeLockInterActor, val platformServices: GenerationPlatformServices, val buildInfoProvider: BuildInfoProvider, val generationFormUpdateEvent: GenerationFormUpdateEvent, val dimensionValidator: DimensionValidator, val localGenerationBenchmarkGateProvider: () -> LocalGenerationBenchmarkGate, val imageSaver: ImageSaver, val imageSharer: ImageSharer, val router: TextToImageRouter, val onError: (Throwable) -> Unit = {}) : BaseMviViewModel<TextToImageState, TextToImageIntent, EmptyEffect> (source)

View-model for the txt2img screen.

It loads provider configuration, mirrors the shared generation form state, gates local providers through benchmark recommendations, and delegates actual generation work to the action handler.

Constructors

Link copied to clipboard
constructor(dispatchersProvider: DispatchersProvider, getConfigurationUseCase: GetConfigurationUseCase, getStableDiffusionSamplersUseCase: GetStableDiffusionSamplersUseCase, getForgeModulesUseCase: GetForgeModulesUseCase, fetchAndGetArliAiModelsUseCase: FetchAndGetArliAiModelsUseCase, isADetailerAvailableUseCase: IsADetailerAvailableUseCase, textToImageUseCase: TextToImageUseCase, saveGenerationResultUseCase: SaveGenerationResultUseCase, saveLastResultToCacheUseCase: SaveLastResultToCacheUseCase, interruptGenerationUseCase: InterruptGenerationUseCase, observeHordeProcessStatusUseCase: ObserveHordeProcessStatusUseCase, observeLocalDiffusionProcessStatusUseCase: ObserveLocalDiffusionProcessStatusUseCase, observeStableDiffusionCppProcessStatusUseCase: ObserveStableDiffusionCppProcessStatusUseCase, observeCoreMlProcessStatusUseCase: ObserveCoreMlProcessStatusUseCase, observeBonsaiProcessStatusUseCase: ObserveBonsaiProcessStatusUseCase, preferenceManager: PreferenceManager, backgroundTaskManager: BackgroundTaskManager, backgroundWorkObserver: BackgroundWorkObserver, wakeLockInterActor: WakeLockInterActor, platformServices: GenerationPlatformServices, buildInfoProvider: BuildInfoProvider, generationFormUpdateEvent: GenerationFormUpdateEvent, dimensionValidator: DimensionValidator, localGenerationBenchmarkGateProvider: () -> LocalGenerationBenchmarkGate, imageSaver: ImageSaver, imageSharer: ImageSharer, router: TextToImageRouter, onError: (Throwable) -> Unit = {})

Properties

Link copied to clipboard
private val _effect: Channel<E>
Link copied to clipboard
private val _state: MutableStateFlow<S>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private var arliAiModels: List<String>?
Link copied to clipboard
private var arliAiModelsKey: String?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val effect: Flow<EmptyEffect>
Link copied to clipboard
private val effectDispatcher: CoroutineDispatcher
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private val imageSaver: ImageSaver
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private val onError: (Throwable) -> Unit
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val state: StateFlow<TextToImageState>
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
expect open fun addCloseable(closeable: AutoCloseable)
expect fun addCloseable(key: String, closeable: AutoCloseable)
Link copied to clipboard
Link copied to clipboard
internal expect fun clear()
Link copied to clipboard
protected fun emitEffect(effect: EmptyEffect)
Link copied to clipboard
protected fun emitState(state: TextToImageState)
Link copied to clipboard
expect fun <T : AutoCloseable> getCloseable(key: String): T?
Link copied to clipboard
protected fun launch(dispatcher: CoroutineDispatcher, start: CoroutineStart, block: suspend CoroutineScope.() -> Unit): Job
Link copied to clipboard
private fun loadADetailerAvailability(force: Boolean = false)
Link copied to clipboard
private fun loadArliAiModels()
Link copied to clipboard
private fun loadConfiguration()
Link copied to clipboard
private fun loadForgeModules()
Link copied to clipboard
private fun loadSamplers()
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private fun observeSettings()
Link copied to clipboard
protected expect open fun onCleared()
Link copied to clipboard
open override fun processIntent(intent: TextToImageIntent)
Link copied to clipboard
private fun refreshArliAiModelsIfNeeded(settings: Settings)
Link copied to clipboard
Link copied to clipboard
protected fun updateState(mutation: (TextToImageState) -> TextToImageState)