@@ -30,6 +30,8 @@ const MODELS: ModelOption<TextToImageModelSources>[] = [
3030 { label : 'BK-SDM 256' , value : BK_SDM_TINY_VPRED_256 } ,
3131 { label : 'BK-SDM 512' , value : BK_SDM_TINY_VPRED_512 } ,
3232] ;
33+ import { BottomBarWithTextInput } from '../../components/BottomBarWithTextInput' ;
34+ import { StatsBar } from '../../components/StatsBar' ;
3335
3436export default function TextToImageScreen ( ) {
3537 const [ inferenceStepIdx , setInferenceStepIdx ] = useState < number > ( 0 ) ;
@@ -39,6 +41,9 @@ export default function TextToImageScreen() {
3941 const [ selectedModel , setSelectedModel ] = useState < TextToImageModelSources > (
4042 BK_SDM_TINY_VPRED_256
4143 ) ;
44+ const [ generationTime , setGenerationTime ] = useState < number | null > ( null ) ;
45+ const [ showTextInput , setShowTextInput ] = useState ( false ) ;
46+ const [ keyboardVisible , setKeyboardVisible ] = useState ( false ) ;
4247
4348 const imageSize = 224 ;
4449 const model = useTextToImage ( {
@@ -55,8 +60,15 @@ export default function TextToImageScreen() {
5560 const runForward = async ( ) => {
5661 if ( ! input . trim ( ) ) return ;
5762 try {
63+ const start = Date . now ( ) ;
5864 const output = await model . generate ( input , imageSize , steps ) ;
5965 if ( output . length ) setImage ( output ) ;
66+ else {
67+ setImageTitle ( prevImageTitle ) ;
68+ return ;
69+ }
70+ setGenerationTime ( Date . now ( ) - start ) ;
71+ setImage ( output ) ;
6072 } catch ( e ) {
6173 console . error ( e ) ;
6274 } finally {
@@ -134,6 +146,20 @@ export default function TextToImageScreen() {
134146 onSubmitEditing = { runForward }
135147 returnKeyType = "send"
136148 />
149+ </ View >
150+ < StatsBar inferenceTime = { generationTime } />
151+ < View style = { styles . bottomContainer } >
152+ < BottomBarWithTextInput
153+ runModel = { runForward }
154+ numSteps = { steps }
155+ setSteps = { setSteps }
156+ stopModel = { model . interrupt }
157+ isGenerating = { model . isGenerating }
158+ isReady = { model . isReady }
159+ showTextInput = { showTextInput }
160+ setShowTextInput = { setShowTextInput }
161+ keyboardVisible = { keyboardVisible }
162+ />
137163 { model . isGenerating ? (
138164 < TouchableOpacity
139165 style = { styles . sendButton }
0 commit comments