symfony / ai-higgsfield-platform
Higgsfield platform bridge for Symfony AI
Package info
github.com/symfony/ai-higgsfield-platform
Type:symfony-ai-platform
pkg:composer/symfony/ai-higgsfield-platform
Requires
- php: >=8.2
- symfony/ai-platform: ^0.13
- symfony/clock: ^7.3|^8.0
- symfony/http-client: ^7.3|^8.0
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/phpunit: ^11.5.53
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-20 15:56:10 UTC
README
Higgsfield platform bridge for Symfony AI.
Higgsfield is an AI-native creative suite for generating images and videos from text prompts or
references. The bridge submits a generation request, polls the Higgsfield API until the media is
ready and returns the result as a BinaryResult.
Usage
use Symfony\AI\Platform\Bridge\Higgsfield\Factory; use Symfony\AI\Platform\Message\Content\Text; $platform = Factory::createPlatform( apiKey: 'YOUR_KEY_ID', apiSecret: 'YOUR_KEY_SECRET', ); $result = $platform->invoke('soul-2', new Text('A cat on a kitchen table'), [ 'aspect_ratio' => '9:16', ]); $result->asFile(__DIR__.'/cat.png');
The model name maps directly to a Higgsfield generation endpoint. Any extra input parameters are
passed as the third invoke() argument. The model catalog is fetched from the Higgsfield API, so
GET /models decides which model names are available to your account.
Endpoint names are long and carry a version (higgsfield-ai/soul/v2/standard), which cannot be
dropped - higgsfield-ai/soul/standard exists alongside it. CuratedModelCatalog, used by default,
therefore adds a short alias that keeps the version visible:
| Alias | Model |
|---|---|
soul-2 |
higgsfield-ai/soul/v2/standard |
kling-2.5-i2v |
kling-video/v2.5-turbo/standard/image-to-video |
wan-2.7-t2v |
wan/v2.7/text-to-video |
A family and version can serve several operations - wan/v2.7 also has an image-to-video and a
reference-to-video endpoint - so the alias names the operation whenever the family and version alone
would not identify one.
Aliases are a shortcut, never a restriction: every name the API reports keeps working. Pass your own
ModelCatalogInterface to Factory::createPlatform() to replace them.