-
Crie imagens de alta qualidade usando o Image Playground
Possibilite a criação de imagens de alta qualidade no seu app usando o Image Playground. Com um novo modelo generativo em execução na Computação Privada na Nuvem, os usuários podem gerar imagens em praticamente qualquer estilo, inclusive fotorrealista, diretamente no seu app. Você também pode definir dimensões para uso em ainda mais lugares e permitir que os usuários modifiquem imagens usando descrições em linguagem natural e toque. Descubra como adotar o Image Playground, gerar imagens com base em descrições e fotos, e gerenciar a disponibilidade de recursos no seu app.
Capítulos
- 0:00 - Introduction
- 2:03 - Capabilities
- 5:02 - Adopt Image Playground
- 8:29 - Options
- 12:15 - Availability
Recursos
Vídeos relacionados
WWDC26
WWDC24
-
Buscar neste vídeo...
-
-
5:28 - Adopt Image Playground in SwiftUI
// Adopt Image Playground in SwiftUI func imagePlaygroundSheet( isPresented: Binding<Bool>, concepts: [ImagePlaygroundConcept] = [], sourceImage: Image? = nil, onCompletion: @escaping (URL) -> Void, onCancellation: (() -> Void)? = nil ) -> some View -
5:39 - Add Image Playground sheet with binding to @State
// Adopt Image Playground @State private var showingPlayground = false var body: some View { Button("Create image") { showingPlayground = true } .imagePlaygroundSheet( isPresented: $showingPlayground, onCompletion: { url in var updated = currentCard store.saveImage(url, for: &updated) } ) } -
6:29 - Seeding the sheet with context from your card
// Seeding the sheet with context from your card var concepts: [ImagePlaygroundConcept] { [ .text(card.theme), .extracted(from: card.message, title: card.theme), ] } var body: some View { Button("Create image") { showingPlayground = true } .imagePlaygroundSheet( isPresented: $showingPlayground, concepts: concepts, onCompletion: { url in var updated = card store.saveImage(url, for: &updated) } ) } -
7:11 - Starting from a reference photo
// Starting from a reference photo @State private var sourceImage: Image? var body: some View { Button("Create image") { showingPlayground = true } .imagePlaygroundSheet( isPresented: $showingPlayground, concepts: concepts, sourceImage: sourceImage, onCompletion: { url in var updated = card store.saveImage(url, for: &updated) } ) } -
7:42 - Providing a visual suggestion using a drawing
// Providing a visual suggestion using a drawing @State private var drawing = PKDrawing() var concepts: [ImagePlaygroundConcept] { var result: [ImagePlaygroundConcept] = [ .text(card.theme), .extracted(from: card.message) ] if !drawing.strokes.isEmpty { result.append(.drawing(drawing)) } return result } -
8:06 - Adopt Image Playground in UIKit or AppKit
// Adopt Image Playground in UIKit or AppKit func presentViewController() { let viewController = ImagePlaygroundViewController() viewController.concepts = [ .text(card.theme), .extracted(from: card.message) ] viewController.delegate = self present(viewController, animated: true) } func imagePlaygroundViewController( _ viewController: ImagePlaygroundViewController, didCreateImageAt url: URL ) { var updated = card store.saveImage(url, for: &updated) dismiss(animated: true) } -
9:02 - Size Specification
// Size Specification var options: ImagePlaygroundOptions { var options = ImagePlaygroundOptions() options.sizeSpecification = .closest(to: card.format.size) return options } var body: some View { Button("Create image") { showingPlayground = true } .imagePlaygroundSheet( isPresented: $showingPlayground, concepts: concepts, onCompletion: { url in var updated = card store.saveImage(url, for: &updated) } ) .imagePlaygroundOptions(options) } -
9:39 - Styles
// Styles var options: ImagePlaygroundOptions { var options = ImagePlaygroundOptions() options.sizeSpecification = .closest(to: card.format.size) return options } var body: some View { Button("Create image") { showingPlayground = true } .imagePlaygroundSheet( isPresented: $showingPlayground, concepts: concepts, onCompletion: { url in var updated = card store.saveImage(url, for: &updated) } ) .imagePlaygroundOptions(options) .imagePlaygroundGenerationStyle( pendingStylePreset.defaultStyle, in: pendingStylePreset.allowedStyles ) } -
10:27 - External Provider Style
// External Provider Style var options: ImagePlaygroundOptions { var options = ImagePlaygroundOptions() options.sizeSpecification = .closest(to: card.format.size) return options } var body: some View { Button("Create image") { showingPlayground = true } .imagePlaygroundSheet( isPresented: $showingPlayground, concepts: concepts, onCompletion: { url in var updated = card store.saveImage(url, for: &updated) } ) .imagePlaygroundOptions(options) .imagePlaygroundGenerationStyle( pendingStylePreset.defaultStyle, in: pendingStylePreset.allowedStyles + [.externalProvider] ) } -
11:02 - Generating an expressive icon for the card thumbnail
// Generating an expressive icon for the card thumbnail @State private var showingIconPlayground = false var body: some View { Button("Create icon") { showingIconPlayground = true } Color.clear .imagePlaygroundSheet( isPresented: $showingIconPlayground, concepts: concepts, onCompletion: { _ in } , onAdaptiveImageGlyphCreation: { glyph in var updatedCard = card store.saveIcon(glyph, for: &updatedCard) } ) .imagePlaygroundGenerationStyle(.emoji, in: [.emoji]) } -
12:01 - Disabling personalization when it doesn't fit your context
// Disabling personalization when it doesn't fit your context var options: ImagePlaygroundOptions { var options = ImagePlaygroundOptions() options.sizeSpecification = .closest(to: card.format.size) options.personalization = .disabled return options } -
12:32 - Supports image generation
// Supports image generation @Environment(\.supportsImageGeneration) private var supportsImageGeneration var body: some View { NavigationLink(card.recipient) { if supportsImageGeneration { CardEditorView(card: card) }γelse { CardPickerView(card: card) } } }
-
-
- 0:00 - Introduction
The ImagePlayground framework brings high-quality, true-to-life image creation into your app, on devices with Apple Intelligence support.
- 2:03 - Capabilities
Image Playground enables the creation of high-quality images with people, styles, and different aspect ratios.
- 5:02 - Adopt Image Playground
Present the Image Playground sheet and seed it with context from your app.
- 8:29 - Options
Configure the Image Playground sheet with options like size, style, and personalization.
- 12:15 - Availability
Ensure your app gracefully handles both supported and unsupported devices, presenting the full Image Playground experience when available.