Skip to main content

agentchat.contrib.capabilities.generate_images

ImageGenerator(图像生成器)

class ImageGenerator(Protocol)

这个类定义了一个图像生成器的接口。

该协议的具体实现必须提供一个generate_image方法,该方法接受一个字符串提示作为输入,并返回一个PIL图像对象。

注意:当前的实现不允许您编辑先前存在的图像。

generate_image(生成图像)

def generate_image(prompt: str) -> Image

根据提供的提示生成图像。

参数

  • prompt - 描述所需图像的字符串。

返回值

表示生成图像的PIL图像对象。

抛出

  • ValueError - 如果图像生成失败。

cache_key(缓存键)

def cache_key(prompt: str) -> str

为给定的提示生成一个唯一的缓存键。

该键可用于基于提示存储和检索生成的图像。

参数

  • prompt - 描述所需图像的字符串。

返回值

可用作缓存键的唯一字符串。

DalleImageGenerator(DALL-E图像生成器)

class DalleImageGenerator()

使用OpenAI的DALL-E模型生成图像。

该类提供了一个方便的接口,用于使用OpenAI的DALL-E模型根据文本提示生成图像。它允许您指定DALL-E模型、分辨率、质量和要生成的图像数量。

注意:当前的实现不允许您编辑先前存在的图像。

__init__(初始化)

def __init__(llm_config: Dict,
resolution: Literal["256x256", "512x512", "1024x1024",
"1792x1024", "1024x1792"] = "1024x1024",
quality: Literal["standard", "hd"] = "standard",
num_images: int = 1)

参数

  • llm_config dict - llm配置,必须包含有效的dalle模型和OpenAI API密钥。
  • resolution str - 您想要生成的图像的分辨率。必须是"256x256"、"512x512"、"1024x1024"、"1792x1024"、"1024x1792"之一。
  • quality str - 您想要生成的图像的质量。必须是"standard"、"hd"之一。
  • num_images int - 要生成的图像数量。

ImageGeneration(图像生成)

class ImageGeneration(AgentCapability)

此功能允许ConversableAgent根据从其他Agents接收到的消息生成图像。

  1. 利用TextAnalyzerAgent分析传入的消息,以识别图像生成的请求并提取相关细节。
  2. 利用提供的ImageGenerator(例如DalleImageGenerator)创建图像。
  3. 可选择缓存生成的图像,以便在将来的对话中更快地检索。

注意:此功能会增加代理的令牌使用量,因为它使用TextAnalyzerAgent来分析代理接收到的每条消息。

示例

```python
import autogen.
from autogen.agentchat.contrib.capabilities.image_generation import ImageGeneration

# 假设您已经为您想要使用的LLM和Dalle配置了llm配置。
# 创建代理
agent = autogen.ConversableAgent(
name="dalle", llm_config={...}, max_consecutive_auto_reply=3, human_input_mode="NEVER"
)

# 使用所需的设置创建一个ImageGenerator
dalle_gen = generate_images.DalleImageGenerator(llm_config={...})

# 将ImageGeneration能力添加到代理
agent.add_capability(ImageGeneration(image_generator=dalle_gen))

__init__

def __init__(image_generator: ImageGenerator,
cache: Optional[AbstractCache] = None,
text_analyzer_llm_config: Optional[Dict] = None,
text_analyzer_instructions: str = PROMPT_INSTRUCTIONS,
verbosity: int = 0,
register_reply_position: int = 2)

参数

  • image_generator ImageGenerator - 您想要使用的图像生成器。
  • cache None or AbstractCache - 用于存储和检索生成的图像的缓存客户端。如果为None,则不使用缓存。
  • text_analyzer_llm_config Dict or None - 文本分析器的LLM配置。如果为None,则从要添加能力的代理中检索LLM配置。
  • text_analyzer_instructions str - 用于分析传入消息并提取图像生成提示的TextAnalyzerAgent使用的指令。默认指令侧重于概括提示。您可以自定义指令以实现对提示提取的更精细控制。
  • Example - '从消息中提取特定细节,如所需对象、样式或背景。'
  • verbosity int - 详细程度级别。默认为0,必须大于或等于0。如果verbosity小于2,则文本分析器LLM调用将保持静默。
  • register_reply_position int - 回复函数在代理的回复函数列表中的位置。此能力注册一个新的回复函数来处理带有图像生成请求的消息。默认为2,以便将其放置在ConversableAgent的检查终止和人工回复之后。

add_to_agent

def add_to_agent(agent: ConversableAgent)

将图像生成能力添加到指定的ConversableAgent中。

此函数对代理进行以下修改:

  1. 注册回复函数:向代理注册一个新的回复函数,以处理可能请求图像生成的消息。此函数分析消息并在必要时触发图像生成。
  2. 创建代理(TextAnalyzerAgent):用于分析图像生成要求的消息。
  3. 更新系统消息:更新代理的系统消息,包括指示已添加生成图像能力的消息。
  4. 更新描述:根据添加了图像生成功能,更新了代理的描述。这在某些使用情况下可能会很有帮助,比如群聊。

参数

  • agent ConversableAgent - 要添加该功能的 ConversableAgent。