自然沟/laravel-filament-image-generator-field

一个 Laravel Filament 插件,可以在管理面板中直接使用 AI 生成图像

1.0.2 2024-05-08 21:08 UTC

This package is auto-updated.

Last update: 2024-09-15 08:26:03 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

这个自定义字段允许您使用类似 OpenAI DALL-E 的 AI 模型生成不同尺寸和格式的图像。它扩展了文件上传字段,并添加了一个按钮,可以打开图像生成模态框,您可以在此设置生成图像的尺寸和格式。

filament image generator 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"

用法

screenshot

只需在您的表单模式定义中添加新的字段或将文件上传字段替换为 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 允许设置生成的图像数量。

在将字段添加到您的表单后,您应该在文件输入旁边看到一个按钮。当您点击该按钮时,图像生成器模态框将打开。

screenshot

添加自定义图像生成器

您可以通过实现 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'
            ]
            [...]
        ];
    }

}

screenshot

即将推出的功能

  • 添加更多图像生成器
  • 添加使用 AI 模型(img2img)编辑上传图像的功能
  • 为字段添加更多选项

变更日志

请参阅 CHANGELOG 了解最近的变化信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可协议

MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件