BrilliantAI Python
A Python client for interacting with the BrilliantAI AI APIs for image and video generation.
Installation
pip install brilliantai-python
Usage
Authentication
You can authenticate using an API key directly or via an environment variable:
from brilliantai import BrilliantAI
# Option 1: API key directly
client = BrilliantAI(api_key="your_api_key", base_url="https://api.brilliantai.co")
# Option 2: Environment variable
# export BRILLIANTAI_API_KEY="your_api_key"
client = BrilliantAI()
Generating Images
# Generate an image
image = client.generate_image(
model="glimmer-v1",
prompt="a beautiful landscape",
aspect_ratio=BrilliantAI.AspectRatio.LANDSCAPE_16_9,
image_format=BrilliantAI.ImageFormat.PNG,
seed=42
)
# Save the image
image.save("landscape") # Saves as "landscape.png"
Generating Videos
# Generate a video
video = client.generate_video(
model="wan-v1",
prompt="a flowing river",
quality=BrilliantAI.VideoQuality.HIGH,
fps=30
)
# Save the video
video.save("river") # Saves as "river.mp4"
API Reference
BrilliantAI
BrilliantAI(api_key=None, base_url="https://api.brilliantai.co", timeout=1200)
Creates a new client instance.
Parameters:
api_key(Optional[str]): API key for authentication. If not provided, will attempt to use theBRILLIANTAI_API_KEYenvironment variable.base_url(str): Base URL for the API.timeout(int): Request timeout in seconds. Default is 1200 (20 minutes).
generate_image(model, prompt, aspect_ratio=AspectRatio.SQUARE, image_format=ImageFormat.WEBP, seed=None)
Generates an image based on the given prompt.
Parameters:
model(str): The model to use for generation.prompt(str): The prompt describing the image.aspect_ratio(BrilliantAI.AspectRatio): The aspect ratio of the generated image.image_format(BrilliantAI.ImageFormat): The format of the generated image.seed(Optional[int]): Random seed for reproducibility.
Returns:
Media: Media object containing the generated image.
generate_video(model, prompt, quality=BrilliantAI.VideQuality.HIGH, fps=25)
Generates a video based on the given prompt.
Parameters:
model(str): The model to use for generation.prompt(str): The prompt describing the video.quality(BrilliantAI.VideoQuality): The quality of the video (LOW, QUALITY, HIGH).fps(int): Frames per second of the video.
Returns:
Media: Media object containing the generated video.
Media
Media(base64_data, format)
Represents media data (images or videos).
Methods:
save(path): Saves the media to the specified path. If no extension is provided, the correct one will be added based on the format.
Exceptions
APIError(status_code, message)
Raised when the API returns an error.
License
MIT
Development
Setup Development Environment
- Clone the repository:
git clone https://github.com/brilliantai/brilliantai-python.git
cd BrilliantAI
- Install development dependencies:
# Using pip
pip install -e . -r dev-requirements.txt
# Using uv (recommended)
uv pip install -e . -r dev-requirements.txt
Running Tests
Run tests with the provided script:
./scripts/run_tests.sh
Or run the commands individually:
# Run linting
ruff check .
# Run tests with coverage
pytest --cov=BrilliantAI
CI/CD
This project uses GitHub Actions for continuous integration and deployment:
- Tests are automatically run on all pull requests and pushes to the main branch
- When a new release is created, the package is automatically built and published to PyPI
Contributing
Contributions are welcome! Here's how you can contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests to ensure everything works
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please make sure your code passes all tests and linting checks before submitting a pull request.
Metadata
Release files for brilliantai-python 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| brilliantai_python-0.1.2.tar.gz | 5.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| brilliantai_python-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.4 kB
Release files / brilliantai_python-0.1.2.tar.gz
| Download URL | brilliantai_python-0.1.2.tar.gz |
|---|---|
| Size | 5.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bcd9a87169abe70febb274bac8b8087e1c31c23144d63c58224ca5fc3bb60614
|
|
BLAKE2b-256 checksum How to use checksums |
fa4b3b2c5fd6f6324ce7c9e8bf2d49bb5457144fbb4c2c140ff972e613c0c2ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / brilliantai_python-0.1.2-py3-none-any.whl
| Download URL | brilliantai_python-0.1.2-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bc2aab5a8ddbbd022617c491619dfee65be09437e7d8504d75efb0d3aef283d6
|
|
BLAKE2b-256 checksum How to use checksums |
680beb1cf7523cee0efb28671031b0373bfe298985f6c54e83e8ee0b7ebfcf49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|