Du kennst das: Drei Mal denselben Prompt, drei verschiedene Bilder. Mal sitzt die Pose nicht, mal kippt die Lichtstimmung, mal tauchen plötzlich Gegenstände auf, die nie gewünscht waren. Freitext-Prompts sind mächtig, aber sie sind auch mehrdeutig. Jedes KI-Modell interpretiert sie ein wenig anders. Konsistenz über mehrere Durchläufe oder sogar über verschiedene Modelle (ChatGPT, Qwen, Gemini, usw.) wird so zum Glücksspiel. Feine Änderungen wie „etwas wärmeres Licht“ oder „gleicher Bildaufbau, nur andere Jacke“ führen oft zu komplett anderen Ergebnissen.
Die Lösung: Advanced JSON Context Profiles (AJCP).
Statt lange Texte zu „erraten“, beschreibst du dein Bild als strukturierte, maschinenlesbare Blaupause. Ein AJCP ist ein JSON-Dokument, das festlegt, was im Bild vorkommt (Subjekte, Anzahl, Position), wie es aussieht (Stil, Farben, Kleidung, Materialien), wo es stattfindet (Szene, Hintergrund), wie es aufgenommen scheint (Komposition, Perspektive, Tiefenschärfe, Licht) und in welchem Format es ausgegeben wird (Aspect Ratio, Zielauflösung).
Das hat drei unmittelbare Vorteile:
scene.lighting.direction
), ohne den Rest zu zerlegen.In diesem Beitrag lernst du Schritt für Schritt:
Wichtig: AJCP ist kein offizieller Standard. Kleine Abweichungen zwischen Modellen bleiben möglich – aber statt reiner Hoffnung arbeitest du mit einer klaren Spezifikation. Das reduziert Zufall, spart Zeit und macht die Bildgenerierung planbar. Am Ende dieses Kapitels hast du eine Arbeitsweise, mit der du deine Bilder konsistent reproduzierst und gezielt veränderst – ohne dass ein einzelnes Wort im Freitext plötzlich den ganzen Look sprengt.
Inhaltsverzeichnis
AJCP (Advanced JSON Context Profile) ist eine strukturierte, modellneutrale Beschreibung eines Bildes. Statt einen langen Freitext-Prompt zu schreiben, legst du alle relevanten Entscheidungen explizit in Feldern fest: Inhalt, Bildaufbau, Stil, Licht, Farben, Ausgabeformat. Das macht Ergebnisse reproduzierbar, vergleichbar und gezielt veränderbar.
Hier ist ein Bild als Vorlage für die Erstellung der JSON Daten, das Bild ist ein echtes Foto, kein KI-Bild.
{
"image_meta": {
"filename": "urlaub_street_scooter.jpg",
"format": "JPEG",
"dimensions": { "width": 2048, "height": 1285 },
"aspect_ratio": { "value": 1.5938, "approx": "8:5" },
"orientation": "landscape"
},
"scene": {
"type": "outdoor",
"setting": "mediterranean_urban_street",
"time_of_day": "golden_hour_late_afternoon",
"weather": "clear_sky",
"lighting": {
"source": "sunlight",
"direction": "front_left",
"quality": "warm_soft_highlights",
"color_temperature_kelvin": 4300
}
},
"subjects": [
{
"id": "person_01",
"type": "human",
"pose": "standing_relaxed",
"expression": "smiling",
"gaze": "slightly_upward",
"hands": "holding_smartphone",
"wardrobe": {
"top": "beige_polka_dot_blouse_long_sleeves",
"bottom": "light_beige_shorts",
"belt": "brown_leather",
"bag": "small_crossbody_beige",
"accessories": ["straw_sun_hat", "round_sunglasses"]
},
"position": "left_third",
"framing": "medium_three_quarter"
}
],
"props": [
{
"id": "vehicle_01",
"type": "scooter",
"style": "vespa_like",
"color": "white",
"position": "right_foreground",
"crop": "partial_front"
}
],
"composition": {
"framing": "rule_of_thirds",
"camera_angle": "slight_low_angle",
"depth_of_field": "moderate_background_blur",
"focal_point": "person_01_face",
"leading_lines": ["power_lines", "street_direction"]
},
"style": {
"render": "photorealistic",
"mood": "warm_relaxed_holiday",
"contrast": "medium",
"color_palette": ["#5E4438", "#DEEBE3", "#C7CCBD", "#B5907A", "#878174", "#F3F1EB"]
},
"background": {
"elements": [
"white_low_rise_buildings_with_arches",
"red_awning_cafe",
"potted_greenery",
"utility_poles_and_wires",
"distant_hills"
],
"activity": "casual_street_with_pedestrians_blurred"
},
"output": {
"size_px": { "width": 2048, "height": 1285 },
"aspect": "8:5"
},
"dominant_colors": [
{ "hex": "#5E4438", "percentage": 21.8 },
{ "hex": "#DEEBE3", "percentage": 19.6 },
{ "hex": "#C7CCBD", "percentage": 16.2 },
{ "hex": "#B5907A", "percentage": 15.8 },
{ "hex": "#878174", "percentage": 14.0 },
{ "hex": "#F3F1EB", "percentage": 12.7 }
],
"constraints": {
"do_not_add_elements": true,
"respect_subject_position": true,
"keep_background_category": "mediterranean_urban_street"
}
}
Ich habe diese JSON Daten so wie sie sind, ohne Veränderungen genommen und diversen KI-Bildgeneratoren gegeben, diese Ergebnisse kamen dabei heraus.
Wie man sieht sind die Ergebnisse von drei komplett unterschiedlichen KI-Bildgeneratoren (ChatGPT, Gemini, Qwen) sehr ähnlich.
ChatGPT hat für das Bild am längsten gebraucht, Gemini und Qwen waren dabei sehr ähnlich und um einiges schneller.
Hier ein weiteres echtes Foto als Ausgangsmaterial.
left_third
, eye_level
, soft
sind stabiler als „ein bisschen links, weiches Licht“.do_not_add_elements: true
und nur wenige, wirklich wichtige Elemente in background.elements
.textures
, effects
, camera
ergänzen.So setzt du den Prozess stabil und wiederholbar auf – vom Referenzfoto über das JSON-Profil bis zur Generierung in einer Bild-KI wie ChatGPT, Qwen und Gemini.
Nutze ein einheitliches Schema (wie im Kapitel zuvor). Wichtig: nur gültiges JSON zurückgeben lassen.
Analyse-Prompt (kopieren):
Erstelle ein Advanced JSON Context Profile (AJCP) für dieses Bild.
3:2
und konkrete Größe (z. B. 1536×1024).left_third
, center
, eye_level
).do_not_add_elements: true
, optional respect_subject_position: true
.Gib dasselbe AJCP in den gewünschten KI-Bildgenerator, entweder den JSON Text einfach einfügen oder erstelle eine .json
Datei und ziehe diese in das KI-Chatfenster.
Nutze eine strikte Anweisung.
Generate an image strictly from this AJCP.
Do not add or remove elements beyond the JSON.
If a field is missing, keep reasonable defaults.
AJCP:
```json
{ ...dein AJCP... }
Beispiele für präzise Änderungen:
scene.lighting.direction: "front_left" → "soft_side_light"
scene.time_of_day: "golden_hour" → "blue_hour"
composition.camera_angle: "eye_level" → "slight_low_angle"
composition.framing: "rule_of_thirds" → "center"
style.color_palette: ["#F7D6A0","#C9D7E3","#5A6B7A"] → ["#E8EEF6","#C0D1E3","#324A5F"]
subjects[0].wardrobe.top: "polka_dot_blouse" → "plain_white_blouse"
Problem | Ursache | Fix im JSON |
---|---|---|
Unerwünschte Extras tauchen auf | Modell ergänzt Hintergrund | constraints.do_not_add_elements = true ; background.elements kürzen |
Farben driften | Zu viele/unsaubere Angaben | Farbpalette auf 3–5 HEX begrenzen |
Perspektive „kippt“ | Kamera unklar | composition.camera_angle , framing , depth_of_field präzisieren |
AR wird ignoriert | Größe nicht gesetzt | output.size mit exakten Pixeln angeben |
Zu „glatt“/künstlich | Overclean Rendering | effects: ["subtle_film_grain"] , leicht geringere Sättigung |
Hier ist wieder ein echtes Foto als Ausgangsmaterial für die JSON Erstellung.
Für die Erstellung des KI-Bildes habe ich einige Dinge verändert wie das Geschlecht von männlich auf weiblich geändert und die Farben des Outfits und der Schuhe, ansonsten habe ich alles andere unverändert lassen, so sieht man wie schnell man diverse Details sehr gezielt verändern kann ohne die restlichen Aspekte des Bildes zu beeinflussen.
Warum ist die richtige Farbpalette so wichtig? Farben beeinflussen den Eindruck und die Stimmung eines…
Kurze Einführung über das Phänomen der Polarlichter Polarlichter, auch bekannt als Aurora Borealis im Norden…
Einführung Die Welt der KI-gestützten Kunst eröffnet dir unendliche kreative Möglichkeiten, und ein Tool, das…
Z-Downloads ist ein Download-Manager-Plugin, das ich komplett eigenständig für meine Bedürfnisse entwickelt habe. Anfangs beabsichtigte…
In diesem Blogbeitrag begleite ich dich durch meinen Prozess der Infinite Zoom Erweiterung für AUTOMATIC1111.…
Adobe Firefly ist ein Bündel an KI Funktionen die viele Möglichkeiten bei der Bildgenerierung bietet.…