For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Getting Started
    • Welcome
    • Contributing
  • Concepts
    • Columns
    • Seed Datasets
    • Agent Rollout Ingestion
    • Custom Columns
    • Validators
    • Processors
    • Person Sampling
    • Traces
    • Architecture & Performance
    • Deployment Options
    • Security
  • Tutorials
    • Overview
    • The Basics
    • Structured Outputs, Jinja Expressions, and Conditional Generation
    • Seeding with an External Dataset
    • Providing Images as Context
    • Generating Images
    • Image-to-Image Editing
  • Recipes
    • Recipe Cards
  • Plugins
    • Overview
    • Example Plugin
    • FileSystemSeedReader Plugins
    • Discover
  • Code Reference
    • Overview
  • Dev Notes
    • Overview
    • Push Datasets to Hugging Face Hub
    • Text-to-SQL for Nemotron Super
    • Async All the Way Down
    • Owning the Model Stack
    • Data Designer Got Skills
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Manage My Privacy | Do Not Sell or Share My Data | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoNeMo Data Designer
Tutorials

Image-to-Image Editing

||View as Markdown|
Previous

Generating Images

Next

Use Case Recipes

▶Run in Google Colab

🎨 Data Designer Tutorial: Image-to-Image Editing

📚 What you'll learn

This notebook shows how to chain image generation columns: first generate animal portraits from text, then edit those generated images by adding accessories and changing styles—all without loading external datasets.

  • 🖼️ Text-to-image generation: Generate images from text prompts
  • 🔗 Chaining image columns: Use ImageContext to pass generated images to a follow-up editing column
  • 🎲 Sampler-driven diversity: Combine sampled accessories and settings for varied edits

This tutorial uses an autoregressive model (one that supports both text-to-image and image-to-image generation via the chat completions API). Diffusion models (DALL·E, Stable Diffusion, etc.) do not support image context—see Tutorial 5 for text-to-image generation with diffusion models.

Prerequisites: This tutorial uses OpenRouter with the Flux 2 Pro model. Set OPENROUTER_API_KEY in your environment before running.

If this is your first time using Data Designer, we recommend starting with the first notebook in this tutorial series.

📦 Import Data Designer

  • data_designer.config provides the configuration API.
  • DataDesigner is the main interface for generation.
Python
1import base64
2from pathlib import Path
3
4from IPython.display import Image as IPImage
5from IPython.display import display
6
7import data_designer.config as dd
8from data_designer.interface import DataDesigner
9

⚙️ Initialize the Data Designer interface

We initialize Data Designer without arguments here—the image model is configured explicitly in the next cell.

Python
1data_designer = DataDesigner()
2

🎛️ Define an image model

We need an autoregressive model that supports both text-to-image and image-to-image generation via the chat completions API. This lets us generate images from text and then pass those images as context for editing.

  • Use ImageInferenceParams so Data Designer treats this model as an image generator.
  • Image-specific options are model-dependent; pass them via extra_body.

Note: This tutorial uses the Flux 2 Pro model via OpenRouter. Set OPENROUTER_API_KEY in your environment.

Python
1MODEL_PROVIDER = "openrouter"
2MODEL_ID = "black-forest-labs/flux.2-pro"
3MODEL_ALIAS = "image-model"
4
5model_configs = [
6 dd.ModelConfig(
7 alias=MODEL_ALIAS,
8 model=MODEL_ID,
9 provider=MODEL_PROVIDER,
10 inference_parameters=dd.ImageInferenceParams(
11 extra_body={"height": 512, "width": 512},
12 ),
13 )
14]
15

🏗️ Build the configuration

We chain two image generation columns:

  1. Sampler columns — randomly sample animal types, accessories, settings, and art styles
  2. First image column — generate an animal portrait from a text prompt
  3. Second image column with context — edit the generated portrait using ImageContext
Python
1config_builder = dd.DataDesignerConfigBuilder(model_configs=model_configs)
2
3# 1. Sampler columns for diversity
4config_builder.add_column(
5 dd.SamplerColumnConfig(
6 name="animal",
7 sampler_type=dd.SamplerType.CATEGORY,
8 params=dd.CategorySamplerParams(
9 values=["cat", "dog", "fox", "owl", "rabbit", "panda"],
10 ),
11 )
12)
13
14config_builder.add_column(
15 dd.SamplerColumnConfig(
16 name="accessory",
17 sampler_type=dd.SamplerType.CATEGORY,
18 params=dd.CategorySamplerParams(
19 values=[
20 "a tiny top hat",
21 "oversized sunglasses",
22 "a red bow tie",
23 "a knitted beanie",
24 "a flower crown",
25 "a monocle and mustache",
26 "a pirate hat and eye patch",
27 "a chef hat",
28 ],
29 ),
30 )
31)
32
33config_builder.add_column(
34 dd.SamplerColumnConfig(
35 name="setting",
36 sampler_type=dd.SamplerType.CATEGORY,
37 params=dd.CategorySamplerParams(
38 values=[
39 "a cozy living room",
40 "a sunny park",
41 "a photo studio with soft lighting",
42 "a red carpet event",
43 "a holiday card backdrop with snowflakes",
44 "a tropical beach at sunset",
45 ],
46 ),
47 )
48)
49
50config_builder.add_column(
51 dd.SamplerColumnConfig(
52 name="art_style",
53 sampler_type=dd.SamplerType.CATEGORY,
54 params=dd.CategorySamplerParams(
55 values=[
56 "a photorealistic style",
57 "a Disney Pixar 3D render",
58 "a watercolor painting",
59 "a pop art poster",
60 ],
61 ),
62 )
63)
64
65# 2. Generate animal portrait from text
66config_builder.add_column(
67 dd.ImageColumnConfig(
68 name="animal_portrait",
69 prompt="A close-up portrait photograph of a {{ animal }} looking at the camera, studio lighting, high quality.",
70 model_alias=MODEL_ALIAS,
71 )
72)
73
74# 3. Edit the generated portrait
75config_builder.add_column(
76 dd.ImageColumnConfig(
77 name="edited_portrait",
78 prompt=(
79 "Edit this {{ animal }} portrait photo. "
80 "Add {{ accessory }} on the animal. "
81 "Place the {{ animal }} in {{ setting }}. "
82 "Render the result in {{ art_style }}. "
83 "Keep the animal's face, expression, and features faithful to the original photo."
84 ),
85 model_alias=MODEL_ALIAS,
86 multi_modal_context=[dd.ImageContext(column_name="animal_portrait")],
87 )
88)
89
90data_designer.validate(config_builder)
91
Output
[21:21:26] [INFO] ✅ Validation passed

🔁 Preview: quick iteration

In preview mode, generated images are stored as base64 strings in the dataframe. Use this to iterate on your prompts, accessories, and sampler values before scaling up.

Python
1preview = data_designer.preview(config_builder, num_records=2)
2
Output
[21:21:26] [INFO] 🧐 Preview generation in progress
[21:21:26] [INFO]   |-- 🔒 Jinja rendering engine: secure
[21:21:26] [INFO] ✅ Validation passed
[21:21:26] [INFO] ⛓️ Sorting column configs into a Directed Acyclic Graph
[21:21:26] [INFO] 🩺 Running health checks for models...
[21:21:26] [INFO]   |-- 👀 Checking 'black-forest-labs/flux.2-pro' in provider named 'openrouter' for model alias 'image-model'...
[21:21:35] [INFO]   |-- ✅ Passed!
[21:21:35] [INFO] ⚡ DATA_DESIGNER_ASYNC_ENGINE is enabled - using async task-queue preview
[21:21:35] [INFO] 🖼️ image model config for column 'animal_portrait'
[21:21:35] [INFO]   |-- model: 'black-forest-labs/flux.2-pro'
[21:21:35] [INFO]   |-- model alias: 'image-model'
[21:21:35] [INFO]   |-- model provider: 'openrouter'
[21:21:35] [INFO]   |-- inference parameters:
[21:21:35] [INFO]   |  |-- generation_type=image
[21:21:35] [INFO]   |  |-- max_parallel_requests=4
[21:21:35] [INFO]   |  |-- extra_body={'height': 512, 'width': 512}
[21:21:35] [INFO] 🖼️ image model config for column 'edited_portrait'
[21:21:35] [INFO]   |-- model: 'black-forest-labs/flux.2-pro'
[21:21:35] [INFO]   |-- model alias: 'image-model'
[21:21:35] [INFO]   |-- model provider: 'openrouter'
[21:21:35] [INFO]   |-- inference parameters:
[21:21:35] [INFO]   |  |-- generation_type=image
[21:21:35] [INFO]   |  |-- max_parallel_requests=4
[21:21:35] [INFO]   |  |-- extra_body={'height': 512, 'width': 512}
[21:21:35] [INFO] ⚡️ Async generation: 2 column(s) (animal_portrait, edited_portrait), 4 tasks across 1 row group(s)
[21:21:35] [INFO] 🚀 (1/1) Dispatching with 2 records
[21:21:35] [INFO] 🎲 (1/1) Preparing samplers to generate 2 records across 4 columns
[21:21:55] [INFO] 📊 Progress [19.4s]:
[21:21:55] [INFO]   |-- 🌗 animal_portrait: 1/2 (50%) 0.1 rec/s
[21:21:55] [INFO]   |-- 🥚 edited_portrait: 0/2 (0%) 0.0 rec/s
[21:22:22] [INFO] 📊 Progress [46.5s]:
[21:22:22] [INFO]   |-- 🌗 animal_portrait: 1/2 (50%) 0.0 rec/s
[21:22:22] [INFO]   |-- 🐥 edited_portrait: 1/2 (50%) 0.0 rec/s
[21:24:44] [INFO] 📊 Progress [188.1s]:
[21:24:44] [INFO]   |-- 🌕 animal_portrait: 2/2 (100%) 0.0 rec/s
[21:24:44] [INFO]   |-- 🐥 edited_portrait: 1/2 (50%) 0.0 rec/s
[21:24:57] [INFO] 📊 Progress [201.9s]:
[21:24:57] [INFO]   |-- 🌕 animal_portrait: 2/2 (100%) 0.0 rec/s
[21:24:57] [INFO]   |-- 🐔 edited_portrait: 2/2 (100%) 0.0 rec/s
[21:24:57] [INFO] ✅ Async generation complete [201.9s]: 4 ok, 0 failed across 2 column(s)
[21:24:57] [INFO] 📊 Model usage summary:
[21:24:57] [INFO]   |-- model: black-forest-labs/flux.2-pro
[21:24:57] [INFO]   |-- tokens: input=9198, output=12288, total=21486, tps=106
[21:24:57] [INFO]   |-- requests: success=4, failed=0, total=4, rpm=1
[21:24:57] [INFO]   |-- images: total=4
[21:24:57] [INFO] 📐 Measuring dataset column statistics:
[21:24:57] [INFO]   |-- 🎲 column: 'animal'
[21:24:57] [INFO]   |-- 🎲 column: 'accessory'
[21:24:57] [INFO]   |-- 🎲 column: 'setting'
[21:24:57] [INFO]   |-- 🎲 column: 'art_style'
[21:24:57] [INFO]   |-- 🖼️ column: 'animal_portrait'
[21:24:57] [INFO]   |-- 🖼️ column: 'edited_portrait'
[21:24:57] [INFO] 🏆 Preview complete!
Python
1for i in range(len(preview.dataset)):
2 preview.display_sample_record()
3
Output
[index: 0]
                                                                                                              
                                              Generated Columns                                               
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name                             ┃ Value                                                                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ animal                           │ fox                                                                     │
├──────────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ accessory                        │ a chef hat                                                              │
├──────────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ setting                          │ a sunny park                                                            │
├──────────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ art_style                        │ a photorealistic style                                                  │
└──────────────────────────────────┴─────────────────────────────────────────────────────────────────────────┘
                                                                                                              
                                                                                                              
                                                    Images                                                    
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name                                   ┃ Preview                                                           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ animal_portrait                        │ [0] <base64, 1907000 chars>                                       │
├────────────────────────────────────────┼───────────────────────────────────────────────────────────────────┤
│ edited_portrait                        │ [0] <base64, 1757024 chars>                                       │
└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────┘
                                                                                                              
🖼️ animal_portrait[0]
🖼️ edited_portrait[0]
[index: 1]
                                                                                                              
                                              Generated Columns                                               
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name                             ┃ Value                                                                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ animal                           │ owl                                                                     │
├──────────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ accessory                        │ a knitted beanie                                                        │
├──────────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ setting                          │ a sunny park                                                            │
├──────────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ art_style                        │ a photorealistic style                                                  │
└──────────────────────────────────┴─────────────────────────────────────────────────────────────────────────┘
                                                                                                              
                                                                                                              
                                                    Images                                                    
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Name                                   ┃ Preview                                                           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ animal_portrait                        │ [0] <base64, 1880376 chars>                                       │
├────────────────────────────────────────┼───────────────────────────────────────────────────────────────────┤
│ edited_portrait                        │ [0] <base64, 2095592 chars>                                       │
└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────┘
                                                                                                              
🖼️ animal_portrait[0]
🖼️ edited_portrait[0]
Python
1preview.dataset
2
Output
animal accessory setting art_style animal_portrait edited_portrait
0 fox a chef hat a sunny park a photorealistic style [iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAIAAAA12IJaA... [iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAIAAAA12IJaA...
1 owl a knitted beanie a sunny park a photorealistic style [iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAIAAAA12IJaA... [iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAIAAAA12IJaA...

🔎 Compare original vs edited

Let's display the generated animal portraits next to their edited versions.

Python
1def display_image(image_value, base_path: Path | None = None) -> None:
2 """Display an image from base64 (preview mode) or file path (create mode)."""
3 values = [image_value] if isinstance(image_value, str) else list(image_value)
4 for value in values:
5 if base_path is not None:
6 display(IPImage(filename=str(base_path / value)))
7 else:
8 display(IPImage(data=base64.b64decode(value)))
9
10
11def display_before_after(row, index: int, base_path: Path | None = None) -> None:
12 """Display original portrait vs edited version for a single record."""
13 print(f"\n{'=' * 60}")
14 print(f"Record {index}: {row['animal']} wearing {row['accessory']}")
15 print(f"Setting: {row['setting']}, Style: {row['art_style']}")
16 print(f"{'=' * 60}")
17
18 print("\n📷 Generated portrait:")
19 display_image(row["animal_portrait"], base_path)
20
21 print("\n🎨 Edited version:")
22 display_image(row["edited_portrait"], base_path)
23
Python
1for index, row in preview.dataset.iterrows():
2 display_before_after(row, index)
3
Output

============================================================
Record 0: fox wearing a chef hat
Setting: a sunny park, Style: a photorealistic style
============================================================

📷 Generated portrait:
Output

🎨 Edited version:
Output

============================================================
Record 1: owl wearing a knitted beanie
Setting: a sunny park, Style: a photorealistic style
============================================================

📷 Generated portrait:
Output

🎨 Edited version:
Output

🆙 Create at scale

In create mode, images are saved to disk in images/<column_name>/ folders with UUID filenames. The dataframe stores relative paths. ImageContext auto-detection handles this transparently—generated file paths are resolved to base64 before being sent to the model for editing.

Python
1results = data_designer.create(config_builder, num_records=5, dataset_name="tutorial-6-edited-images")
2
Output
[21:24:58] [INFO] 🎨 Creating Data Designer dataset
[21:24:58] [INFO]   |-- 🔒 Jinja rendering engine: secure
[21:24:58] [INFO] ✅ Validation passed
[21:24:58] [INFO] ⛓️ Sorting column configs into a Directed Acyclic Graph
[21:24:58] [INFO] 🩺 Running health checks for models...
[21:24:58] [INFO]   |-- 👀 Checking 'black-forest-labs/flux.2-pro' in provider named 'openrouter' for model alias 'image-model'...
[21:25:08] [INFO]   |-- ✅ Passed!
[21:25:08] [INFO] ⚡ DATA_DESIGNER_ASYNC_ENGINE is enabled - using async task-queue builder
[21:25:08] [INFO] 🖼️ image model config for column 'animal_portrait'
[21:25:08] [INFO]   |-- model: 'black-forest-labs/flux.2-pro'
[21:25:08] [INFO]   |-- model alias: 'image-model'
[21:25:08] [INFO]   |-- model provider: 'openrouter'
[21:25:08] [INFO]   |-- inference parameters:
[21:25:08] [INFO]   |  |-- generation_type=image
[21:25:08] [INFO]   |  |-- max_parallel_requests=4
[21:25:08] [INFO]   |  |-- extra_body={'height': 512, 'width': 512}
[21:25:08] [INFO] 🖼️ image model config for column 'edited_portrait'
[21:25:08] [INFO]   |-- model: 'black-forest-labs/flux.2-pro'
[21:25:08] [INFO]   |-- model alias: 'image-model'
[21:25:08] [INFO]   |-- model provider: 'openrouter'
[21:25:08] [INFO]   |-- inference parameters:
[21:25:08] [INFO]   |  |-- generation_type=image
[21:25:08] [INFO]   |  |-- max_parallel_requests=4
[21:25:08] [INFO]   |  |-- extra_body={'height': 512, 'width': 512}
[21:25:08] [INFO] ⚡️ Async generation: 2 column(s) (animal_portrait, edited_portrait), 10 tasks across 1 row group(s)
[21:25:08] [INFO] 🚀 (1/1) Dispatching with 5 records
[21:25:08] [INFO] 🎲 (1/1) Preparing samplers to generate 5 records across 4 columns
[21:25:17] [INFO] 📊 Progress [9.0s]:
[21:25:17] [INFO]   |-- 🌧️ animal_portrait: 1/5 (20%) 0.1 rec/s
[21:25:17] [INFO]   |-- 😴 edited_portrait: 0/5 (0%) 0.0 rec/s
[21:25:36] [INFO] 📊 Progress [27.5s]:
[21:25:36] [INFO]   |-- 🌤️ animal_portrait: 4/5 (80%) 0.1 rec/s
[21:25:36] [INFO]   |-- 😴 edited_portrait: 1/5 (20%) 0.0 rec/s
[21:25:42] [INFO] 📊 Progress [34.3s]:
[21:25:42] [INFO]   |-- 🌤️ animal_portrait: 4/5 (80%) 0.1 rec/s
[21:25:42] [INFO]   |-- 😐 edited_portrait: 3/5 (60%) 0.1 rec/s
[21:25:51] [INFO] 📊 Progress [43.4s]:
[21:25:51] [INFO]   |-- 🌤️ animal_portrait: 4/5 (80%) 0.1 rec/s
[21:25:51] [INFO]   |-- 😊 edited_portrait: 4/5 (80%) 0.1 rec/s
[21:28:07] [INFO] 📊 Progress [178.4s]:
[21:28:07] [INFO]   |-- ☀️ animal_portrait: 5/5 (100%) 0.0 rec/s
[21:28:07] [INFO]   |-- 😊 edited_portrait: 4/5 (80%) 0.0 rec/s
[21:28:28] [INFO] 📊 Progress [200.0s]:
[21:28:28] [INFO]   |-- ☀️ animal_portrait: 5/5 (100%) 0.0 rec/s
[21:28:28] [INFO]   |-- 🤩 edited_portrait: 5/5 (100%) 0.0 rec/s
[21:28:28] [INFO] ✅ Async generation complete [200.0s]: 10 ok, 0 failed across 2 column(s)
[21:28:28] [INFO] 📊 Model usage summary:
[21:28:28] [INFO]   |-- model: black-forest-labs/flux.2-pro
[21:28:28] [INFO]   |-- tokens: input=23009, output=30720, total=53729, tps=268
[21:28:28] [INFO]   |-- requests: success=10, failed=0, total=10, rpm=2
[21:28:28] [INFO]   |-- images: total=10
[21:28:28] [INFO] 📐 Measuring dataset column statistics:
[21:28:28] [INFO]   |-- 🎲 column: 'animal'
[21:28:28] [INFO]   |-- 🎲 column: 'accessory'
[21:28:28] [INFO]   |-- 🎲 column: 'setting'
[21:28:28] [INFO]   |-- 🎲 column: 'art_style'
[21:28:28] [INFO]   |-- 🖼️ column: 'animal_portrait'
[21:28:28] [INFO]   |-- 🖼️ column: 'edited_portrait'
Python
1dataset = results.load_dataset()
2dataset.head()
3
Output
animal accessory setting art_style animal_portrait edited_portrait
0 dog oversized sunglasses a sunny park a Disney Pixar 3D render ['images/animal_portrait/f6412a8a-02b5-4a13-a6... ['images/edited_portrait/20d7c77f-729d-4964-84...
1 dog a monocle and mustache a tropical beach at sunset a pop art poster ['images/animal_portrait/2a4cbc2e-e449-4e51-8e... ['images/edited_portrait/e1f15253-f7cc-4850-8a...
2 cat a red bow tie a sunny park a photorealistic style ['images/animal_portrait/cc4133f6-61b6-4575-9e... ['images/edited_portrait/848816a0-7d0b-4fcc-88...
3 dog a flower crown a photo studio with soft lighting a watercolor painting ['images/animal_portrait/024a2d9e-62a1-4876-86... ['images/edited_portrait/51f2d157-fa6c-4de2-98...
4 dog a monocle and mustache a sunny park a Disney Pixar 3D render ['images/animal_portrait/d42e49f5-0a64-445b-90... ['images/edited_portrait/dfe96c4e-fa6f-41c3-98...
Python
1for index, row in dataset.head(10).iterrows():
2 display_before_after(row, index, base_path=results.artifact_storage.base_dataset_path)
3
Output

============================================================
Record 0: dog wearing oversized sunglasses
Setting: a sunny park, Style: a Disney Pixar 3D render
============================================================

📷 Generated portrait:
Output

🎨 Edited version:
Output

============================================================
Record 1: dog wearing a monocle and mustache
Setting: a tropical beach at sunset, Style: a pop art poster
============================================================

📷 Generated portrait:
Output

🎨 Edited version:
Output

============================================================
Record 2: cat wearing a red bow tie
Setting: a sunny park, Style: a photorealistic style
============================================================

📷 Generated portrait:
Output

🎨 Edited version:
Output

============================================================
Record 3: dog wearing a flower crown
Setting: a photo studio with soft lighting, Style: a watercolor painting
============================================================

📷 Generated portrait:
Output

🎨 Edited version:
Output

============================================================
Record 4: dog wearing a monocle and mustache
Setting: a sunny park, Style: a Disney Pixar 3D render
============================================================

📷 Generated portrait:
Output

🎨 Edited version:
Output

⏭️ Next steps

  • Experiment with different autoregressive models for image generation and editing
  • Try more creative editing prompts (style transfer, background replacement, artistic filters)
  • Combine image generation with text generation (e.g., generate captions using an LLM-Text column with ImageContext)
  • Chain more than two image columns for multi-step editing pipelines

Related tutorials:

  • The basics: samplers and LLM text columns
  • Providing images as context: image-to-text with VLMs
  • Generating images: text-to-image generation with diffusion models