- imagegen.Segmenter/SegmentationProvider: prompted mask via POST /upstream/<id>/v1/segment (file, prompt[, threshold], output=mask); white = prompted region, EditRequest.Mask polarity. - imagegen.Colorizer/ColorizeProvider: POST /upstream/<id>/v1/colorize. - imagegen.FaceRestorer/FaceRestoreProvider: POST /upstream/<id>/v1/restore_faces (upscale 1|2). - New ocr leaf package (Request/Page/Result, Recognize) + llamaswap OCRModel: POST /upstream/<id>/v1/ocr (file[, langs, max_pages]), tolerant per-page decode (join lines when page text absent), Raw escape hatch. - httptest contract tests per surface; ADR-0023; ADR index backfilled (0020-0022 rows were missing). Co-Authored-By: Claude Fable 5 <[email protected]>
55 lines
1.7 KiB
Go
55 lines
1.7 KiB
Go
package imagegen
|
|
|
|
import "context"
|
|
|
|
// ColorizeRequest asks a colorization backend (DDColor style) to add color to
|
|
// a grayscale/faded photo (ADR-0023).
|
|
type ColorizeRequest struct {
|
|
// Image is the image to colorize. Required.
|
|
Image Image
|
|
}
|
|
|
|
// ColorizeOption mutates a ColorizeRequest before it is sent. Reserved for
|
|
// future request settings (the reference backend takes no parameters).
|
|
type ColorizeOption func(*ColorizeRequest)
|
|
|
|
// Apply returns a copy of the request with all options applied.
|
|
func (r ColorizeRequest) Apply(opts ...ColorizeOption) ColorizeRequest {
|
|
for _, opt := range opts {
|
|
opt(&r)
|
|
}
|
|
return r
|
|
}
|
|
|
|
// Colorizer adds color to grayscale images.
|
|
type Colorizer interface {
|
|
// Colorize returns the colorized image as a one-image Result.
|
|
Colorize(ctx context.Context, req ColorizeRequest, opts ...ColorizeOption) (*Result, error)
|
|
}
|
|
|
|
// ColorizeModelOption configures a Colorizer at construction time. Reserved
|
|
// for future per-model settings.
|
|
type ColorizeModelOption func(*ColorizeModelConfig)
|
|
|
|
// ColorizeModelConfig carries per-model construction settings.
|
|
type ColorizeModelConfig struct{}
|
|
|
|
// ApplyColorizeModelOptions folds options into a config.
|
|
func ApplyColorizeModelOptions(opts []ColorizeModelOption) ColorizeModelConfig {
|
|
var cfg ColorizeModelConfig
|
|
for _, opt := range opts {
|
|
opt(&cfg)
|
|
}
|
|
return cfg
|
|
}
|
|
|
|
// ColorizeProvider mints Colorizers bound to one backend.
|
|
type ColorizeProvider interface {
|
|
// Name is the registry identifier for the provider.
|
|
Name() string
|
|
|
|
// ColorizeModel returns a Colorizer bound to the given id (passed through
|
|
// to the backend verbatim; no catalog validation).
|
|
ColorizeModel(id string, opts ...ColorizeModelOption) (Colorizer, error)
|
|
}
|