定制 vedanshi-shethia/gemini-banner 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

vedanshi-shethia/gemini-banner

最新稳定版本:v1.0.1

Composer 安装命令:

composer require vedanshi-shethia/gemini-banner

包简介

Laravel package to generate website banners using Gemini AI

README 文档

README

Gemini Banner Generator for Laravel

A Laravel package to generate high-quality website advertisement banners using Google Gemini Image API, designed specifically for book stores and publishers.

This package strictly preserves original book cover text, typography, and layout by enforcing copy-paste image usage instead of AI text recreation.

✨ Features

  • 🎨 AI-generated website banners using Google Gemini
  • 🔒 Private input images, 🌍 public generated banners
  • ❌ Zero text distortion or hallucination
  • 📐 Aspect-ratio locking via reference image
  • Sync & Async (Queue) support
  • 🧱 Clean service-based architecture
  • 🪄 Facade for simple usage
  • 🧪 Queue-safe & retry-safe
  • ⚙️ Fully configurable storage paths & disks
  • 📦 Laravel auto-discovery support

📦 Installation

Via Composer

composer require vedanshi-shethia/gemini-banner

⚙️ Configuration

Publish the config file:

php artisan vendor:publish --tag=gemini-banner

This creates:

config/gemini-banner.php

🔗 Storage Symlink (Required)

This package stores generated banners on the public disk. Make sure the public storage symlink exists:

php php artisan storage:link

This creates:

public/storage → storage/app/public

🔑 Environment variables

GEMINI_API_KEY=your_google_gemini_api_key

# Storage
GEMINI_INPUT_DISK=local
GEMINI_OUTPUT_DISK=public

🧠 Storage Design (Important)

This package follows industry best practices:

Type Disk Visibility
Input images local 🔒 Private
Generated banners public 🌍 Public
storage/
├── app/
│   ├── private/
│   │   └── gemini/input/
│   └── public/
│       └── gemini/output/

⚙️ Config Reference

return [

    'api_key' => env('GEMINI_API_KEY'),

    'endpoint' => 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent',

    'disks' => [
        'input'  => env('GEMINI_INPUT_DISK', 'local'),
        'output' => env('GEMINI_OUTPUT_DISK', 'public'),
    ],

    'paths' => [
        'front'     => 'gemini/input/front',
        'back'      => 'gemini/input/back',
        'reference' => 'gemini/input/reference',
        'output'    => 'gemini/output',
    ],

    'cleanup' => [
        'enabled' => true,
    ],
];

🚀 Usage

1️⃣ Sync Generation (Facade)

use Vedanshi\GeminiBanner\Facades\GeminiBanner;
use Vedanshi\GeminiBanner\Http\Requests\GenerateBannerRequest;

function (GenerateBannerRequest $request) {
    $result = GeminiBanner::generate($request->payload());
}

Returns a public URL of the generated banner.

2️⃣ Async Generation (Queue)

use Vedanshi\GeminiBanner\Jobs\GenerateGeminiBannerJob;
use Vedanshi\GeminiBanner\Http\Requests\GenerateBannerRequest;

function (GenerateBannerRequest $request) {
    GenerateGeminiBannerJob::dispatch($request->payload());
}

✅ Ideal for:

  • Heavy image processing
  • High-traffic systems
  • Background workflows

🧾 Expected Payload Structure

[
    'front_image' => string,        // path on input disk
    'back_image' => string,         // path on input disk
    'transparent_image' => string,  // path on input disk
    'product_name' => string,
]

⚠️ Do NOT pass temp paths (php/tmp). Files must be stored first using Laravel storage.

🧹 Automatic Cleanup

  • Input images are deleted immediately after successful generation
  • Cleanup is retry-safe
  • Cleanup can be disabled via config
'cleanup' => [
    'enabled' => false,
],

🧱 Architecture Overview

Request / Job
   ↓
GenerateBannerRequest
   ↓
GeminiBannerService
   ↓
Gemini API
   ↓
Public Storage (output)
  • No controllers are published
  • No routes are forced
  • You stay in control of your application flow

📄 Requirements

  • PHP 8.1+
  • Laravel 9.x / 10.x / 11.x / 12.x
  • Google Gemini API access

📜 License

MIT License

🙌 Credits

Developed by Vedanshi Shethia Powered by Google Gemini AI

🤝 Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss improvements.

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-23