|
|
@ -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 = []
|
|
|
|
|
|
|
|
for placeholder, prompt in matches:
|
|
|
|
|
|
|
|
if placeholder not in placeholders:
|
|
|
|
results.append(self.create_images_async(prompt))
|
|
|
|
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
|