⚙️ ImageVariationConfig.json
{
  "input_file": "workspaces/base_scene.png",
  "num_subimages": 7,
  "num_variations": 11,
  "num_changes_per_variation": 5,
  "retarget_subimages": true,
  "extension": "png"
}
🖼️ Generated Variants
✔ Generated 11 variations + Interactive HTML Game

Workspace Browser

Explore the generated patches, manifests, and the interactive game in the task workspace.

Execution Configuration

Field Type Description
input_file* String The input image file path relative to workspace root.
num_subimages Int Number of distinct regions to identify and modify (Default: 7).
num_subimage_alternates Int Number of alternate versions to generate per region (Default: 2).
num_changes_per_variation Int Number of changes to apply to each final variation (Default: 5).
num_variations Int Total number of alternative images to produce (Default: 11).
retarget_subimages Boolean Uses image patch localization to align generated variations with the original image.
output_prefix String Prefix for generated filenames (Default: "variation").
extension String Output image format (png/jpg). Default: "png".

Task Lifecycle

  1. Structural Analysis: Uses a vision model to identify distinct objects or regions (coordinates 0-1000) suitable for modification.
  2. Change Proposal: For each region, the agent suggests visual changes (e.g., "Change color", "Remove object") that retain the original style.
  3. Patch Generation: Individual image patches are rendered using an image-to-image model based on the proposals.
  4. Composition: Patches are recombined with the base image using feathering and optional retargeting to create the final variations.
  5. Game Generation: Produces an interactive diff_game.html and JSON manifests for each variation.

Prompt Segment

ImageVariation - Creates 'Find the Differences' style image sets.
* Use for: Game asset generation, data augmentation.
* Mechanism: Decomposes image, generates N specific sub-image changes, and recombines them into M variations.

Embedded Execution (UnifiedHarness)

Invoke this task programmatically using the UnifiedHarness for automated asset pipelines.

import com.simiacryptus.cognotik.plan.tools.file.ImageVariationTask.Companion.ImageVariation
import com.simiacryptus.cognotik.plan.tools.file.ImageVariationTask.ImageVariationConfig
import com.simiacryptus.cognotik.plan.tools.TaskTypeConfig

fun generateAssets(harness: UnifiedHarness, projectDir: File) {
    val config = ImageVariationConfig(
        input_file = "assets/background.png",
        num_variations = 10,
        num_subimages = 5,
        retarget_subimages = true
    )

    harness.runTask(
        taskType = ImageVariation,
        typeConfig = TaskTypeConfig(), // Static tool settings
        executionConfig = config,      // Runtime parameters
        workspace = projectDir
    )
}