Skip to content

llmfilters

Class info

🛈 DocStrings

llm_generate_image

llm_generate_image(
    prompt: str,
    model: str | None = None,
    token: str | None = None,
    base_url: str | None = None,
    size: str = "1024x1024",
    quality: str = "standard",
    as_b64_json: bool = False,
    **kwargs: Any
) -> str | None

Generate an image using the LLM API and returns the URL.

Parameters:

Name Type Description Default
prompt str

The prompt to generate an image from.

required
model str | None

The model to use. Defaults to None.

None
token str | None

The API token. Defaults to None.

None
base_url str | None

The base URL of the API. Defaults to None.

None
size str

The size of the generated image. Defaults to "1024x1024".

'1024x1024'
quality str

The quality of the generated image. Defaults to "standard".

'standard'
as_b64_json bool

Return b64-encoded image instead of URL.

False
kwargs Any

Additional keyword arguments passed to litellm.image_generation.

{}

Returns:

Type Description
str | None

The generated image response.

Source code in src/jinjarope/llmfilters.py
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
def llm_generate_image(
    prompt: str,
    model: str | None = None,
    token: str | None = None,
    base_url: str | None = None,
    size: str = "1024x1024",
    quality: str = "standard",
    as_b64_json: bool = False,
    **kwargs: Any,
) -> str | None:
    """Generate an image using the LLM API and returns the URL.

    Args:
        prompt: The prompt to generate an image from.
        model: The model to use. Defaults to None.
        token: The API token. Defaults to None.
        base_url: The base URL of the API. Defaults to None.
        size: The size of the generated image. Defaults to "1024x1024".
        quality: The quality of the generated image. Defaults to "standard".
        as_b64_json: Return b64-encoded image instead of URL.
        kwargs: Additional keyword arguments passed to litellm.image_generation.

    Returns:
        The generated image response.
    """
    response = litellm.image_generation(
        prompt=prompt,
        model=model or os.getenv("OPENAI_IMAGE_MODEL"),
        api_key=token or os.getenv("OPENAI_API_TOKEN"),
        api_base=base_url,
        size=size,
        quality=quality,
        response_format="b64_json" if as_b64_json else "url",
        **kwargs,
    )
    # Check if the API result is valid
    if response and response.data and len(response.data) > 0:
        # TODO: <img src="data:image/png;base64,iVBORw0KG..." />
        return response.data[0].b64_json if as_b64_json else response.data[0].url
    return None