Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

I Read Every Adobe Rejection Reason. Most of Them Are One Rule

Description and use

Automating metadata, CSV generation, and upload tracking reduced platform rejections to image quality issues only.

Problem

Frequent rejections from Adobe and other platforms due to metadata and upload errors, despite high-quality images.

Outcome

Rejections dropped from almost all assets to only image quality issues; 39 finished products produced from a 60‑asset batch, 856 MB of output, and a 19,000‑line pipeline with 300+ pages of research notes.

Workflow

  • 1. Read all rejection emails and categorize reasons into a spreadsheet.
  • 2. Identify that most rejections stem from metadata errors (title, keywords, filename).
  • 3. Create a titles.json file with human‑written titles and keywords per asset.
  • 4. Write make_metadata.py to generate platform‑specific CSV headers and metadata rows.
  • 5. Use make_metadata.py with --platform flag to produce adobe.csv, vecteezy.csv, dreamstime.csv.
  • 6. Implement upload_tracker.py to log pending, done, and status of uploads, preventing duplicate submissions.
  • 7. Add memory‑management steps to the generation pipeline: single‑process execution, gc.collect(), peak RSS monitoring, subprocess rendering, and low‑dpi preview checks.
  • 8. Package the scripts into a starter kit with dependencies Pillow and reportlab.
  • 9. Submit batches using the generated CSVs and tracker to ensure compliance and avoid rejections.

Evidence

most of them trace back to one rule about metadata, not about the art.

Source

I stopped letting the pipeline invent titles. Now there is a titles.json file, one real title and one real keyword set per asset, written by a human who looked at the image.

Source

I wrote one script, make_metadata.py, that takes a folder of files and emits the exact header each platform demands, nothing else.

Source

The fix is a dumb ledger. upload_tracker.py is a plain file that remembers what you have already posted.

Source

One process at a time. Never fan out image jobs in parallel on a single core.

Source

A batch that used to die at asset 30 now runs to the end.

Source

  • Record date: 2026-10-12T13:41:59.605Z