@@ -137,8 +137,8 @@ async function generate(context, prompt, imgPaths, modelId, meta = {}) {
137137 await waitForInput ( page , INPUT_SELECTOR , { click : false } ) ;
138138 await sleep ( 1500 , 2500 ) ;
139139
140- // 2. 上传图片 (如果有多张图片,会一张一张上传,每次都是 v1/files POST 请求)
141- if ( imgPaths && imgPaths . length > 0 ) {
140+ // 2. 并行执行: 上传图片 + 填写提示词
141+ const uploadTask = ( imgPaths && imgPaths . length > 0 ) ? ( async ( ) => {
142142 const expectedUploads = imgPaths . length ;
143143 let uploadedCount = 0 ;
144144
@@ -155,13 +155,20 @@ async function generate(context, prompt, imgPaths, modelId, meta = {}) {
155155 return false ;
156156 }
157157 } ) ;
158+ await sleep ( 500 , 1000 ) ;
159+ } ) ( ) : Promise . resolve ( ) ;
158160
159- await sleep ( 1000 , 2000 ) ;
160- }
161+ const promptTask = ( async ( ) => {
162+ // 等待一小段时间,让图片上传先开始(pasteImages 会先点击输入框)
163+ if ( imgPaths && imgPaths . length > 0 ) {
164+ await sleep ( 800 , 1200 ) ;
165+ }
166+ await safeClick ( page , INPUT_SELECTOR , { bias : 'input' } ) ;
167+ await fillPrompt ( page , INPUT_SELECTOR , prompt , meta ) ;
168+ } ) ( ) ;
161169
162- // 3. 填写提示词
163- await safeClick ( page , INPUT_SELECTOR , { bias : 'input' } ) ;
164- await fillPrompt ( page , INPUT_SELECTOR , prompt , meta ) ;
170+ // 等待两个任务都完成
171+ await Promise . all ( [ uploadTask , promptTask ] ) ;
165172 await sleep ( 500 , 1000 ) ;
166173
167174 // 4. 通过 UI 交互选择模型
0 commit comments