Skip to content

Text to image

TextToImageToolSpec #

Bases: BaseToolSpec

文本转图像工具规范。

Source code in llama_index/tools/text_to_image/base.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class TextToImageToolSpec(BaseToolSpec):
    """文本转图像工具规范。"""

    spec_functions = ["generate_images", "show_images", "generate_image_variation"]

    def __init__(self, api_key: Optional[str] = None) -> None:
        if api_key:
            openai.api_key = api_key

    def generate_images(
        self, prompt: str, n: Optional[int] = 1, size: Optional[str] = "256x256"
    ) -> List[str]:
        """将提示传递给OpenAI的文本到图像API,以生成基于提供的查询的图像。

Args:
    prompt(str):要基于生成图像的提示
    n(int):要生成的图像数量。默认为1。
    size(str):要生成的图像的大小。默认为256x256。其他接受的值为1024x1024和512x512

处理此函数返回的URL时,永远不要剥离任何参数或尝试修改URL,它们对于授权查看图像是必要的。
"""
        try:
            response = openai.Image.create(prompt=prompt, n=n, size=size)
            return [image["url"] for image in response["data"]]
        except openai.error.OpenAIError as e:
            return e.error

    def generate_image_variation(
        self, url: str, n: Optional[int] = 1, size: Optional[str] = "256x256"
    ) -> str:
        """接受图像的URL,并使用OpenAI的API生成图像的变体。
此工具可以获取较小的图像并创建更高分辨率的变体,反之亦然。

在从“generate_images”传递URL时,始终以从函数返回的方式传递URL,包括所有查询参数。
Args:
    url(str):要创建变体的图像的URL
    n(int):要生成的图像数量。默认为1。
    size(str):要生成的图像的大小。默认为256x256。其他接受的值为1024x1024和512x512
"""
        try:
            response = openai.Image.create_variation(
                image=BytesIO(requests.get(url).content).getvalue(), n=n, size=size
            )
            return [image["url"] for image in response["data"]]
        except openai.error.OpenAIError as e:
            return e.error

    def show_images(self, urls: List[str]):
        """使用此函数使用pyplot和pillow显示图像。这在jupyter笔记本中有效。

Args:
    urls(str):要显示的图像的url(s)
"""
        import matplotlib.pyplot as plt
        from PIL import Image

        for url in urls:
            plt.figure()
            plt.imshow(Image.open(BytesIO(requests.get(url).content)))
        return "images rendered successfully"

generate_images #

generate_images(
    prompt: str,
    n: Optional[int] = 1,
    size: Optional[str] = "256x256",
) -> List[str]

将提示传递给OpenAI的文本到图像API,以生成基于提供的查询的图像。

处理此函数返回的URL时,永远不要剥离任何参数或尝试修改URL,它们对于授权查看图像是必要的。

Source code in llama_index/tools/text_to_image/base.py
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    def generate_images(
        self, prompt: str, n: Optional[int] = 1, size: Optional[str] = "256x256"
    ) -> List[str]:
        """将提示传递给OpenAI的文本到图像API,以生成基于提供的查询的图像。

Args:
    prompt(str):要基于生成图像的提示
    n(int):要生成的图像数量。默认为1。
    size(str):要生成的图像的大小。默认为256x256。其他接受的值为1024x1024和512x512

处理此函数返回的URL时,永远不要剥离任何参数或尝试修改URL,它们对于授权查看图像是必要的。
"""
        try:
            response = openai.Image.create(prompt=prompt, n=n, size=size)
            return [image["url"] for image in response["data"]]
        except openai.error.OpenAIError as e:
            return e.error

generate_image_variation #

generate_image_variation(
    url: str,
    n: Optional[int] = 1,
    size: Optional[str] = "256x256",
) -> str

接受图像的URL,并使用OpenAI的API生成图像的变体。 此工具可以获取较小的图像并创建更高分辨率的变体,反之亦然。

在从“generate_images”传递URL时,始终以从函数返回的方式传递URL,包括所有查询参数。 Args: url(str):要创建变体的图像的URL n(int):要生成的图像数量。默认为1。 size(str):要生成的图像的大小。默认为256x256。其他接受的值为1024x1024和512x512

Source code in llama_index/tools/text_to_image/base.py
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
    def generate_image_variation(
        self, url: str, n: Optional[int] = 1, size: Optional[str] = "256x256"
    ) -> str:
        """接受图像的URL,并使用OpenAI的API生成图像的变体。
此工具可以获取较小的图像并创建更高分辨率的变体,反之亦然。

在从“generate_images”传递URL时,始终以从函数返回的方式传递URL,包括所有查询参数。
Args:
    url(str):要创建变体的图像的URL
    n(int):要生成的图像数量。默认为1。
    size(str):要生成的图像的大小。默认为256x256。其他接受的值为1024x1024和512x512
"""
        try:
            response = openai.Image.create_variation(
                image=BytesIO(requests.get(url).content).getvalue(), n=n, size=size
            )
            return [image["url"] for image in response["data"]]
        except openai.error.OpenAIError as e:
            return e.error

show_images #

show_images(urls: List[str])

使用此函数使用pyplot和pillow显示图像。这在jupyter笔记本中有效。

Source code in llama_index/tools/text_to_image/base.py
58
59
60
61
62
63
64
65
66
67
68
69
70
    def show_images(self, urls: List[str]):
        """使用此函数使用pyplot和pillow显示图像。这在jupyter笔记本中有效。

Args:
    urls(str):要显示的图像的url(s)
"""
        import matplotlib.pyplot as plt
        from PIL import Image

        for url in urls:
            plt.figure()
            plt.imshow(Image.open(BytesIO(requests.get(url).content)))
        return "images rendered successfully"