@@ -4,18 +4,7 @@ var generationTaskMap=new Map();
44async function registerGenerationTask ( taskId , taskInfo ) {
55var canvasGuid = getCanvasGUID ( ) ;
66if ( ! btmProjectsMap . has ( canvasGuid ) ) {
7- try {
87await btmSaveProjectFile ( canvasGuid , false ) ;
9- generationTaskLogger . debug ( "Saved current page to btmProjectsMap" , canvasGuid ) ;
10- var savedData = btmProjectsMap . get ( canvasGuid ) ;
11- generationTaskLogger . debug ( "Saved data check" , {
12- hasData :! ! savedData ,
13- hasBlob :! ! ( savedData && savedData . blob ) ,
14- blobType :savedData && savedData . blob ?savedData . blob . constructor . name :'none'
15- } ) ;
16- } catch ( e ) {
17- generationTaskLogger . error ( "Failed to save current page" , e ) ;
18- }
198}
209var info = {
2110canvasGuid :canvasGuid ,
@@ -79,22 +68,10 @@ return false;
7968try {
8069var result = await processImageOnOffscreenCanvas ( projectData . blob , task , fabricImage ) ;
8170if ( result . success ) {
82- generationTaskLogger . debug ( "processImageOnOffscreenCanvas result" , {
83- hasBlobResult :! ! result . blob ,
84- blobType :result . blob ?result . blob . constructor . name :'none' ,
85- blobSize :result . blob ?result . blob . size :0
86- } ) ;
8771btmProjectsMap . set ( task . canvasGuid , {
8872imageLink :result . previewLink ,
8973blob :result . blob
9074} ) ;
91- var updatedData = btmProjectsMap . get ( task . canvasGuid ) ;
92- generationTaskLogger . debug ( "Updated btmProjectsMap" , {
93- hasData :! ! updatedData ,
94- hasBlob :! ! ( updatedData && updatedData . blob ) ,
95- blobType :updatedData && updatedData . blob ?updatedData . blob . constructor . name :'none' ,
96- blobSize :updatedData && updatedData . blob ?updatedData . blob . size :0
97- } ) ;
9875btmUpdateThumbnail ( task . canvasGuid , result . previewLink ) ;
9976showGenerationCompleteNotification ( task . canvasGuid ) ;
10077}
@@ -124,6 +101,14 @@ var localStateStack=[];
124101var canvasInfoBuffer = getDataByName ( files , "canvas_info.json" ) ;
125102var canvasInfoStr = ArrayBufferUtils . fromArrayBufferToString ( canvasInfoBuffer ) ;
126103var canvasInfo = canvasInfoStr ?JSON . parse ( canvasInfoStr ) :{ width :750 , height :850 } ;
104+ var basePromptBuffer = getDataByName ( files , "text2img_basePrompt.json" ) ;
105+ var basePromptData = { } ;
106+ if ( basePromptBuffer ) {
107+ var basePromptStr = ArrayBufferUtils . fromArrayBufferToString ( basePromptBuffer ) ;
108+ if ( basePromptStr ) {
109+ basePromptData = JSON . parse ( basePromptStr ) ;
110+ }
111+ }
127112offscreenCanvas . setWidth ( canvasInfo . width ) ;
128113offscreenCanvas . setHeight ( canvasInfo . height ) ;
129114var sortedFiles = files . sort ( ( a , b ) => {
@@ -168,7 +153,7 @@ placeImageOnOffscreenCanvas(offscreenCanvas,fabricImage,task,targetLayer,localIm
168153offscreenCanvas . renderAll ( ) ;
169154var newState = customToJSONForOffscreen ( offscreenCanvas , localImageMap ) ;
170155localStateStack . push ( JSON . stringify ( newState ) ) ;
171- var newBlob = await generateBlobForOffscreen ( localStateStack , localImageMap , canvasInfo , offscreenCanvas ) ;
156+ var newBlob = await generateBlobForOffscreen ( localStateStack , localImageMap , canvasInfo , offscreenCanvas , basePromptData ) ;
172157var previewLink = generatePreviewFromOffscreen ( offscreenCanvas ) ;
173158return {
174159success :true ,
@@ -309,8 +294,10 @@ objectCaching:false
309294return clipPath ;
310295}
311296
312- async function generateBlobForOffscreen ( localStateStack , localImageMap , canvasInfo , offscreenCanvas ) {
297+ async function generateBlobForOffscreen ( localStateStack , localImageMap , canvasInfo , offscreenCanvas , basePromptData ) {
313298var fileBufferList = [ ] ;
299+ var basePromptBuffer = await ArrayBufferUtils . toArrayBuffer ( JSON . stringify ( basePromptData || { } ) ) ;
300+ lz4Compressor . putDataListByArrayBuffer ( fileBufferList , 'text2img_basePrompt.json' , basePromptBuffer ) ;
314301for ( var i = 0 ; i < localStateStack . length ; i ++ ) {
315302var stateStr = typeof localStateStack [ i ] === 'string' ?localStateStack [ i ] :JSON . stringify ( localStateStack [ i ] ) ;
316303var buffer = await ArrayBufferUtils . toArrayBuffer ( stateStr ) ;
0 commit comments