Skip to content

Commit dbbfb38

Browse files
authored
[Vertex AI] Make ImagenImageRepresentable internal (#14341)
1 parent a3a026a commit dbbfb38

8 files changed

+33
-17
lines changed

FirebaseVertexAI/Sources/Types/Public/Imagen/ImagenImageRepresentable.swift renamed to FirebaseVertexAI/Sources/Types/Internal/Imagen/ImagenImageRepresentable.swift

+7-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@
1414

1515
import Foundation
1616

17+
// TODO(andrewheard): Make this public when the SDK supports Imagen operations that take images as
18+
// input (upscaling / editing).
1719
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
18-
public protocol ImagenImageRepresentable {
19-
var _imagenImage: _ImagenImage { get }
20+
protocol ImagenImageRepresentable {
21+
/// Internal representation of the image for use with the Imagen model.
22+
///
23+
/// - Important: Not needed by SDK users.
24+
var _internalImagenImage: _InternalImagenImage { get }
2025
}

FirebaseVertexAI/Sources/Types/Public/Imagen/ImagenImage.swift renamed to FirebaseVertexAI/Sources/Types/Internal/Imagen/InternalImagenImage.swift

+8-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,15 @@
1414

1515
import Foundation
1616

17+
/// Internal representation of an image for the Imagen model.
18+
///
19+
/// - Important: For internal use by types conforming to ``ImagenImageRepresentable``; all
20+
/// properties are `internal` and are not needed by SDK users.
21+
///
22+
/// TODO(andrewheard): Make this public when the SDK supports Imagen operations that take images as
23+
/// input (upscaling / editing).
1724
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
18-
public struct _ImagenImage {
25+
struct _InternalImagenImage {
1926
let mimeType: String
2027
let bytesBase64Encoded: String?
2128
let gcsURI: String?

FirebaseVertexAI/Sources/Types/Public/Imagen/ImagenFileDataImage.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ public struct ImagenFileDataImage {
2727

2828
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
2929
extension ImagenFileDataImage: ImagenImageRepresentable {
30-
public var _imagenImage: _ImagenImage {
31-
_ImagenImage(mimeType: mimeType, bytesBase64Encoded: nil, gcsURI: gcsURI)
30+
// TODO(andrewheard): Make this public when the SDK supports Imagen operations that take images as
31+
// input (upscaling / editing).
32+
var _internalImagenImage: _InternalImagenImage {
33+
_InternalImagenImage(mimeType: mimeType, bytesBase64Encoded: nil, gcsURI: gcsURI)
3234
}
3335
}
3436

FirebaseVertexAI/Sources/Types/Public/Imagen/ImagenGenerationResponse.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import Foundation
1616

1717
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
18-
public struct ImagenGenerationResponse<T: ImagenImageRepresentable> {
18+
public struct ImagenGenerationResponse<T> {
1919
public let images: [T]
2020
public let filteredReason: String?
2121
}

FirebaseVertexAI/Sources/Types/Public/Imagen/ImagenInlineDataImage.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@ public struct ImagenInlineDataImage {
3131

3232
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
3333
extension ImagenInlineDataImage: ImagenImageRepresentable {
34-
public var _imagenImage: _ImagenImage {
35-
_ImagenImage(
34+
// TODO(andrewheard): Make this public when the SDK supports Imagen operations that take images as
35+
// input (upscaling / editing).
36+
var _internalImagenImage: _InternalImagenImage {
37+
_InternalImagenImage(
3638
mimeType: mimeType,
3739
bytesBase64Encoded: data.base64EncodedString(),
3840
gcsURI: nil

FirebaseVertexAI/Sources/Types/Public/Imagen/ImagenModel.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ public final class ImagenModel {
8181
)
8282
}
8383

84-
func generateImages<T: Decodable>(prompt: String,
85-
parameters: ImageGenerationParameters) async throws
86-
-> ImagenGenerationResponse<T> {
84+
func generateImages<T>(prompt: String,
85+
parameters: ImageGenerationParameters) async throws
86+
-> ImagenGenerationResponse<T> where T: Decodable, T: ImagenImageRepresentable {
8787
let request = ImagenGenerationRequest<T>(
8888
model: modelResourceName,
8989
options: requestOptions,

FirebaseVertexAI/Tests/Unit/Types/Imagen/ImagenFileDataImageTests.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ final class ImagenFileDataImageTests: XCTestCase {
3535

3636
XCTAssertEqual(image.mimeType, mimeType)
3737
XCTAssertEqual(image.gcsURI, gcsURI)
38-
XCTAssertEqual(image._imagenImage.mimeType, mimeType)
39-
XCTAssertEqual(image._imagenImage.gcsURI, gcsURI)
40-
XCTAssertNil(image._imagenImage.bytesBase64Encoded)
38+
XCTAssertEqual(image._internalImagenImage.mimeType, mimeType)
39+
XCTAssertEqual(image._internalImagenImage.gcsURI, gcsURI)
40+
XCTAssertNil(image._internalImagenImage.bytesBase64Encoded)
4141
}
4242

4343
func testDecodeImage_missingGCSURI_throws() throws {

FirebaseVertexAI/Tests/Unit/Types/Imagen/ImagenInlineDataImageTests.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ final class ImagenInlineDataImageTests: XCTestCase {
3535

3636
XCTAssertEqual(image.mimeType, mimeType)
3737
XCTAssertEqual(image.data.base64EncodedString(), bytesBase64Encoded)
38-
XCTAssertEqual(image._imagenImage.mimeType, mimeType)
39-
XCTAssertEqual(image._imagenImage.bytesBase64Encoded, bytesBase64Encoded)
40-
XCTAssertNil(image._imagenImage.gcsURI)
38+
XCTAssertEqual(image._internalImagenImage.mimeType, mimeType)
39+
XCTAssertEqual(image._internalImagenImage.bytesBase64Encoded, bytesBase64Encoded)
40+
XCTAssertNil(image._internalImagenImage.gcsURI)
4141
}
4242

4343
func testDecodeImage_missingBytesBase64Encoded_throws() throws {

0 commit comments

Comments
 (0)