@@ -1934,67 +1934,7 @@ async function getExtraSettings() {
19341934 }
19351935 return payload
19361936}
1937- //REFACTOR: move to generation.js
1938- async function generateImg2Img ( settings ) {
1939- let json = { }
1940- try {
1941- const backend_type = html_manip . getBackendType ( )
1942- if ( backend_type === backendTypeEnum [ 'HordeNative' ] ) {
1943- json = await g_horde_generator . generate ( )
1944- // json = await g_horde_generator.toGenerationFormat(images_info)
1945- // json = { images_info: images_info }
1946- } else if (
1947- backend_type === backendTypeEnum [ 'Auto1111' ] ||
1948- backend_type === backendTypeEnum [ 'Auto1111HordeExtension' ]
1949- ) {
1950- //checks on index 0 as if not enabled ingores the rest
1951- const b_enable_control_net = control_net . isControlNetModeEnable ( )
1952-
1953- if ( b_enable_control_net ) {
1954- //use control net
1955- json = await sdapi . requestControlNetImg2Img ( settings )
1956- } else {
1957- json = await sdapi . requestImg2Img ( settings )
1958- }
1959- }
1960- } catch ( e ) {
1961- console . warn ( e )
1962- json = { }
1963- }
1964-
1965- return json
1966- }
1967- //REFACTOR: move to generation.js
1968- async function generateTxt2Img ( settings ) {
1969- let json = { }
1970- try {
1971- const backend_type = html_manip . getBackendType ( )
1972- if ( backend_type === backendTypeEnum [ 'HordeNative' ] ) {
1973- json = await g_horde_generator . generate ( )
1974- // json = await g_horde_generator.toGenerationFormat(images_info)
1975- // json = { images_info: images_info }
1976- } else if (
1977- backend_type === backendTypeEnum [ 'Auto1111' ] ||
1978- backend_type === backendTypeEnum [ 'Auto1111HordeExtension' ]
1979- ) {
1980- // const b_enable_control_net = control_net.getEnableControlNet()
1981- const b_enable_control_net = control_net . isControlNetModeEnable ( )
1982-
1983- if ( b_enable_control_net ) {
1984- //use control net
1985-
1986- json = await sdapi . requestControlNetTxt2Img ( settings )
1987- } else {
1988- json = await sdapi . requestTxt2Img ( settings )
1989- }
1990- }
1991- } catch ( e ) {
1992- console . warn ( e )
1993- json = { }
1994- }
19951937
1996- return json
1997- }
19981938//REFACTOR: move to selection.js
19991939async function hasSelectionChanged ( new_selection , old_selection ) {
20001940 if (
@@ -2261,224 +2201,6 @@ async function easyModeGenerate(mode) {
22612201 }
22622202}
22632203
2264- //REFACTOR: move to generation.js
2265- async function generate ( settings , mode ) {
2266- try {
2267- //pre generation
2268- // toggleGenerateInterruptButton(true)
2269-
2270- // const isFirstGeneration = !(g_is_generation_session_active) // check if this is the first generation in the session
2271- // const isFirstGeneration = !(g_generation_session.isActive()) // check if this is the first generation in the session
2272- const isFirstGeneration = g_generation_session . isFirstGeneration
2273-
2274- // g_generation_session.startSession()
2275- g_generation_session . activate ( )
2276-
2277- g_ui . onStartSessionUI ( )
2278- // toggleTwoButtons(true,'btnGenerate','btnInterrupt')
2279- toggleTwoButtonsByClass ( true , 'btnGenerateClass' , 'btnInterruptClass' )
2280- g_can_request_progress = true
2281- //wait 2 seconds till you check for progress
2282-
2283- if (
2284- html_manip . getBackendType ( ) !== backendTypeEnum [ 'HordeNative' ] // anything other than horde native
2285- ) {
2286- setTimeout ( async function ( ) {
2287- // change this to setInterval()
2288- await progressRecursive ( )
2289- } , 2000 )
2290- }
2291-
2292- if (
2293- html_manip . getBackendType ( ) === backendTypeEnum [ 'Auto1111' ] &&
2294- g_generation_session . is_control_net
2295- ) {
2296- g_generation_session . sudo_timer_id = general . sudoTimer ( )
2297- }
2298-
2299- console . log ( settings )
2300-
2301- g_generation_session . request_status =
2302- Enum . RequestStateEnum [ 'Generating' ]
2303- let json = { }
2304- if ( mode == 'txt2img' ) {
2305- json = await generateTxt2Img ( settings )
2306- } else if (
2307- mode == 'img2img' ||
2308- mode == 'inpaint' ||
2309- mode == 'outpaint'
2310- ) {
2311- // json = await sdapi.requestImg2Img(settings)
2312-
2313- json = await generateImg2Img ( settings )
2314- } else if ( mode == 'upscale' ) {
2315- json = await sdapi . requestExtraSingleImage ( settings )
2316- }
2317-
2318- // if (g_sd_mode == 'outpaint') {
2319- // // await easyModeOutpaint()
2320- // json = await sdapi.requestImg2Img(settings)
2321-
2322- // // await setTimeout(async ()=> {
2323- // // json = await sdapi.requestImg2Img(settings)
2324-
2325- // // },5000)
2326- // }
2327- if (
2328- g_generation_session . request_status ===
2329- Enum . RequestStateEnum [ 'Interrupted' ]
2330- ) {
2331- //when generate request get interrupted. reset progress bar to 0, discard any meta data and images returned from the proxy server by returning from the function.
2332- html_manip . updateProgressBarsHtml ( 0 )
2333- console . log (
2334- 'before delete g_generation_session.progress_layer: ' ,
2335- g_generation_session . progress_layer
2336- )
2337- await g_generation_session . deleteProgressImage ( )
2338- console . log (
2339- 'after delete g_generation_session.progress_layer: ' ,
2340- g_generation_session . progress_layer
2341- )
2342- //check whether request was "generate" or "generate more"
2343- //if it's generate discard the session
2344- if ( isFirstGeneration ) {
2345- await loadViewerImages ( )
2346- await g_generation_session . endSession (
2347- session . GarbageCollectionState [ 'Discard' ]
2348- ) //end session and delete all images
2349- g_ui . onEndSessionUI ( )
2350-
2351- // //delete all mask related layers
2352- }
2353- g_generation_session . request_status =
2354- Enum . RequestStateEnum [ 'Finished' ]
2355- return null
2356- }
2357-
2358- // check if json is empty {}, {} means the proxy server didn't return a valid data
2359- if ( Object . keys ( json ) . length === 0 ) {
2360- if ( isFirstGeneration ) {
2361- await g_generation_session . endSession (
2362- session . GarbageCollectionState [ 'Discard' ]
2363- ) //end session and delete all images
2364- g_ui . onEndSessionUI ( )
2365-
2366- // //delete all mask related layers
2367- }
2368- g_generation_session . request_status =
2369- Enum . RequestStateEnum [ 'Finished' ]
2370- return null
2371- }
2372-
2373- //post generation: will execute only if the generate request doesn't get interrupted
2374- //get the updated metadata from json response
2375-
2376- // g_metadatas = updateMetadata(json.images_info.auto_metadata)
2377- g_last_seed = json . images_info [ 0 ] ?. auto_metadata ?. Seed
2378- //finished generating, set the button back to generate
2379-
2380- // toggleTwoButtons(false,'btnGenerate','btnInterrupt')
2381- toggleTwoButtonsByClass ( false , 'btnGenerateClass' , 'btnInterruptClass' )
2382- g_can_request_progress = false
2383- html_manip . updateProgressBarsHtml ( 0 )
2384-
2385- const images_info = json ?. images_info
2386- // gImage_paths = images_info.images_paths
2387- //open the generated images from disk and load them onto the canvas
2388- // const b_use_silent_import =
2389- // document.getElementById('chUseSilentMode').checked
2390-
2391- if ( isFirstGeneration ) {
2392- //this is new generation session
2393-
2394- // g_generation_session.image_paths_to_layers =
2395- // await silentImagesToLayersExe(images_info)
2396-
2397- g_generation_session . base64OutputImages = { } //delete all previouse images, Note move this to session end ()
2398- for ( const image_info of images_info ) {
2399- const path = image_info [ 'path' ]
2400- const base64_image = image_info [ 'base64' ]
2401- g_generation_session . base64OutputImages [ path ] = base64_image
2402- const [ document_name , image_name ] = path . split ( '/' )
2403- await io . saveFileInSubFolder (
2404- base64_image ,
2405- document_name ,
2406- image_name
2407- ) //save the output image
2408- const json_file_name = `${ image_name . split ( '.' ) [ 0 ] } .json`
2409- settings [ 'auto_metadata' ] = image_info ?. auto_metadata
2410- await io . saveJsonFileInSubFolder (
2411- settings ,
2412- document_name ,
2413- json_file_name
2414- ) //save the settings
2415- }
2416-
2417- g_number_generation_per_session = 1
2418- g_generation_session . isFirstGeneration = false
2419- } else {
2420- // generation session is active so we will generate more
2421-
2422- // let last_images_paths = await silentImagesToLayersExe(images_info)
2423-
2424- for ( const image_info of images_info ) {
2425- const path = image_info [ 'path' ]
2426- const base64_image = image_info [ 'base64' ]
2427- g_generation_session . base64OutputImages [ path ] = base64_image
2428- const [ document_name , image_name ] = path . split ( '/' )
2429- await io . saveFileInSubFolder (
2430- base64_image ,
2431- document_name ,
2432- image_name
2433- )
2434- const json_file_name = `${ image_name . split ( '.' ) [ 0 ] } .json`
2435- settings [ 'auto_metadata' ] = image_info ?. auto_metadata
2436- await io . saveJsonFileInSubFolder (
2437- settings ,
2438- document_name ,
2439- json_file_name
2440- ) //save the settings
2441- }
2442-
2443- // g_generation_session.image_paths_to_layers = {
2444- // ...g_generation_session.image_paths_to_layers,
2445- // ...last_images_paths,
2446- // }
2447- g_number_generation_per_session ++
2448- }
2449- await psapi . reSelectMarqueeExe ( g_generation_session . selectionInfo )
2450- //update the viewer
2451- const base64_list = Object . entries (
2452- g_generation_session . base64OutputImages
2453- ) . map ( ( obj ) => obj [ 1 ] ?? '' )
2454-
2455- const thumbnail_list = [ ]
2456- for ( const base64 of base64_list ) {
2457- const thumbnail = await io . createThumbnail ( base64 , 300 )
2458- thumbnail_list . push ( thumbnail )
2459- }
2460-
2461- viewer . store . updateProperty ( 'thumbnails' , thumbnail_list )
2462- viewer . store . updateProperty ( 'images' , base64_list )
2463- //load react viewer
2464- //*) extract thumbnails
2465- //*) extract images
2466- //*) on thumbnail click
2467- //*) delete previous layer if it exist
2468- //*) load image to canvas
2469- //*)
2470-
2471- //
2472- await loadViewerImages ( )
2473-
2474- //esnures that progress bars are set to 0 (as last progress request call might have returned less than 100%)
2475- updateProgressBarsHtml ( 0 )
2476- } catch ( e ) {
2477- console . error ( `btnGenerate.click(): ` , e )
2478- g_generation_session . request_status = Enum . RequestStateEnum [ 'Finished' ]
2479- }
2480- g_generation_session . request_status = Enum . RequestStateEnum [ 'Finished' ]
2481- }
24822204//REFACTOR: move to events.js
24832205Array . from ( document . getElementsByClassName ( 'btnGenerateClass' ) ) . forEach (
24842206 ( btn ) => {
0 commit comments