Skip to main content

Official Python SDK for LlamaGen Comic API and Animation API

Project description

llamagen-python

Official Python SDK for LlamaGen's Comic API and Animation API.

Homepage: https://llamagen.ai/comic-api

Install

pip install llamagen-python

Quick Start

import os
from llamagen import LlamaGenClient

llamagen = LlamaGenClient(api_key=os.environ["LLAMAGEN_API_KEY"])

created = llamagen.comic.create({
    "prompt": "A 4-panel comic about Leo finding a glowing key in a quiet library.",
    "style": "manga",
    "fixPanelNum": 4,
})

done = llamagen.comic.wait_for_completion(created["id"])
print(done["status"], done.get("comics"))

Client

llamagen = LlamaGenClient(
    api_key="YOUR_API_KEY",
    base_url="https://api.llamagen.ai/v1",
    timeout_ms=30000,
    max_retries=2,
    retry_delay_ms=500,
)

The SDK uses Python's standard library HTTP stack and does not require runtime dependencies.

Comic API

Use llamagen.comic to create comics, manga, webtoons, storyboards, consistent-character pages, and panel edits.

generation = llamagen.comic.create({
    "prompt": "The Little Prince meets the Fox in a luminous desert.",
    "style": "storybook manga",
    "size": "1024x1024",
    "pagination": {"totalPages": 2, "panelsPerPage": 4},
    "comicRoles": [
        {
            "name": "The Little Prince",
            "image": "https://example.com/prince.png",
            "clothing": "green coat and yellow scarf",
        }
    ],
    "attachments": [{"type": "image", "url": "https://example.com/reference.png"}],
    "language": "en",
    "upscale": "2K",
})

Comic methods:

  • llamagen.comic.create(params) calls POST /v1/comics/generations.
  • llamagen.comic.get(id, page=None, panel=None) calls GET /v1/comics/generations/{id}.
  • llamagen.comic.continue_write(id, params) extends an existing comic.
  • llamagen.comic.update_panel(id, params) regenerates one panel.
  • llamagen.comic.usage() calls GET /v1/comics/usage.
  • llamagen.comic.upload(file, filename=None) calls POST /v1/comics/upload.
  • llamagen.comic.wait_for_completion(id, **options) polls until a terminal status.
  • llamagen.comic.create_and_wait(params, **options) creates and polls.
  • llamagen.comic.create_batch(params_list, concurrency=3) submits many jobs.
  • llamagen.comic.wait_for_many(ids, concurrency=3) polls many jobs.

JavaScript-style aliases are also available: createComic, getComic, continueComic, regeneratePanel, updateComicPanel, waitForCompletion, createAndWait, and waitForMany.

Animation API

video = llamagen.animation.create({
    "prompt": "A heroic fox detective walks through neon rain, cinematic camera move.",
    "videoOptions": {
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9",
        "image": "https://example.com/first-frame.png",
        "last_frame_image": "https://example.com/last-frame.png",
        "reference_images": ["https://example.com/character.png"],
    },
})

finished = llamagen.animation.wait_for_completion(
    video["id"],
    interval_ms=5000,
    timeout_ms=300000,
)

Animation methods:

  • llamagen.animation.create(params) calls POST /v1/artworks/generations.
  • llamagen.animation.get(id) calls GET /v1/artworks/generations/{id}.
  • llamagen.animation.wait_for_completion(id, **options) polls video status.
  • llamagen.animation.create_and_wait(params, **options) creates and polls.

llamagen.animations is an alias for llamagen.animation.

Webhooks

from llamagen import construct_webhook_event

event = construct_webhook_event(
    payload=raw_body,
    headers=request_headers,
    secret=os.environ["LLAMAGEN_WEBHOOK_SECRET"],
)

The helper verifies X-Llama-Webhook-Timestamp and X-Llama-Webhook-Signature with HMAC SHA-256 and a default 5-minute tolerance.

Publishing

Detailed release notes are in docs/RELEASE.md.

  1. Update version in pyproject.toml.
  2. Run tests and packaging checks:
python -m unittest discover -s tests
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
  1. Publish to TestPyPI first:
python -m twine upload --repository testpypi dist/*
  1. Install from TestPyPI in a clean environment and smoke-test:
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ llamagen-python
  1. Publish to PyPI:
python -m twine upload dist/*

Use a PyPI API token through TWINE_USERNAME=__token__ and TWINE_PASSWORD=pypi-... or configure a trusted publisher in PyPI for GitHub Actions.

Local Dev

python -m unittest discover -s tests
python -m compileall src tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llamagen_python-0.1.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llamagen_python-0.1.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file llamagen_python-0.1.0.tar.gz.

File metadata

  • Download URL: llamagen_python-0.1.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for llamagen_python-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f9d1f5dedde663a751783dce4712adf6dc5739b9fa5a0ec0521aa9ac307ebeec
MD5 d60836be606c2c2c16869dc311eff910
BLAKE2b-256 ca28c4be6d4bae9fb9dcceaf837a52536d9b8db5d14067f72e909426074e51fc

See more details on using hashes here.

File details

Details for the file llamagen_python-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for llamagen_python-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e59094f634f328cb77c0d2147a4d6ad9d6ab94fd34ef33dd5d9e1414641fc9ce
MD5 1a862dd002b2f20baa2d46a7cc5e0ebd
BLAKE2b-256 d685f363c7f45b434650cd2836bfe39b022895e210303a7e35018534e289819e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page