Fix create_async in CreateImagesProvider

pull/1444/head
Heiner Lohaus 9 months ago
parent 9aa76da0fa
commit 4343082d37

@ -71,14 +71,17 @@ class CreateImagesProvider(BaseProvider):
) -> str: ) -> str:
messages.insert(0, {"role": "system", "content": self.system_message}) messages.insert(0, {"role": "system", "content": self.system_message})
response = await self.provider.create_async(model, messages, **kwargs) response = await self.provider.create_async(model, messages, **kwargs)
matches = re.findall(r'(<img data-prompt="(.*?)">)', result) matches = re.findall(r'(<img data-prompt="(.*?)">)', response)
results = [] results = []
for _, prompt in matches: placeholders = []
results.append(self.create_images_async(prompt)) for placeholder, prompt in matches:
if placeholder not in placeholders:
results.append(self.create_images_async(prompt))
placeholders.append(placeholder)
results = await asyncio.gather(*results) results = await asyncio.gather(*results)
for idx, result in enumerate(results): for idx, result in enumerate(results):
placeholder = matches[idx][0] placeholder = placeholder[idx]
if self.include_placeholder: if self.include_placeholder:
result = placeholder + result result = placeholder + result
response = response.replace(placeholder, result) response = response.replace(placeholder, result)
return result return response
Loading…
Cancel
Save