自然沟 / laravel-filament-image-generator-field
一个 Laravel Filament 插件,可以在管理面板中直接使用 AI 生成图像
Requires
- php: ^8.1
- filament/forms: ^3.0
- guzzlehttp/guzzle: ^7.8
- openai-php/client: ^0.8.5
- spatie/laravel-package-tools: ^1.15.0
- symfony/http-client: ^6.4
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is auto-updated.
Last update: 2024-09-15 08:26:03 UTC
README
这个自定义字段允许您使用类似 OpenAI DALL-E 的 AI 模型生成不同尺寸和格式的图像。它扩展了文件上传字段,并添加了一个按钮,可以打开图像生成模态框,您可以在此设置生成图像的尺寸和格式。
安装
在开始之前,您必须安装并配置 Laravel Filament 包。如果您还没有这样做,您可以在这里找到安装说明。
先决条件
默认图像生成器设置为 OpenAI DALL-E(版本 3)。您应该有一个 API 密钥来使用它。您可以在这里获取它。在您获取 API 密钥后,您应该在 .env 文件中设置它
OPEN_AI_DALL_E_API_KEY=your-api-key
通过 composer 安装包
在您的终端中运行以下命令以安装包
composer require naturalGroove/laravel-filament-image-generator-field
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="laravel-filament-image-generator-field-config"
配置文件允许您设置字段的默认图像生成器和可用的图像生成器。
可选地,您可以发布视图以自定义字段
php artisan vendor:publish --tag="laravel-filament-image-generator-field-views"
用法
只需在您的表单模式定义中添加新的字段或将文件上传字段替换为 ImageGenerator 字段即可
use \NaturalGroove\Filament\ImageGeneratorField\Forms\Components\ImageGenerator; [...] public static function form(Form $form): Form { return $form ->schema([ ImageGenerator::make('photo'), ]);
如果您正在替换文件上传字段
use \NaturalGroove\Filament\ImageGeneratorField\Forms\Components\ImageGenerator; [...] - FileUpload::make('photo'), + ImageGenerator::make('photo'),
您可以使用与文件上传字段相同的所有选项,例如
use \NaturalGroove\Filament\ImageGeneratorField\Forms\Components\ImageGenerator; ImageGenerator::make('photo') ->imageEditor() ->disk('private'),
此插件默认设置为 OpenAI DALL-E 图像生成器。在定义字段时,您可以选择使用模型的哪个版本
ImageGenerator::make('photo' ->imageGenerator('openai-dall-e-3'),
为图像生成器提供了预定义的快捷方式
ImageGenerator::make('photo') ->openaiDallE2(); // equivalent to ->imageGenerator('openai-dall-e-2') ImageGenerator::make('photo') ->openaiDallE3(); // equivalent to ->imageGenerator('openai-dall-e-3')
根据您选择的图像生成器,您可以选择设置不同的选项。例如 Dall-E 2 允许设置生成的图像数量。
在将字段添加到您的表单后,您应该在文件输入旁边看到一个按钮。当您点击该按钮时,图像生成器模态框将打开。
添加自定义图像生成器
您可以通过实现 NaturalGroove\Filament\ImageGeneratorField\Contracts\AIImageGenerator
接口来添加自定义图像生成器。您的类应该具有接口的所有方法,并且应该在配置文件中注册。返回数组的格式应与以下示例相同
use NaturalGroove\Filament\ImageGeneratorField\Contracts\AIImageGenerator; class MyCustomImageGenerator implements AIImageGenerator { public function generate(string $prompt, int $n = 1, array $params = []): array { // your implementation return [ [ 'url' => 'https://example.com/image.jpg' ] [...] ]; } }
即将推出的功能
- 添加更多图像生成器
- 添加使用 AI 模型(img2img)编辑上传图像的功能
- 为字段添加更多选项
变更日志
请参阅 CHANGELOG 了解最近的变化信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件。