CoolFace
Datasetpublic

quandao10/npedit-contrastive-edit-1.5M

NP-Edit Contrastive Instruction-Editing Dataset (1.5M) Unpaired instruction-based image-editing data with contrastive source/target captions, assembled for training few-step distilled image editors (DMD/VSD on SD3.5). Each example is a source image + an edit instruction + a minimal-contrast (source caption, target caption) pair + a grounding noun for the edited region. Edited/target images are intentionally not required (unpaired training). Sources Merged from two… See the full description on the dataset page: https://huggingface.co/datasets/quandao10/npedit-contrastive-edit-1.5M.

sourceHugging Facecc-by-4.0updated 14d agoView on Hugging Face
0likes71downloads
Dataset Card

NP-Edit Contrastive Instruction-Editing Dataset (1.5M)

Unpaired instruction-based image-editing data with contrastive source/target captions, assembled for training few-step distilled image editors (DMD/VSD on SD3.5). Each example is a source image + an edit instruction + a minimal-contrast (source caption, target caption) pair + a grounding noun for the edited region. Edited/target images are intentionally not required (unpaired training).

Sources

Merged from two public unpaired-editing collections (image trees mirror their layout under input/):

  1. 1.GPT-Image-Edit-1.5M (UCSC-VLAA/GPT-Image-Edit-1.5M) — subsets hqedit, omniedit, ultraedit. Images under gptimage15m/.... Only the `input/` (source) images are included here; the output/ (edited) images are not re-hosted — get them from the original repo if needed.
  2. 2.pico-banana-400k — source images derived from Open Images, under pico-banana-400k/openimage_source_images/train_{0,1}/.

Files

  • good_edit_data.jsonfiltered manifest, 1,508,789 entries (the training set). One JSON list; each row:
  • id — unique id
  • dataset_sourcegpt_image | pico_banana
  • input_image_path — path to the source image, relative to this repo root
  • edit_instruction — the edit to apply
  • edited_captiontarget caption (describes the image after the edit)
  • input_descriptionsource caption (describes the image before the edit); contrastively generated for the ~89% that lacked it (see below), else the dataset-native description
  • grounding_noun — the changed phrase/object, for open-vocabulary grounding (e.g. GroundingDINO)
  • edit_type, width, height, ...
  • merged_edit_data.json — the full 1,624,280-entry pre-filter manifest (provenance).
  • source_caps/source_caps.*.jsonl — raw generated source captions (id, source_caption, grounding_noun), before filtering/merge.
  • images_*.tar — the source images, packed into ~5GB path-preserving tar shards (344 shards). Each member path is relative to the dataset root, so extracting every shard into one directory reconstructs exactly the layout input_image_path expects:
bash
  # download the repo, then from the dataset root:
  for t in images_*.tar; do tar -xf "$t"; done
  # now good_edit_data.json's input_image_path entries resolve directly

How the contrastive source captions were made

input_description was missing for ~89% of entries. We generated it with Qwen3-VL-32B (vLLM), conditioning on (source image, edit_instruction, edited_caption) and instructing the model to start from the target caption and change only the edited phrase to match the original image (add→remove, remove→add-back, change→revert), keeping every other word identical. This yields minimal-contrast source/target pairs (clean signal for contrastive / DDS-style editing losses). The changed_phrase is kept as grounding_noun.

Filtering

good_edit_data.json keeps entries with a valid instruction, target caption, source caption, and a readable source image, and drops non-contrastive pairs (source == target). Kept 1,508,789 / 1,624,280 (92.6%).

Notes

  • Images are the source images only (unpaired editing). To reconstruct paired data, fetch the corresponding output/ images from UCSC-VLAA/GPT-Image-Edit-1.5M.
  • Licenses of the underlying images follow their original sources (GPT-Image-Edit-1.5M / Open Images).