@@ -1934,67 +1934,7 @@ async function getExtraSettings() {
1934
1934
}
1935
1935
return payload
1936
1936
}
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
- }
1995
1937
1996
- return json
1997
- }
1998
1938
//REFACTOR: move to selection.js
1999
1939
async function hasSelectionChanged ( new_selection , old_selection ) {
2000
1940
if (
@@ -2261,224 +2201,6 @@ async function easyModeGenerate(mode) {
2261
2201
}
2262
2202
}
2263
2203
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
- }
2482
2204
//REFACTOR: move to events.js
2483
2205
Array . from ( document . getElementsByClassName ( 'btnGenerateClass' ) ) . forEach (
2484
2206
( btn ) => {
0 commit comments