Files
image2api/backend
chiyiandDevin b17cc3e9c8 fix(upstream): vivid 上传会话宽容解析 + 错误回显原始响应
vivid 协议各实现的 /v1/uploads 响应形状不一(顶层 / data 包裹、
url|upload_url|presigned_url、key|file_key|object_key)。之前只认顶层
url+key,遇到包装或别名就报 "upload session missing url/key" 且看不
到上游实际返回。现在逐层(含嵌套 data/result/upload/session)搜寻两
个字段,仍缺失时把原始 JSON 截断进错误信息便于定位。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 18:15:47 +08:00
..

Vivid AI Backend

Go backend for vivid-ai, using:

  • Gin
  • GORM
  • PostgreSQL
  • Redis

Current scope

This is an in-progress rewrite. The current skeleton already includes:

  • app bootstrap
  • PostgreSQL and Redis initialization
  • GORM auto-migrations
  • session storage in Redis
  • image access control for /images/:user/:name
  • public site endpoint: /admin/api/site
  • public showcase endpoint: /admin/api/showcase
  • session-based auth endpoint: /admin/api/auth/me

Environment

Set these before running:

$env:POSTGRES_DSN="host=127.0.0.1 user=postgres password=postgres dbname=vivid_ai port=5432 sslmode=disable TimeZone=Asia/Shanghai"
$env:REDIS_ADDR="127.0.0.1:6379"
$env:HTTP_ADDR=":6061"

Optional:

$env:APP_ENV="development"
$env:APP_TITLE="Vivid AI"
$env:SESSION_COOKIE_NAME="vivid_session"
$env:CORS_ORIGINS="http://localhost:5173,http://127.0.0.1:5173"

Run

go run ./cmd/api

Notes

  • Generated media defaults to ../../ai-gateway/data/generated relative to the backend working directory.
  • Private images require either:
    • session cookie
    • bearer session token
    • bearer API key
  • Showcase images are public.