first commit

This commit is contained in:
2025-07-18 16:20:14 +07:00
commit 98af45c018
16382 changed files with 3148096 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
.canvas-container #canvas {
background-image:linear-gradient(45deg, #ccc 25%, transparent 25%),linear-gradient(135deg, #ccc 25%, transparent 25%),linear-gradient(45deg, transparent 75%, #ccc 75%),linear-gradient(135deg, transparent 75%, #ccc 75%);
background-size:25px 25px;
/* Must be a square */
background-position:0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px;
/* Must be half of one side of the square */
float:left;
border: 1px solid black;
cursor: crosshair;
}
.toolbox.openai-image-edit {
border: none;
}
#tools{
float:left;
margin:20px;
}
#tools input, #tools select, #tools textarea, #downloadBtn
{
width:250px;
}
#clearBtn, #submitBtn
{
width:123px;
}

View File

@@ -0,0 +1,25 @@
<?php
function HookOpenai_image_editViewAfterresourceactions () {
global $ref,$access,$lang,$resource,$cropper_allowed_extensions,$baseurl_short,$search,$offset,
$order_by,$sort,$k,$imagemagick_path;
if (
$access==0
&& (int) $resource['has_image'] !== RESOURCE_PREVIEWS_NONE
) {
$urlparams = array(
"ref" => $ref
);
$url = generateURL($baseurl_short . 'plugins/openai_image_edit/pages/edit.php',$urlparams);
?>
<li><a href='<?php echo $url;?>'>
<?php echo "<i class='fa fa-fw fa-magic'></i>&nbsp;" . escape($lang['openai_image_edit__edit_with_ai']); ?>
</a></li>
<?php
return true;
}
}
?>

View File

@@ -0,0 +1,245 @@
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
const overlayCanvas = document.getElementById('overlayCanvas');
const overlayCtx = overlayCanvas.getContext('2d');
const image = document.getElementById('image');
let drawing = false;
let penSize = document.getElementById('penSize').value;
let lastX = 0;
let lastY = 0;
image.onload = drawImageOnCanvas;
function drawImageOnCanvas() {
canvas.width = image.width
canvas.height = image.height;
overlayCanvas.width = image.width
overlayCanvas.height = image.height;
ctx.drawImage(image, 0, 0, image.width, image.height);
document.getElementById('canvas-container').style.visibility='visible';
document.getElementById('toolbox').style.visibility='visible';
CentralSpaceHideProcessing();
HideThumbs(); // More visual space
};
// Adjust pen size
document.getElementById('penSize').addEventListener('input', function () {
penSize = this.value;
});
// Start drawing
canvas.addEventListener('mousedown', (e) => {
drawing = true;
[lastX, lastY] = getMousePos(e);
draw(e);
});
canvas.addEventListener('mouseup', () => drawing = false);
canvas.addEventListener('mousemove', draw);
function draw(e) {
if (document.getElementById('penSize').disabled) {return false;}
const [x, y] = getMousePos(e);
const mode = document.getElementById('editMode').value;
e.preventDefault();
// Clear the previous brush preview
overlayCtx.clearRect(0, 0, overlayCanvas.width, overlayCanvas.height);
if (!drawing)
{
// Not drawing, draw a pen preview only.
// Draw a circle at the current mouse position
// Set dashed pattern for visibility on any background
overlayCtx.setLineDash([5, 5]); // Alternating dash pattern
overlayCtx.lineWidth = 2;
// Draw a white circle outline
overlayCtx.strokeStyle = 'white';
overlayCtx.beginPath();
overlayCtx.arc(x, y, penSize / 2, 0, Math.PI * 2);
overlayCtx.stroke();
// Draw a black circle outline over the white to create contrast
overlayCtx.strokeStyle = 'black';
overlayCtx.lineWidth = 1;
overlayCtx.beginPath();
overlayCtx.arc(x, y, penSize / 2, 0, Math.PI * 2);
overlayCtx.stroke();
return;
}
ctx.lineWidth = penSize;
ctx.globalCompositeOperation = 'destination-out';
ctx.strokeStyle = "black";
ctx.lineCap = 'round';
ctx.lineJoin = 'round';
if (mode=="clone" || mode=="white" || mode=="black")
{
// Add shadow for blur effect
ctx.lineWidth = penSize/3;
ctx.shadowColor = 'black'; // Set shadow color to match stroke
ctx.shadowBlur = penSize/2; // Increase this value for stronger blur
}
ctx.beginPath();
ctx.moveTo(lastX, lastY);
ctx.lineTo(x, y);
ctx.stroke();
[lastX, lastY] = [x, y];
}
// Get mouse position relative to the canvas
function getMousePos(e) {
const rect = canvas.getBoundingClientRect();
return [
e.clientX - rect.left,
e.clientY - rect.top
];
}
// Hide the brush preview when the mouse leaves the main canvas
canvas.addEventListener('mouseleave', () => {
overlayCtx.clearRect(0, 0, overlayCanvas.width, overlayCanvas.height);
drawing=false;
});
// Submit canvas as mask
document.getElementById('submitBtn').addEventListener('click', async () => {
const tempCanvas = document.createElement('canvas');
const tempCtx = tempCanvas.getContext('2d');
tempCanvas.width = 1024;
tempCanvas.height = 1024;
tempCtx.drawImage(canvas, 0, 0);
const mask = tempCanvas.toDataURL('image/png');
const prompt = document.getElementById('prompt').value;
CentralSpaceShowProcessing(0,defaultLoadingMessage);
// Send mask and image to the backend via AJAX
// Prepare form data
const formData = new URLSearchParams({
...csrf_pair,
mask: mask,
imageType: document.getElementById('downloadType').value,
mode: document.getElementById('editMode').value,
prompt: prompt,
ajax: true
});
const response = await fetch(submit_url, {
method: 'POST',
body: formData
});
const result = await response.json(); // Parse the response as JSON
// Check if a valid image URL is returned
if (result.image_base64) {
const base64Image = result.image_base64; // Extract the base64 image data
// Update the image src behind the canvas with the new one
image.src = `data:image/png;base64,${base64Image}`;
// Redraw the canvas with the new image once it loads
image.onload = () => {
// I have no idea why this is necessary or why it does anything, but without it the following drawImage() fails to draw anything.
canvas.width = canvas.width;
canvas.height = canvas.height;
ctx.drawImage(image, 0, 0); // Draw new image
document.getElementById('downloadOptions').style.visibility='visible';
};
} else {
console.error('Failed to get a valid image URL from OpenAI.');
styledalert('OpenAI',result.error.message);
}
CentralSpaceHideProcessing();
});
// Get the mode selector and add an event listener
document.getElementById('editMode').addEventListener('change', () => {
const mode = document.getElementById('editMode').value;
const brush = document.getElementById('penSize');
const prompt = document.getElementById('prompt');
brush.disabled=(mode=='generate' || mode=='variation');
prompt.disabled=(mode=='white' || mode=='black' || mode=='variation');
});
// Get the download button and add an event listener
document.getElementById('downloadBtn').addEventListener('click', () => {
// Convert the canvas content to a data URL (PNG format)
const dataURL = canvas.toDataURL(document.getElementById('downloadType').value);
const downloadAction=document.getElementById('downloadAction').value;
if (downloadAction=='download')
{
// Download the file (or really, save, as it's already on the user's system)
// Create a temporary link element
const link = document.createElement('a');
link.href = dataURL;
link.download = 'ai_edited.' + document.getElementById('downloadType').value.split('/')[1]; // The name of the downloaded image
// Programmatically click the link to trigger the download
link.click();
}
if (downloadAction=='alternative' || downloadAction=='new')
{
// Save as alternative file
CentralSpaceShowProcessing(0);
// Prepare form data
const formData = new URLSearchParams({
...csrf_pair,
ajax: true,
imageData: dataURL,
imageType: document.getElementById('downloadType').value
});
fetch(downloadAction=='alternative' ? alternative_url : save_new_url, {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(result => {
console.log('Image submitted successfully:', result);
if (downloadAction=='alternative')
{
window.location.href=view_url;
}
else
{
window.location.href=view_new_url + result['resource'];
}
})
.catch(error => {
alert('Error submitting image:' + error);
});
}
});

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='تحرير باستخدام الذكاء الاصطناعي (نسخة تجريبية)';
$lang["openai_image_edit__prompt"]='موجه';
$lang["openai_image_edit__preparing_images"]='OpenAI: تحضير الصور والقناع';
$lang["openai_image_edit__completing"]='OpenAI: إكمال الصورة';
$lang["openai_image_edit__pensize"]='حجم الفرشاة';
$lang["openai_image_edit__reset"]='إعادة تعيين';
$lang["openai_image_edit__generate"]='إنشاء';
$lang["openai_image_edit__exportoptions"]='خيارات التصدير';
$lang["openai_image_edit__download"]='تنزيل الملف';
$lang["openai_image_edit__alternative"]='حفظ في سجل المورد كملف بديل';
$lang["openai_image_edit__export"]='تصدير الصورة';
$lang["openai_image_edit__filename"]='صورة معدلة بواسطة الذكاء الاصطناعي';
$lang["openai_image_edit__saving_alternative"]='حفظ ملف بديل';
$lang["openai_image_edit__generating_alternative_previews"]='إنشاء صور معاينة';
$lang["openai_image_edit__preparing_image_for_editing"]='تحضير الصورة للتحرير';
$lang["openai_image_edit__sending"]='OpenAI: نقل بيانات الصورة';
$lang["openai_image_edit__new"]='احفظ كموارد جديدة';
$lang["openai_image_edit__mode"]='وضع';
$lang["openai_image_edit__mode_edit"]='تعديل الصورة (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='إنشاء نسخة (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='إنشاء بديل (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='املأ بالأبيض';
$lang["openai_image_edit__mode_black"]='املأ بالأسود';
$lang["openai_image_edit__creating_new_resource"]='إنشاء مورد جديد';
$lang["openai_image_edit__mode_clone"]='استنساخ التعبئة';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='এআই দিয়ে সম্পাদনা করুন (বেটা)';
$lang["openai_image_edit__prompt"]='প্রম্পট';
$lang["openai_image_edit__preparing_images"]='OpenAI: চিত্র এবং মাস্ক প্রস্তুত করা হচ্ছে';
$lang["openai_image_edit__completing"]='OpenAI: চিত্র সম্পূর্ণ করা হচ্ছে';
$lang["openai_image_edit__pensize"]='ব্রাশের আকার';
$lang["openai_image_edit__reset"]='রিসেট';
$lang["openai_image_edit__generate"]='উৎপন্ন করুন';
$lang["openai_image_edit__exportoptions"]='রপ্তানি বিকল্পসমূহ';
$lang["openai_image_edit__download"]='ফাইল ডাউনলোড করুন';
$lang["openai_image_edit__alternative"]='বিকল্প ফাইল হিসেবে রিসোর্স রেকর্ডে সংরক্ষণ করুন';
$lang["openai_image_edit__export"]='ইমেজ রপ্তানি করুন';
$lang["openai_image_edit__filename"]='এআই সম্পাদিত ছবি';
$lang["openai_image_edit__saving_alternative"]='বিকল্প ফাইল সংরক্ষণ করা হচ্ছে';
$lang["openai_image_edit__generating_alternative_previews"]='প্রিভিউ ইমেজ তৈরি করা হচ্ছে';
$lang["openai_image_edit__preparing_image_for_editing"]='সম্পাদনার জন্য চিত্র প্রস্তুত করা হচ্ছে';
$lang["openai_image_edit__sending"]='OpenAI: চিত্র তথ্য স্থানান্তর করা';
$lang["openai_image_edit__new"]='নতুন রিসোর্স হিসেবে সংরক্ষণ করুন';
$lang["openai_image_edit__mode"]='মোড';
$lang["openai_image_edit__mode_edit"]='ছবি সম্পাদনা (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='ভেরিয়েশন তৈরি করুন (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='বিকল্প তৈরি করুন (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='সাদা দিয়ে পূর্ণ করুন';
$lang["openai_image_edit__mode_black"]='কালো দিয়ে পূর্ণ করুন';
$lang["openai_image_edit__creating_new_resource"]='নতুন সম্পদ তৈরি করা';
$lang["openai_image_edit__mode_clone"]='ক্লোন পূরণ';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Edita amb IA (beta)';
$lang["openai_image_edit__prompt"]='Suggereix';
$lang["openai_image_edit__preparing_images"]='OpenAI: Preparant imatges i màscara';
$lang["openai_image_edit__completing"]='OpenAI: Completant la imatge';
$lang["openai_image_edit__pensize"]='Mida del pinzell';
$lang["openai_image_edit__reset"]='Restablir';
$lang["openai_image_edit__generate"]='Generar';
$lang["openai_image_edit__exportoptions"]='Opcions d\'exportació';
$lang["openai_image_edit__download"]='Descarregar fitxer';
$lang["openai_image_edit__alternative"]='Desa al registre de recursos com a fitxer alternatiu';
$lang["openai_image_edit__export"]='Exporta imatge';
$lang["openai_image_edit__filename"]='Imatge editada per IA';
$lang["openai_image_edit__saving_alternative"]='Desant estalviant fitxer alternatiu';
$lang["openai_image_edit__generating_alternative_previews"]='Generant imatges de previsualització';
$lang["openai_image_edit__preparing_image_for_editing"]='Preparant la imatge per a l\'edició';
$lang["openai_image_edit__sending"]='OpenAI: Transferint les dades de la imatge';
$lang["openai_image_edit__new"]='Desa com un nou recurs';
$lang["openai_image_edit__mode"]='Mode';
$lang["openai_image_edit__mode_edit"]='Edita la imatge (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Crear variació (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generar reemplaçament (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Omplir amb blanc';
$lang["openai_image_edit__mode_black"]='Omplir amb negre';
$lang["openai_image_edit__creating_new_resource"]='Creant un nou recurs';
$lang["openai_image_edit__mode_clone"]='Clonar omplir';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Upravit pomocí AI (beta)';
$lang["openai_image_edit__prompt"]='Výzva';
$lang["openai_image_edit__preparing_images"]='OpenAI: Příprava obrázků a masky';
$lang["openai_image_edit__completing"]='OpenAI: Dokončení obrázku';
$lang["openai_image_edit__pensize"]='Velikost štětce';
$lang["openai_image_edit__reset"]='Obnovit';
$lang["openai_image_edit__generate"]='Generovat';
$lang["openai_image_edit__exportoptions"]='Možnosti exportu';
$lang["openai_image_edit__download"]='Stáhnout soubor';
$lang["openai_image_edit__alternative"]='Uložit do záznamu zdroje jako alternativní soubor';
$lang["openai_image_edit__export"]='Exportovat obrázek';
$lang["openai_image_edit__filename"]='AI upravený obrázek';
$lang["openai_image_edit__saving_alternative"]='Ukládání alternativního souboru';
$lang["openai_image_edit__generating_alternative_previews"]='Generování náhledových obrázků';
$lang["openai_image_edit__preparing_image_for_editing"]='Příprava obrázku k úpravě';
$lang["openai_image_edit__sending"]='OpenAI: Přenos dat obrázku';
$lang["openai_image_edit__new"]='Uložit jako nový zdroj';
$lang["openai_image_edit__mode"]='Režim';
$lang["openai_image_edit__mode_edit"]='Upravit obrázek (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Vytvořit variantu (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Vytvořit náhradu (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Vyplnit bílou';
$lang["openai_image_edit__mode_black"]='Vyplnit černou';
$lang["openai_image_edit__creating_new_resource"]='Vytváření nového zdroje';
$lang["openai_image_edit__mode_clone"]='Klonovat vyplnění';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Golygu gyda AI';
$lang["openai_image_edit__prompt"]='Hysbysiad';
$lang["openai_image_edit__preparing_images"]='Paratoi masg delwedd';
$lang["openai_image_edit__completing"]='Cwblhau\'r delwedd';
$lang["openai_image_edit__sending"]='Trosglwyddo\'r data delwedd';
$lang["openai_image_edit__pensize"]='Maint maintiau';
$lang["openai_image_edit__reset"]='Ailgychwyn';
$lang["openai_image_edit__generate"]='Cynhyrchu';
$lang["openai_image_edit__exportoptions"]='Dewisiau allforio';
$lang["openai_image_edit__download"]='Lawrlwytho ffeil';
$lang["openai_image_edit__alternative"]='Cadw i gofrestr y adnodd fel ffeil amgen';
$lang["openai_image_edit__export"]='Allforio delwedd';
$lang["openai_image_edit__filename"]='delwedd wedi\'i golygu gan AI';
$lang["openai_image_edit__saving_alternative"]='Cadw ffeil amgen';
$lang["openai_image_edit__generating_alternative_previews"]='Creu delweddau rhagolwg';
$lang["openai_image_edit__preparing_image_for_editing"]='Paratoi delwedd ar gyfer golygu';
$lang["openai_image_edit__new"]='Cadw fel adnodd newydd';
$lang["openai_image_edit__mode"]='Modd';
$lang["openai_image_edit__mode_edit"]='Golygu delwedd (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Creu amrywiad (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generwch ddirprwy (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Llenwch gyda gwyn';
$lang["openai_image_edit__mode_black"]='Llenwch gyda du';
$lang["openai_image_edit__mode_clone"]='Clone llenwi';
$lang["openai_image_edit__creating_new_resource"]='Creu adnodd newydd';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Rediger med AI (beta)';
$lang["openai_image_edit__prompt"]='Prompt';
$lang["openai_image_edit__preparing_images"]='OpenAI: Forbereder billeder og maske';
$lang["openai_image_edit__completing"]='OpenAI: Fuldfører billedet';
$lang["openai_image_edit__pensize"]='Penselstørrelse';
$lang["openai_image_edit__reset"]='Nulstil';
$lang["openai_image_edit__generate"]='Generer';
$lang["openai_image_edit__exportoptions"]='Eksportmuligheder';
$lang["openai_image_edit__download"]='Download fil';
$lang["openai_image_edit__alternative"]='Gem til ressourcepost som alternativ fil';
$lang["openai_image_edit__export"]='Eksporter billede';
$lang["openai_image_edit__filename"]='AI redigeret billede';
$lang["openai_image_edit__saving_alternative"]='Gemmer alternativ fil';
$lang["openai_image_edit__generating_alternative_previews"]='Genererer forhåndsvisningsbilleder';
$lang["openai_image_edit__preparing_image_for_editing"]='Forbereder billede til redigering';
$lang["openai_image_edit__sending"]='OpenAI: Overførsel af billeddata';
$lang["openai_image_edit__new"]='Gem som en ny ressource';
$lang["openai_image_edit__mode"]='Tilstand';
$lang["openai_image_edit__mode_edit"]='Rediger billede (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Opret variation (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generer erstatning (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Udfyld med hvid';
$lang["openai_image_edit__mode_black"]='Udfyld med sort';
$lang["openai_image_edit__creating_new_resource"]='Oprettelse af ny ressource';
$lang["openai_image_edit__mode_clone"]='Klon udfyld';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Mit KI bearbeiten (Beta)';
$lang["openai_image_edit__prompt"]='Aufforderung';
$lang["openai_image_edit__preparing_images"]='OpenAI: Bilder und Masken vorbereiten';
$lang["openai_image_edit__completing"]='OpenAI: Bild vervollständigen';
$lang["openai_image_edit__pensize"]='Pinselgröße';
$lang["openai_image_edit__reset"]='Zurücksetzen';
$lang["openai_image_edit__generate"]='Generieren';
$lang["openai_image_edit__exportoptions"]='Exportoptionen';
$lang["openai_image_edit__download"]='Datei herunterladen';
$lang["openai_image_edit__alternative"]='Als alternative Datei im Ressourcen-Datensatz speichern';
$lang["openai_image_edit__export"]='Bild exportieren';
$lang["openai_image_edit__filename"]='KI-bearbeitetes Bild';
$lang["openai_image_edit__saving_alternative"]='Alternative Datei speichern';
$lang["openai_image_edit__generating_alternative_previews"]='Vorschau-Bilder generieren';
$lang["openai_image_edit__preparing_image_for_editing"]='Bild zur Bearbeitung vorbereiten';
$lang["openai_image_edit__sending"]='OpenAI: Übertragung der Bilddaten';
$lang["openai_image_edit__new"]='Als neue Ressource speichern';
$lang["openai_image_edit__mode"]='Modus';
$lang["openai_image_edit__mode_edit"]='Bild bearbeiten (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Variation erstellen (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Ersatz generieren (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Mit Weiß füllen';
$lang["openai_image_edit__mode_black"]='Mit Schwarz füllen';
$lang["openai_image_edit__creating_new_resource"]='Neues Medium erstellen';
$lang["openai_image_edit__mode_clone"]='Klonfüllung';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Επεξεργασία με AI (beta)';
$lang["openai_image_edit__prompt"]='Προτροπή';
$lang["openai_image_edit__preparing_images"]='OpenAI: Προετοιμασία εικόνων και μάσκας';
$lang["openai_image_edit__completing"]='OpenAI: Ολοκλήρωση της εικόνας';
$lang["openai_image_edit__pensize"]='Μέγεθος πινέλου';
$lang["openai_image_edit__reset"]='Επαναφορά';
$lang["openai_image_edit__generate"]='Δημιουργία';
$lang["openai_image_edit__exportoptions"]='Επιλογές εξαγωγής';
$lang["openai_image_edit__download"]='Κατέβασμα αρχείου';
$lang["openai_image_edit__alternative"]='Αποθήκευση στο αρχείο πόρου ως εναλλακτικό αρχείο';
$lang["openai_image_edit__export"]='Εξαγωγή εικόνας';
$lang["openai_image_edit__filename"]='Εικόνα επεξεργασμένη από AI';
$lang["openai_image_edit__saving_alternative"]='Αποθήκευση εναλλακτικού αρχείου';
$lang["openai_image_edit__generating_alternative_previews"]='Δημιουργία προεπισκοπήσεων εικόνων';
$lang["openai_image_edit__preparing_image_for_editing"]='Προετοιμασία εικόνας για επεξεργασία';
$lang["openai_image_edit__sending"]='OpenAI: Μεταφορά των δεδομένων εικόνας';
$lang["openai_image_edit__new"]='Αποθήκευση ως νέο πόρο';
$lang["openai_image_edit__mode"]='Λειτουργία';
$lang["openai_image_edit__mode_edit"]='Επεξεργασία εικόνας (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Δημιουργία παραλλαγής (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Δημιουργία αντικατάστασης (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Γεμίστε με λευκό';
$lang["openai_image_edit__mode_black"]='Γεμίστε με μαύρο';
$lang["openai_image_edit__creating_new_resource"]='Δημιουργία νέου πόρου';
$lang["openai_image_edit__mode_clone"]='Αντιγραφή συμπλήρωσης';

View File

@@ -0,0 +1,26 @@
<?php
$lang["openai_image_edit__edit_with_ai"]="Edit with AI";
$lang["openai_image_edit__prompt"]="Prompt";
$lang["openai_image_edit__preparing_images"]="Preparing image mask";
$lang["openai_image_edit__completing"]="Completing the image";
$lang["openai_image_edit__sending"]="Transferring the image data";
$lang["openai_image_edit__pensize"]="Brush size";
$lang["openai_image_edit__reset"]="Reset";
$lang["openai_image_edit__generate"]="Generate";
$lang["openai_image_edit__exportoptions"]="Export options";
$lang["openai_image_edit__download"] = "Download file";
$lang["openai_image_edit__alternative"] = "Save to resource record as alternative file";
$lang["openai_image_edit__export"] = "Export image";
$lang["openai_image_edit__filename"] = "AI edited image";
$lang["openai_image_edit__saving_alternative"] = "Saving alternative file";
$lang["openai_image_edit__generating_alternative_previews"] = "Generating preview images";
$lang["openai_image_edit__preparing_image_for_editing"] = "Preparing image for editing";
$lang["openai_image_edit__new"] = "Save as a new resource";
$lang["openai_image_edit__mode"] = "Mode";
$lang["openai_image_edit__mode_edit"] = "Edit image (DALL-E 2)";
$lang["openai_image_edit__mode_variation"] = "Create variation (DALL-E 2)";
$lang["openai_image_edit__mode_generate"] = "Generate replacement (DALL-E 3)";
$lang["openai_image_edit__mode_white"] = "Fill with white";
$lang["openai_image_edit__mode_black"] = "Fill with black";
$lang["openai_image_edit__mode_clone"] = "Clone fill";
$lang["openai_image_edit__creating_new_resource"] = "Creating new resource";

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Editar con IA (beta)';
$lang["openai_image_edit__prompt"]='Sugerencia';
$lang["openai_image_edit__preparing_images"]='OpenAI: Preparando imágenes y máscara';
$lang["openai_image_edit__completing"]='OpenAI: Completando la imagen';
$lang["openai_image_edit__pensize"]='Tamaño del pincel';
$lang["openai_image_edit__reset"]='Restablecer';
$lang["openai_image_edit__generate"]='Generar';
$lang["openai_image_edit__exportoptions"]='Opciones de exportación';
$lang["openai_image_edit__download"]='Descargar archivo';
$lang["openai_image_edit__alternative"]='Guardar en el registro de recursos como archivo alternativo';
$lang["openai_image_edit__export"]='Exportar imagen';
$lang["openai_image_edit__filename"]='Imagen editada por IA';
$lang["openai_image_edit__saving_alternative"]='Guardando archivo alternativo';
$lang["openai_image_edit__generating_alternative_previews"]='Generando imágenes de vista previa';
$lang["openai_image_edit__preparing_image_for_editing"]='Preparando la imagen para editar';
$lang["openai_image_edit__sending"]='OpenAI: Transfiriendo los datos de la imagen';
$lang["openai_image_edit__new"]='Guardar como un nuevo recurso';
$lang["openai_image_edit__mode"]='Modo';
$lang["openai_image_edit__mode_edit"]='Editar imagen (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Crear variación (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generar reemplazo (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Rellenar con blanco';
$lang["openai_image_edit__mode_black"]='Rellenar con negro';
$lang["openai_image_edit__creating_new_resource"]='Creando nuevo recurso';
$lang["openai_image_edit__mode_clone"]='Relleno de clon';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Editar con IA (beta)';
$lang["openai_image_edit__prompt"]='Sugerencia';
$lang["openai_image_edit__preparing_images"]='OpenAI: Preparando imágenes y máscara';
$lang["openai_image_edit__completing"]='OpenAI: Completando la imagen';
$lang["openai_image_edit__pensize"]='Tamaño del pincel';
$lang["openai_image_edit__reset"]='Restablecer';
$lang["openai_image_edit__generate"]='Generar';
$lang["openai_image_edit__exportoptions"]='Opciones de exportación';
$lang["openai_image_edit__download"]='Descargar archivo';
$lang["openai_image_edit__alternative"]='Guardar en el registro de recursos como archivo alternativo';
$lang["openai_image_edit__export"]='Exportar imagen';
$lang["openai_image_edit__filename"]='Imagen editada por IA';
$lang["openai_image_edit__saving_alternative"]='Guardando archivo alternativo';
$lang["openai_image_edit__generating_alternative_previews"]='Generando imágenes de vista previa';
$lang["openai_image_edit__preparing_image_for_editing"]='Preparando la imagen para editar';
$lang["openai_image_edit__sending"]='OpenAI: Transfiriendo los datos de la imagen';
$lang["openai_image_edit__new"]='Guardar como un nuevo recurso';
$lang["openai_image_edit__mode"]='Modo';
$lang["openai_image_edit__mode_edit"]='Editar imagen (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Crear variación (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generar reemplazo (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Rellenar con blanco';
$lang["openai_image_edit__mode_black"]='Rellenar con negro';
$lang["openai_image_edit__creating_new_resource"]='Creando nuevo recurso';
$lang["openai_image_edit__mode_clone"]='Rellenar clonación';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='ویرایش با هوش مصنوعی (بتا)';
$lang["openai_image_edit__prompt"]='فراخوان';
$lang["openai_image_edit__preparing_images"]='OpenAI: آماده‌سازی تصاویر و ماسک';
$lang["openai_image_edit__completing"]='OpenAI: تکمیل تصویر';
$lang["openai_image_edit__pensize"]='اندازه قلم مو';
$lang["openai_image_edit__reset"]='تنظیم مجدد';
$lang["openai_image_edit__generate"]='تولید کنید';
$lang["openai_image_edit__exportoptions"]='گزینه‌های صادرات';
$lang["openai_image_edit__download"]='دانلود فایل';
$lang["openai_image_edit__alternative"]='ذخیره به رکورد منبع به عنوان فایل جایگزین';
$lang["openai_image_edit__export"]='صادرات تصویر';
$lang["openai_image_edit__filename"]='تصویر ویرایش شده با هوش مصنوعی';
$lang["openai_image_edit__saving_alternative"]='ذخیره فایل جایگزین';
$lang["openai_image_edit__generating_alternative_previews"]='تولید تصاویر پیش‌نمایش';
$lang["openai_image_edit__preparing_image_for_editing"]='در حال آماده‌سازی تصویر برای ویرایش';
$lang["openai_image_edit__sending"]='OpenAI: انتقال داده‌های تصویر';
$lang["openai_image_edit__new"]='ذخیره به عنوان یک منبع جدید';
$lang["openai_image_edit__mode"]='حالت';
$lang["openai_image_edit__mode_edit"]='ویرایش تصویر (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='ایجاد تغییر (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='تولید جایگزین (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='با سفید پر کنید';
$lang["openai_image_edit__mode_black"]='با سیاه پر کن';
$lang["openai_image_edit__creating_new_resource"]='ایجاد منبع جدید';
$lang["openai_image_edit__mode_clone"]='کپی پر کردن';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Muokkaa AI:lla (beta)';
$lang["openai_image_edit__prompt"]='Kehoitus';
$lang["openai_image_edit__preparing_images"]='OpenAI: Valmistellaan kuvia ja maskeja';
$lang["openai_image_edit__completing"]='OpenAI: Kuvan viimeistely';
$lang["openai_image_edit__pensize"]='Harjan koko';
$lang["openai_image_edit__reset"]='Nollaa';
$lang["openai_image_edit__generate"]='Tuottaa';
$lang["openai_image_edit__exportoptions"]='Vienti vaihtoehdot';
$lang["openai_image_edit__download"]='Lataa tiedosto';
$lang["openai_image_edit__alternative"]='Tallenna resurssitietueeseen vaihtoehtoisena tiedostona';
$lang["openai_image_edit__export"]='Vie kuva';
$lang["openai_image_edit__filename"]='AI muokattu kuva';
$lang["openai_image_edit__saving_alternative"]='Tallennetaan vaihtoehtoista tiedostoa';
$lang["openai_image_edit__generating_alternative_previews"]='Esikatselukuvien luominen';
$lang["openai_image_edit__preparing_image_for_editing"]='Kuvan valmistelu muokkaamista varten';
$lang["openai_image_edit__sending"]='OpenAI: Kuvadatan siirtäminen';
$lang["openai_image_edit__new"]='Tallenna uutena resurssina';
$lang["openai_image_edit__mode"]='Tila';
$lang["openai_image_edit__mode_edit"]='Muokkaa kuvaa (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Luo variaatio (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Tuota korvaus (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Täytä valkoisella';
$lang["openai_image_edit__mode_black"]='Täytä mustalla';
$lang["openai_image_edit__creating_new_resource"]='Uuden resurssin luominen';
$lang["openai_image_edit__mode_clone"]='Kloona täyttö';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Modifier avec l\'IA (bêta)';
$lang["openai_image_edit__prompt"]='Invite';
$lang["openai_image_edit__preparing_images"]='OpenAI : Préparation des images et du masque';
$lang["openai_image_edit__completing"]='OpenAI : Compléter l\'image';
$lang["openai_image_edit__pensize"]='Taille du pinceau';
$lang["openai_image_edit__reset"]='Réinitialiser';
$lang["openai_image_edit__generate"]='Générer';
$lang["openai_image_edit__exportoptions"]='Options d\'exportation';
$lang["openai_image_edit__download"]='Télécharger le fichier';
$lang["openai_image_edit__alternative"]='Enregistrer dans l\'enregistrement de ressource en tant que fichier alternatif';
$lang["openai_image_edit__export"]='Exporter l\'image';
$lang["openai_image_edit__filename"]='Image éditée par IA';
$lang["openai_image_edit__saving_alternative"]='Enregistrement du fichier alternatif';
$lang["openai_image_edit__generating_alternative_previews"]='Génération d\'images de prévisualisation';
$lang["openai_image_edit__preparing_image_for_editing"]='Préparation de l\'image pour l\'édition';
$lang["openai_image_edit__sending"]='OpenAI : Transfert des données d\'image';
$lang["openai_image_edit__new"]='Enregistrer en tant que nouvelle ressource';
$lang["openai_image_edit__mode"]='Mode';
$lang["openai_image_edit__mode_edit"]='Modifier l\'image (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Créer une variation (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Générer un remplacement (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Remplir de blanc';
$lang["openai_image_edit__mode_black"]='Remplir de noir';
$lang["openai_image_edit__creating_new_resource"]='Création d\'une nouvelle ressource';
$lang["openai_image_edit__mode_clone"]='Remplissage de clone';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='एआई के साथ संपादित करें (बीटा)';
$lang["openai_image_edit__prompt"]='प्रेरणा';
$lang["openai_image_edit__preparing_images"]='OpenAI: चित्रों और मास्क को तैयार करना';
$lang["openai_image_edit__completing"]='OpenAI: छवि को पूरा करना';
$lang["openai_image_edit__pensize"]='ब्रश का आकार';
$lang["openai_image_edit__reset"]='रीसेट';
$lang["openai_image_edit__generate"]='उत्पन्न करें';
$lang["openai_image_edit__exportoptions"]='निर्यात विकल्प';
$lang["openai_image_edit__download"]='फाइल डाउनलोड करें';
$lang["openai_image_edit__alternative"]='वैकल्पिक फ़ाइल के रूप में संसाधन रिकॉर्ड में सहेजें';
$lang["openai_image_edit__export"]='छवि निर्यात करें';
$lang["openai_image_edit__filename"]='एआई संपादित छवि';
$lang["openai_image_edit__saving_alternative"]='वैकल्पिक फ़ाइल सहेजना';
$lang["openai_image_edit__generating_alternative_previews"]='पूर्वावलोकन छवियाँ उत्पन्न करना';
$lang["openai_image_edit__preparing_image_for_editing"]='संपादन के लिए छवि तैयार करना';
$lang["openai_image_edit__sending"]='OpenAI: चित्र डेटा का स्थानांतरण';
$lang["openai_image_edit__new"]='नए संसाधन के रूप में सहेजें';
$lang["openai_image_edit__mode"]='मोड';
$lang["openai_image_edit__mode_edit"]='छवि संपादित करें (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='संस्करण बनाएं (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='प्रतिस्थापन उत्पन्न करें (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='सफेद से भरें';
$lang["openai_image_edit__mode_black"]='काले से भरें';
$lang["openai_image_edit__creating_new_resource"]='नया संसाधन बनाना';
$lang["openai_image_edit__mode_clone"]='क्लोन भरें';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Uredi s AI (beta)';
$lang["openai_image_edit__prompt"]='Poziv';
$lang["openai_image_edit__preparing_images"]='OpenAI: Priprema slika i maske';
$lang["openai_image_edit__completing"]='OpenAI: Dovršavanje slike';
$lang["openai_image_edit__pensize"]='Veličina četkice';
$lang["openai_image_edit__reset"]='Ponovno postavi';
$lang["openai_image_edit__generate"]='Generiraj';
$lang["openai_image_edit__exportoptions"]='Opcije izvoza';
$lang["openai_image_edit__download"]='Preuzmi datoteku';
$lang["openai_image_edit__alternative"]='Spremi u zapis resursa kao alternativnu datoteku';
$lang["openai_image_edit__export"]='Izvezi sliku';
$lang["openai_image_edit__filename"]='AI uređena slika';
$lang["openai_image_edit__saving_alternative"]='Spremanje alternativne datoteke';
$lang["openai_image_edit__generating_alternative_previews"]='Generiranje slika pregleda';
$lang["openai_image_edit__preparing_image_for_editing"]='Priprema slike za uređivanje';
$lang["openai_image_edit__sending"]='OpenAI: Prijenos podataka o slici';
$lang["openai_image_edit__new"]='Spremi kao novi resurs';
$lang["openai_image_edit__mode"]='Način';
$lang["openai_image_edit__mode_edit"]='Uredi sliku (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Stvori varijaciju (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generiraj zamjenu (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Ispuni bijelom';
$lang["openai_image_edit__mode_black"]='Ispuni crnom';
$lang["openai_image_edit__creating_new_resource"]='Kreiranje novog resursa';
$lang["openai_image_edit__mode_clone"]='Kloniraj ispunu';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"] = 'Szerkesztés AI-val';
$lang["openai_image_edit__prompt"] = 'Kérdés';
$lang["openai_image_edit__preparing_images"] = 'Képmaszk előkészítése';
$lang["openai_image_edit__completing"] = 'A kép befejezése';
$lang["openai_image_edit__sending"] = 'A képadatok átvitele';
$lang["openai_image_edit__pensize"] = 'Ecset méret';
$lang["openai_image_edit__reset"] = 'Visszaállítás';
$lang["openai_image_edit__generate"] = 'Generálás';
$lang["openai_image_edit__exportoptions"] = 'Exportálási lehetőségek';
$lang["openai_image_edit__download"] = 'Fájl letöltése';
$lang["openai_image_edit__alternative"] = 'Mentés az erőforrás rekordba alternatív fájlként';
$lang["openai_image_edit__export"] = 'Kép exportálása';
$lang["openai_image_edit__filename"] = 'AI szerkesztett kép';
$lang["openai_image_edit__saving_alternative"] = 'Alternatív fájl mentése';
$lang["openai_image_edit__generating_alternative_previews"] = 'Előnézeti képek generálása';
$lang["openai_image_edit__preparing_image_for_editing"] = 'Kép előkészítése szerkesztéshez';
$lang["openai_image_edit__new"] = 'Mentés új erőforrásként';
$lang["openai_image_edit__mode"] = 'Mód';
$lang["openai_image_edit__mode_edit"] = 'Kép szerkesztése (DALL-E 2)';
$lang["openai_image_edit__mode_variation"] = 'Hozzon létre variációt (DALL-E 2)';
$lang["openai_image_edit__mode_generate"] = 'Helyettesítő generálása (DALL-E 3)';
$lang["openai_image_edit__mode_white"] = 'Töltsd ki fehérrel';
$lang["openai_image_edit__mode_black"] = 'Töltsd ki feketére';
$lang["openai_image_edit__mode_clone"] = 'Klónozás kitöltése';
$lang["openai_image_edit__creating_new_resource"] = 'Új erőforrás létrehozása';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Edit dengan AI (beta)';
$lang["openai_image_edit__prompt"]='Prompt';
$lang["openai_image_edit__preparing_images"]='OpenAI: Mempersiapkan gambar dan masker';
$lang["openai_image_edit__completing"]='OpenAI: Menyelesaikan gambar';
$lang["openai_image_edit__pensize"]='Ukuran kuas';
$lang["openai_image_edit__reset"]='Atur Ulang';
$lang["openai_image_edit__generate"]='Hasilkan';
$lang["openai_image_edit__exportoptions"]='Opsi ekspor';
$lang["openai_image_edit__download"]='Unduh file';
$lang["openai_image_edit__alternative"]='Simpan ke catatan sumber daya sebagai file alternatif';
$lang["openai_image_edit__export"]='Ekspor gambar';
$lang["openai_image_edit__filename"]='Gambar yang diedit AI';
$lang["openai_image_edit__saving_alternative"]='Menyimpan file alternatif';
$lang["openai_image_edit__generating_alternative_previews"]='Menghasilkan gambar pratinjau';
$lang["openai_image_edit__preparing_image_for_editing"]='Menyiapkan gambar untuk diedit';
$lang["openai_image_edit__sending"]='OpenAI: Mentransfer data gambar';
$lang["openai_image_edit__new"]='Simpan sebagai sumber baru';
$lang["openai_image_edit__mode"]='Mode';
$lang["openai_image_edit__mode_edit"]='Edit image (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Buat variasi (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Hasilkan pengganti (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Isi dengan putih';
$lang["openai_image_edit__mode_black"]='Isi dengan hitam';
$lang["openai_image_edit__creating_new_resource"]='Membuat sumber daya baru';
$lang["openai_image_edit__mode_clone"]='Duplikasi isi';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Modifica con AI (beta)';
$lang["openai_image_edit__prompt"]='Invito';
$lang["openai_image_edit__preparing_images"]='OpenAI: Preparazione delle immagini e della maschera';
$lang["openai_image_edit__completing"]='OpenAI: Completare l\'immagine';
$lang["openai_image_edit__pensize"]='Dimensione del pennello';
$lang["openai_image_edit__reset"]='Ripristina';
$lang["openai_image_edit__generate"]='Generare';
$lang["openai_image_edit__exportoptions"]='Opzioni di esportazione';
$lang["openai_image_edit__download"]='Scarica file';
$lang["openai_image_edit__alternative"]='Salva nel record della risorsa come file alternativo';
$lang["openai_image_edit__export"]='Esporta immagine';
$lang["openai_image_edit__filename"]='Immagine modificata da AI';
$lang["openai_image_edit__saving_alternative"]='Salvataggio file alternativo';
$lang["openai_image_edit__generating_alternative_previews"]='Generazione delle immagini di anteprima';
$lang["openai_image_edit__preparing_image_for_editing"]='Preparazione dell\'immagine per la modifica';
$lang["openai_image_edit__sending"]='OpenAI: Trasferimento dei dati dell\'immagine';
$lang["openai_image_edit__new"]='Salva come nuova risorsa';
$lang["openai_image_edit__mode"]='Modalità';
$lang["openai_image_edit__mode_edit"]='Modifica immagine (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Crea variazione (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Genera sostituzione (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Riempi di bianco';
$lang["openai_image_edit__mode_black"]='Riempi con nero';
$lang["openai_image_edit__creating_new_resource"]='Creazione di una nuova risorsa';
$lang["openai_image_edit__mode_clone"]='Clona riempi';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='AIで編集ベータ';
$lang["openai_image_edit__prompt"]='プロンプト';
$lang["openai_image_edit__preparing_images"]='OpenAI: 画像とマスクを準備中';
$lang["openai_image_edit__completing"]='OpenAI: 画像を完成させる';
$lang["openai_image_edit__pensize"]='ブラシサイズ';
$lang["openai_image_edit__reset"]='リセット';
$lang["openai_image_edit__generate"]='生成する';
$lang["openai_image_edit__exportoptions"]='エクスポートオプション';
$lang["openai_image_edit__download"]='ファイルをダウンロード';
$lang["openai_image_edit__alternative"]='リソースレコードに代替ファイルとして保存';
$lang["openai_image_edit__export"]='画像をエクスポート';
$lang["openai_image_edit__filename"]='AI編集画像';
$lang["openai_image_edit__saving_alternative"]='代替ファイルを保存しています';
$lang["openai_image_edit__generating_alternative_previews"]='プレビュー画像を生成しています';
$lang["openai_image_edit__preparing_image_for_editing"]='編集のために画像を準備中';
$lang["openai_image_edit__sending"]='OpenAI: 画像データを転送中';
$lang["openai_image_edit__new"]='新しいリソースとして保存';
$lang["openai_image_edit__mode"]='モード';
$lang["openai_image_edit__mode_edit"]='画像を編集 (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='バリエーションを作成 (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='置き換えを生成 (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='白で塗りつぶす';
$lang["openai_image_edit__mode_black"]='黒で塗りつぶす';
$lang["openai_image_edit__creating_new_resource"]='新しいリソースを作成中';
$lang["openai_image_edit__mode_clone"]='クローンフィル';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='AI로 편집하기 (베타)';
$lang["openai_image_edit__prompt"]='프롬프트';
$lang["openai_image_edit__preparing_images"]='OpenAI: 이미지 및 마스크 준비 중';
$lang["openai_image_edit__completing"]='OpenAI: 이미지 완성하기';
$lang["openai_image_edit__pensize"]='브러시 크기';
$lang["openai_image_edit__reset"]='재설정';
$lang["openai_image_edit__generate"]='생성하다';
$lang["openai_image_edit__exportoptions"]='내보내기 옵션';
$lang["openai_image_edit__download"]='파일 다운로드';
$lang["openai_image_edit__alternative"]='자원 기록에 대체 파일로 저장';
$lang["openai_image_edit__export"]='이미지 내보내기';
$lang["openai_image_edit__filename"]='AI 편집 이미지';
$lang["openai_image_edit__saving_alternative"]='대체 파일 저장 중';
$lang["openai_image_edit__generating_alternative_previews"]='미리보기 이미지 생성 중';
$lang["openai_image_edit__preparing_image_for_editing"]='편집을 위한 이미지 준비 중';
$lang["openai_image_edit__sending"]='OpenAI: 이미지 데이터 전송 중';
$lang["openai_image_edit__new"]='새 자원으로 저장';
$lang["openai_image_edit__mode"]='모드';
$lang["openai_image_edit__mode_edit"]='이미지 편집 (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='변형 만들기 (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='대체 생성 (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='흰색으로 채우기';
$lang["openai_image_edit__mode_black"]='검은색으로 채우기';
$lang["openai_image_edit__creating_new_resource"]='새 자원 만들기';
$lang["openai_image_edit__mode_clone"]='클론 채우기';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Bewerken met AI (beta)';
$lang["openai_image_edit__prompt"]='Opdracht';
$lang["openai_image_edit__preparing_images"]='OpenAI: Voorbereiden van afbeeldingen en maskers';
$lang["openai_image_edit__completing"]='OpenAI: Het voltooien van de afbeelding';
$lang["openai_image_edit__pensize"]='Borstelgrootte';
$lang["openai_image_edit__reset"]='Resetten';
$lang["openai_image_edit__generate"]='Genereren';
$lang["openai_image_edit__exportoptions"]='Exportopties';
$lang["openai_image_edit__download"]='Download bestand';
$lang["openai_image_edit__alternative"]='Opslaan als alternatieve bestand in het resource record';
$lang["openai_image_edit__export"]='Exporteer afbeelding';
$lang["openai_image_edit__filename"]='AI bewerkte afbeelding';
$lang["openai_image_edit__saving_alternative"]='Alternatief bestand opslaan';
$lang["openai_image_edit__generating_alternative_previews"]='Voorbeeldafbeeldingen genereren';
$lang["openai_image_edit__preparing_image_for_editing"]='Afbeelding voorbereiden voor bewerking';
$lang["openai_image_edit__sending"]='OpenAI: Beeldgegevens overdragen';
$lang["openai_image_edit__new"]='Opslaan als een nieuwe bron';
$lang["openai_image_edit__mode"]='Modus';
$lang["openai_image_edit__mode_edit"]='Bewerk afbeelding (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Maak variatie (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Genereer vervanging (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Vul met wit';
$lang["openai_image_edit__mode_black"]='Vul met zwart';
$lang["openai_image_edit__creating_new_resource"]='Nieuwe resource aanmaken';
$lang["openai_image_edit__mode_clone"]='Kloon vullen';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Rediger med AI (beta)';
$lang["openai_image_edit__prompt"]='Forespørsel';
$lang["openai_image_edit__preparing_images"]='OpenAI: Forbereder bilder og maske';
$lang["openai_image_edit__completing"]='OpenAI: Fullføre bildet';
$lang["openai_image_edit__pensize"]='Penselstørrelse';
$lang["openai_image_edit__reset"]='Tilbakestill';
$lang["openai_image_edit__generate"]='Generere';
$lang["openai_image_edit__exportoptions"]='Eksportalternativer';
$lang["openai_image_edit__download"]='Last ned fil';
$lang["openai_image_edit__alternative"]='Lagre til ressursoppføring som alternativ fil';
$lang["openai_image_edit__export"]='Eksporter bilde';
$lang["openai_image_edit__filename"]='AI-redigert bilde';
$lang["openai_image_edit__saving_alternative"]='Lagrer alternativ fil';
$lang["openai_image_edit__generating_alternative_previews"]='Genererer forhåndsvisningsbilder';
$lang["openai_image_edit__preparing_image_for_editing"]='Forbereder bilde for redigering';
$lang["openai_image_edit__sending"]='OpenAI: Overføring av bildedata';
$lang["openai_image_edit__new"]='Lagre som en ny ressurs';
$lang["openai_image_edit__mode"]='Modus';
$lang["openai_image_edit__mode_edit"]='Rediger bilde (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Opprett variasjon (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generer erstatning (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Fyll med hvit';
$lang["openai_image_edit__mode_black"]='Fyll med svart';
$lang["openai_image_edit__creating_new_resource"]='Oppretter ny ressurs';
$lang["openai_image_edit__mode_clone"]='Klon fyll';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='AI ਨਾਲ ਸੰਪਾਦਨ ਕਰੋ (ਬੀਟਾ)';
$lang["openai_image_edit__prompt"]='ਪ੍ਰੰਪਟ';
$lang["openai_image_edit__preparing_images"]='OpenAI: ਚਿੱਤਰ ਅਤੇ ਮਾਸਕ ਤਿਆਰ ਕਰਨਾ';
$lang["openai_image_edit__pensize"]='ਬਰਸ਼ ਦਾ ਆਕਾਰ';
$lang["openai_image_edit__reset"]='ਰੀਸੈਟ';
$lang["openai_image_edit__generate"]='ਜਨਰੇਟ ਕਰੋ';
$lang["openai_image_edit__exportoptions"]='ਨਿਰਯਾਤ ਵਿਕਲਪ';
$lang["openai_image_edit__download"]='ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰੋ';
$lang["openai_image_edit__alternative"]='ਵਿਕਲਪਿਕ ਫਾਈਲ ਵਜੋਂ ਸਰੋਤ ਰਿਕਾਰਡ ਵਿੱਚ ਸੇਵ ਕਰੋ';
$lang["openai_image_edit__export"]='ਚਿੱਤਰ ਨਿਰਯਾਤ ਕਰੋ';
$lang["openai_image_edit__filename"]='ਏਆਈ ਦੁਆਰਾ ਸੰਪਾਦਿਤ ਚਿੱਤਰ';
$lang["openai_image_edit__saving_alternative"]='ਵਿਕਲਪਿਕ ਫਾਈਲ ਸੇਵ ਕਰਨਾ';
$lang["openai_image_edit__generating_alternative_previews"]='ਪ੍ਰੀਵਿਊ ਚਿੱਤਰ ਬਣਾਉਣਾ';
$lang["openai_image_edit__preparing_image_for_editing"]='ਸੰਪਾਦਨ ਲਈ ਚਿੱਤਰ ਤਿਆਰ ਕਰਨਾ';
$lang["openai_image_edit__completing"]='OpenAI: ਚਿੱਤਰ ਨੂੰ ਪੂਰਾ ਕਰਨਾ';
$lang["openai_image_edit__sending"]='OpenAI: ਚਿੱਤਰ ਡੇਟਾ ਨੂੰ ਸਥਾਂਤਰਿਤ ਕਰਨਾ';
$lang["openai_image_edit__new"]='ਨਵੀਂ ਸੰਸਾਧਨ ਵਜੋਂ ਸੇਵ ਕਰੋ';
$lang["openai_image_edit__mode"]='ਮੋਡ';
$lang["openai_image_edit__mode_edit"]='ਚਿੱਤਰ ਸੰਪਾਦਿਤ ਕਰੋ (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='ਵਿਭਿੰਨਤਾ ਬਣਾਓ (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='ਬਦਲਾਅ ਪੈਦਾ ਕਰੋ (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='ਸਫੇਦ ਨਾਲ ਭਰੋ';
$lang["openai_image_edit__mode_black"]='ਕਾਲੇ ਨਾਲ ਭਰੋ';
$lang["openai_image_edit__creating_new_resource"]='ਨਵਾਂ ਸਰੋਤ ਬਣਾਉਣਾ';
$lang["openai_image_edit__mode_clone"]='ਕਲੋਨ ਭਰੋ';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Edytuj z AI (beta)';
$lang["openai_image_edit__prompt"]='Podpowiedź';
$lang["openai_image_edit__preparing_images"]='OpenAI: Przygotowywanie obrazów i maski';
$lang["openai_image_edit__completing"]='OpenAI: Uzupełnianie obrazu';
$lang["openai_image_edit__pensize"]='Rozmiar pędzla';
$lang["openai_image_edit__reset"]='Zresetuj';
$lang["openai_image_edit__generate"]='Generuj';
$lang["openai_image_edit__exportoptions"]='Opcje eksportu';
$lang["openai_image_edit__download"]='Pobierz plik';
$lang["openai_image_edit__alternative"]='Zapisz do rekordu zasobu jako alternatywny plik';
$lang["openai_image_edit__export"]='Eksportuj obrazek';
$lang["openai_image_edit__filename"]='Obraz edytowany przez AI';
$lang["openai_image_edit__saving_alternative"]='Zapisywanie alternatywnego pliku';
$lang["openai_image_edit__generating_alternative_previews"]='Generowanie obrazów podglądu';
$lang["openai_image_edit__preparing_image_for_editing"]='Przygotowywanie obrazu do edycji';
$lang["openai_image_edit__sending"]='OpenAI: Przesyłanie danych obrazu';
$lang["openai_image_edit__new"]='Zapisz jako nowy zasób';
$lang["openai_image_edit__mode"]='Tryb';
$lang["openai_image_edit__mode_edit"]='Edytuj obraz (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Utwórz wariant (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generuj zamiennik (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Wypełnij białym';
$lang["openai_image_edit__mode_black"]='Wypełnij na czarno';
$lang["openai_image_edit__creating_new_resource"]='Tworzenie nowego zasobu';
$lang["openai_image_edit__mode_clone"]='Klonuj wypełnienie';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Editar com IA (beta)';
$lang["openai_image_edit__prompt"]='Prompt';
$lang["openai_image_edit__preparing_images"]='OpenAI: Preparando imagens e máscara';
$lang["openai_image_edit__completing"]='OpenAI: Completar a imagem';
$lang["openai_image_edit__pensize"]='Tamanho do pincel';
$lang["openai_image_edit__reset"]='Redefinir';
$lang["openai_image_edit__generate"]='Gerar';
$lang["openai_image_edit__exportoptions"]='Opções de exportação';
$lang["openai_image_edit__download"]='Baixar arquivo';
$lang["openai_image_edit__alternative"]='Salvar no registro de recurso como arquivo alternativo';
$lang["openai_image_edit__export"]='Exportar imagem';
$lang["openai_image_edit__filename"]='Imagem editada por IA';
$lang["openai_image_edit__saving_alternative"]='Salvando arquivo alternativo';
$lang["openai_image_edit__generating_alternative_previews"]='Gerando imagens de pré-visualização';
$lang["openai_image_edit__preparing_image_for_editing"]='Preparando imagem para edição';
$lang["openai_image_edit__sending"]='OpenAI: Transferindo os dados da imagem';
$lang["openai_image_edit__new"]='Salvar como um novo recurso';
$lang["openai_image_edit__mode"]='Modo';
$lang["openai_image_edit__mode_edit"]='Editar imagem (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Criar variação (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Gerar substituição (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Preencher com branco';
$lang["openai_image_edit__mode_black"]='Preencher com preto';
$lang["openai_image_edit__creating_new_resource"]='Criando novo recurso';
$lang["openai_image_edit__mode_clone"]='Preencher clone';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Editar com IA (beta)';
$lang["openai_image_edit__prompt"]='Prompt';
$lang["openai_image_edit__preparing_images"]='OpenAI: Preparando imagens e máscara';
$lang["openai_image_edit__completing"]='OpenAI: Completar a imagem';
$lang["openai_image_edit__pensize"]='Tamanho do pincel';
$lang["openai_image_edit__reset"]='Redefinir';
$lang["openai_image_edit__generate"]='Gerar';
$lang["openai_image_edit__exportoptions"]='Opções de exportação';
$lang["openai_image_edit__download"]='Baixar arquivo';
$lang["openai_image_edit__alternative"]='Salvar no registro de recurso como arquivo alternativo';
$lang["openai_image_edit__export"]='Exportar imagem';
$lang["openai_image_edit__filename"]='Imagem editada por IA';
$lang["openai_image_edit__saving_alternative"]='Salvando arquivo alternativo';
$lang["openai_image_edit__generating_alternative_previews"]='Gerando imagens de pré-visualização';
$lang["openai_image_edit__preparing_image_for_editing"]='Preparando imagem para edição';
$lang["openai_image_edit__sending"]='OpenAI: Transferindo os dados da imagem';
$lang["openai_image_edit__new"]='Salvar como um novo recurso';
$lang["openai_image_edit__mode"]='Modo';
$lang["openai_image_edit__mode_edit"]='Editar imagem (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Criar variação (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Gerar substituição (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Preencher com branco';
$lang["openai_image_edit__mode_black"]='Preencher com preto';
$lang["openai_image_edit__creating_new_resource"]='Criando novo recurso';
$lang["openai_image_edit__mode_clone"]='Preencher clone';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Editează cu AI (beta)';
$lang["openai_image_edit__prompt"]='Solicitare';
$lang["openai_image_edit__preparing_images"]='OpenAI: Pregătirea imaginilor și a măștilor';
$lang["openai_image_edit__completing"]='OpenAI: Finalizarea imaginii';
$lang["openai_image_edit__pensize"]='Dimensiunea pensulei';
$lang["openai_image_edit__reset"]='Resetare';
$lang["openai_image_edit__generate"]='Genera';
$lang["openai_image_edit__exportoptions"]='Opțiuni de export';
$lang["openai_image_edit__download"]='Descarcă fișierul';
$lang["openai_image_edit__alternative"]='Salvează în înregistrarea resursei ca fișier alternativ';
$lang["openai_image_edit__export"]='Exportă imaginea';
$lang["openai_image_edit__filename"]='Imagine editată de AI';
$lang["openai_image_edit__saving_alternative"]='Salvarea fișierului alternativ';
$lang["openai_image_edit__generating_alternative_previews"]='Generarea imaginilor de previzualizare';
$lang["openai_image_edit__preparing_image_for_editing"]='Pregătirea imaginii pentru editare';
$lang["openai_image_edit__sending"]='OpenAI: Transferarea datelor imaginii';
$lang["openai_image_edit__new"]='Salvează ca o resursă nouă';
$lang["openai_image_edit__mode"]='Mod';
$lang["openai_image_edit__mode_edit"]='Editare imagine (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Creează variație (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generați înlocuire (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Umpleți cu alb';
$lang["openai_image_edit__mode_black"]='Umpleți cu negru';
$lang["openai_image_edit__creating_new_resource"]='Crearea unei noi resurse';
$lang["openai_image_edit__mode_clone"]='Umplere clonă';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Редактировать с помощью ИИ (бета)';
$lang["openai_image_edit__prompt"]='Подсказка';
$lang["openai_image_edit__preparing_images"]='OpenAI: Подготовка изображений и маски';
$lang["openai_image_edit__completing"]='OpenAI: Завершение изображения';
$lang["openai_image_edit__pensize"]='Размер кисти';
$lang["openai_image_edit__reset"]='Сбросить';
$lang["openai_image_edit__generate"]='Сгенерировать';
$lang["openai_image_edit__exportoptions"]='Опции экспорта';
$lang["openai_image_edit__download"]='Скачать файл';
$lang["openai_image_edit__alternative"]='Сохранить в запись ресурса как альтернативный файл';
$lang["openai_image_edit__export"]='Экспортировать изображение';
$lang["openai_image_edit__filename"]='Изображение, отредактированное ИИ';
$lang["openai_image_edit__saving_alternative"]='Сохранение альтернативного файла';
$lang["openai_image_edit__generating_alternative_previews"]='Генерация превью изображений';
$lang["openai_image_edit__preparing_image_for_editing"]='Подготовка изображения для редактирования';
$lang["openai_image_edit__sending"]='OpenAI: Передача данных изображения';
$lang["openai_image_edit__new"]='Сохранить как новый ресурс';
$lang["openai_image_edit__mode"]='Режим';
$lang["openai_image_edit__mode_edit"]='Редактировать изображение (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Создать вариацию (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Сгенерировать замену (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Заполнить белым';
$lang["openai_image_edit__mode_black"]='Заполнить черным';
$lang["openai_image_edit__creating_new_resource"]='Создание нового ресурса';
$lang["openai_image_edit__mode_clone"]='Клонировать заполнение';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Upraviť s AI (beta)';
$lang["openai_image_edit__prompt"]='Výzva';
$lang["openai_image_edit__preparing_images"]='OpenAI: Príprava obrázkov a masky';
$lang["openai_image_edit__completing"]='OpenAI: Dokončovanie obrázka';
$lang["openai_image_edit__pensize"]='Veľkosť štetca';
$lang["openai_image_edit__reset"]='Obnovi';
$lang["openai_image_edit__generate"]='Generovať';
$lang["openai_image_edit__exportoptions"]='Možnosti exportu';
$lang["openai_image_edit__download"]='Stiahnuť súbor';
$lang["openai_image_edit__alternative"]='Uložiť do záznamu zdroja ako alternatívny súbor';
$lang["openai_image_edit__export"]='Exportovať obrázok';
$lang["openai_image_edit__filename"]='Obrázok upravený umelou inteligenciou';
$lang["openai_image_edit__saving_alternative"]='Ukladanie alternatívneho súboru';
$lang["openai_image_edit__generating_alternative_previews"]='Generovanie náhľadových obrázkov';
$lang["openai_image_edit__preparing_image_for_editing"]='Pripravujem obrázok na úpravu';
$lang["openai_image_edit__sending"]='OpenAI: Prenos údajov o obrázku';
$lang["openai_image_edit__new"]='Uložiť ako nový zdroj';
$lang["openai_image_edit__mode"]='Režim';
$lang["openai_image_edit__mode_edit"]='Upraviť obrázok (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Vytvoriť variant (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Vytvoriť náhradu (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Vyplniť bielou';
$lang["openai_image_edit__mode_black"]='Vyplniť čiernou';
$lang["openai_image_edit__creating_new_resource"]='Vytváranie nového zdroja';
$lang["openai_image_edit__mode_clone"]='Klonovať výplň';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Redigera med AI (beta)';
$lang["openai_image_edit__prompt"]='Uppmaning';
$lang["openai_image_edit__preparing_images"]='OpenAI: Förbereder bilder och mask';
$lang["openai_image_edit__completing"]='OpenAI: Slutföra bilden';
$lang["openai_image_edit__pensize"]='Penselstorlek';
$lang["openai_image_edit__reset"]='Återställ';
$lang["openai_image_edit__generate"]='Generera';
$lang["openai_image_edit__exportoptions"]='Exportalternativ';
$lang["openai_image_edit__download"]='Ladda ner fil';
$lang["openai_image_edit__alternative"]='Spara till resurspost som alternativ fil';
$lang["openai_image_edit__export"]='Exportera bild';
$lang["openai_image_edit__filename"]='AI-redigerad bild';
$lang["openai_image_edit__saving_alternative"]='Sparar alternativ fil';
$lang["openai_image_edit__generating_alternative_previews"]='Genererar förhandsgranskningsbilder';
$lang["openai_image_edit__preparing_image_for_editing"]='Förbereder bild för redigering';
$lang["openai_image_edit__sending"]='OpenAI: Överföring av bilddata';
$lang["openai_image_edit__new"]='Spara som en ny resurs';
$lang["openai_image_edit__mode"]='Läge';
$lang["openai_image_edit__mode_edit"]='Redigera bild (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Skapa variation (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Generera ersättning (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Fyll med vitt';
$lang["openai_image_edit__mode_black"]='Fyll med svart';
$lang["openai_image_edit__creating_new_resource"]='Skapa ny resurs';
$lang["openai_image_edit__mode_clone"]='Klonfyllning';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Hariri kwa AI (beta)';
$lang["openai_image_edit__prompt"]='Haraka';
$lang["openai_image_edit__preparing_images"]='OpenAI: Kuandaa picha na mask';
$lang["openai_image_edit__completing"]='OpenAI: Kukamilisha picha';
$lang["openai_image_edit__pensize"]='Ukubwa wa brashi';
$lang["openai_image_edit__reset"]='Rekebisha';
$lang["openai_image_edit__generate"]='Zalisha';
$lang["openai_image_edit__exportoptions"]='Chaguzi za kusafirisha';
$lang["openai_image_edit__download"]='Pakua faili';
$lang["openai_image_edit__alternative"]='Hifadhi kwenye rekodi ya rasilimali kama faili mbadala';
$lang["openai_image_edit__export"]='Export picha';
$lang["openai_image_edit__filename"]='picha iliyohaririwa na AI';
$lang["openai_image_edit__saving_alternative"]='Hifadhi faili mbadala';
$lang["openai_image_edit__generating_alternative_previews"]='Kuzalisha picha za awali';
$lang["openai_image_edit__preparing_image_for_editing"]='Kukarabati picha kwa ajili ya kuhariri';
$lang["openai_image_edit__sending"]='OpenAI: Kuhamasisha data ya picha';
$lang["openai_image_edit__new"]='Hifadhi kama rasilimali mpya';
$lang["openai_image_edit__mode"]='Hali';
$lang["openai_image_edit__mode_edit"]='Hariri picha (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Unda toleo tofauti (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Tengeneza mbadala (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Jaza na nyeupe';
$lang["openai_image_edit__mode_black"]='Jaza na nyeusi';
$lang["openai_image_edit__creating_new_resource"]='Kuunda rasilimali mpya';
$lang["openai_image_edit__mode_clone"]='Clone jaza';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='แก้ไขด้วย AI';
$lang["openai_image_edit__prompt"]='คำชี้แนะ';
$lang["openai_image_edit__preparing_images"]='การเตรียมหน้ากากภาพ';
$lang["openai_image_edit__completing"]='การทำให้ภาพสมบูรณ์';
$lang["openai_image_edit__sending"]='กำลังถ่ายโอนข้อมูลภาพ';
$lang["openai_image_edit__pensize"]='ขนาดแปรง';
$lang["openai_image_edit__reset"]='รีเซ็ต';
$lang["openai_image_edit__generate"]='สร้าง';
$lang["openai_image_edit__exportoptions"]='ตัวเลือกการส่งออก';
$lang["openai_image_edit__download"]='ดาวน์โหลดไฟล์';
$lang["openai_image_edit__alternative"]='บันทึกลงในบันทึกทรัพยากรเป็นไฟล์ทางเลือก';
$lang["openai_image_edit__export"]='ส่งออกภาพ';
$lang["openai_image_edit__filename"]='ภาพที่แก้ไขโดย AI';
$lang["openai_image_edit__saving_alternative"]='บันทึกไฟล์ทางเลือก';
$lang["openai_image_edit__generating_alternative_previews"]='กำลังสร้างภาพตัวอย่าง';
$lang["openai_image_edit__preparing_image_for_editing"]='กำลังเตรียมภาพสำหรับการแก้ไข';
$lang["openai_image_edit__new"]='บันทึกเป็นทรัพยากรใหม่';
$lang["openai_image_edit__mode"]='โหมด';
$lang["openai_image_edit__mode_edit"]='แก้ไขภาพ (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='สร้างความแปรผัน (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='สร้างการแทนที่ (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='เติมด้วยสีขาว';
$lang["openai_image_edit__mode_black"]='เติมด้วยสีดำ';
$lang["openai_image_edit__mode_clone"]='คัดลอกเติม';
$lang["openai_image_edit__creating_new_resource"]='การสร้างทรัพยากรใหม่';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='AI ile Düzenle (beta)';
$lang["openai_image_edit__prompt"]='İstekte Bulun';
$lang["openai_image_edit__preparing_images"]='OpenAI: Görüntüleri ve maskeyi hazırlıyor';
$lang["openai_image_edit__completing"]='OpenAI: Görüntüyü Tamamlama';
$lang["openai_image_edit__pensize"]='Fırça boyutu';
$lang["openai_image_edit__reset"]='Sıfırla';
$lang["openai_image_edit__generate"]='Oluştur';
$lang["openai_image_edit__exportoptions"]='Dışa aktarma seçenekleri';
$lang["openai_image_edit__download"]='Dosyayı indir';
$lang["openai_image_edit__alternative"]='Kaydı alternatif dosya olarak kaynak kaydına kaydet';
$lang["openai_image_edit__export"]='Görüntüyü dışa aktar';
$lang["openai_image_edit__filename"]='Yapay zeka ile düzenlenmiş görüntü';
$lang["openai_image_edit__saving_alternative"]='Alternatif dosya kaydediliyor';
$lang["openai_image_edit__generating_alternative_previews"]='Önizleme görüntüleri oluşturuluyor';
$lang["openai_image_edit__preparing_image_for_editing"]='Görüntüyü düzenleme için hazırlama';
$lang["openai_image_edit__sending"]='OpenAI: Görüntü verilerini aktarma';
$lang["openai_image_edit__new"]='Yeni bir kaynak olarak kaydet';
$lang["openai_image_edit__mode"]='Mod';
$lang["openai_image_edit__mode_edit"]='Görüntüyü düzenle (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Varyasyon oluştur (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Yerine koyma oluştur (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Beyaz ile doldur';
$lang["openai_image_edit__mode_black"]='Siyah ile doldur';
$lang["openai_image_edit__creating_new_resource"]='Yeni kaynak oluşturma';
$lang["openai_image_edit__mode_clone"]='Klon doldur';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='Редагувати з AI (бета)';
$lang["openai_image_edit__prompt"]='Запит';
$lang["openai_image_edit__preparing_images"]='OpenAI: Підготовка зображень та маски';
$lang["openai_image_edit__completing"]='OpenAI: Завершення зображення';
$lang["openai_image_edit__pensize"]='Розмір пензля';
$lang["openai_image_edit__reset"]='Скинути';
$lang["openai_image_edit__generate"]='Генерувати';
$lang["openai_image_edit__exportoptions"]='Опції експорту';
$lang["openai_image_edit__download"]='Завантажити файл';
$lang["openai_image_edit__alternative"]='Зберегти в записі ресурсу як альтернативний файл';
$lang["openai_image_edit__export"]='Експортувати зображення';
$lang["openai_image_edit__filename"]='Зображення, відредаговане ШІ';
$lang["openai_image_edit__saving_alternative"]='Збереження альтернативного файлу';
$lang["openai_image_edit__generating_alternative_previews"]='Генерація зображень попереднього перегляду';
$lang["openai_image_edit__preparing_image_for_editing"]='Підготовка зображення для редагування';
$lang["openai_image_edit__sending"]='OpenAI: Передача даних зображення';
$lang["openai_image_edit__new"]='Зберегти як новий ресурс';
$lang["openai_image_edit__mode"]='Режим';
$lang["openai_image_edit__mode_edit"]='Редагувати зображення (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='Створити варіацію (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='Згенерувати заміну (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='Заповнити білим';
$lang["openai_image_edit__mode_black"]='Заповнити чорним';
$lang["openai_image_edit__creating_new_resource"]='Створення нового ресурсу';
$lang["openai_image_edit__mode_clone"]='Клонувати заповнення';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='AI کے ساتھ ترمیم کریں (بیٹا)';
$lang["openai_image_edit__prompt"]='ترغیب';
$lang["openai_image_edit__preparing_images"]='OpenAI: تصاویر اور ماسک کی تیاری کر رہا ہے';
$lang["openai_image_edit__completing"]='OpenAI: تصویر مکمل کرنا';
$lang["openai_image_edit__pensize"]='برش کا سائز';
$lang["openai_image_edit__reset"]='ری سیٹ';
$lang["openai_image_edit__generate"]='جنریٹ';
$lang["openai_image_edit__exportoptions"]='برآمد کرنے کے اختیارات';
$lang["openai_image_edit__download"]='فائل ڈاؤن لوڈ کریں';
$lang["openai_image_edit__alternative"]='متبادل فائل کے طور پر وسائل کے ریکارڈ میں محفوظ کریں';
$lang["openai_image_edit__export"]='تصویر برآمد کریں';
$lang["openai_image_edit__filename"]='AI ترمیم شدہ تصویر';
$lang["openai_image_edit__saving_alternative"]='متبادل فائل محفوظ کر رہے ہیں';
$lang["openai_image_edit__generating_alternative_previews"]='پیش نظارہ امیجز تیار کرنا';
$lang["openai_image_edit__preparing_image_for_editing"]='تصویر کو ترمیم کے لیے تیار کرنا';
$lang["openai_image_edit__sending"]='OpenAI: تصویر کے ڈیٹا کی منتقلی';
$lang["openai_image_edit__new"]='نئے وسائل کے طور پر محفوظ کریں';
$lang["openai_image_edit__mode"]='موڈ';
$lang["openai_image_edit__mode_edit"]='تصویر میں ترمیم کریں (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='تبدیلی بنائیں (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='متبادل تیار کریں (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='سفید سے بھر دیں';
$lang["openai_image_edit__mode_black"]='سیاہ سے بھرنا';
$lang["openai_image_edit__creating_new_resource"]='نیا وسائل بنانا';
$lang["openai_image_edit__mode_clone"]='کلون بھرنا';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"] = 'Chỉnh sửa bằng AI';
$lang["openai_image_edit__prompt"] = 'Lời nhắc';
$lang["openai_image_edit__preparing_images"] = 'Chuẩn bị mặt nạ hình ảnh';
$lang["openai_image_edit__completing"] = 'Hoàn thành hình ảnh';
$lang["openai_image_edit__sending"] = 'Chuyển giao dữ liệu hình ảnh';
$lang["openai_image_edit__pensize"] = 'Kích thước cọ';
$lang["openai_image_edit__reset"] = 'Đặt lại';
$lang["openai_image_edit__generate"] = 'Tạo ra';
$lang["openai_image_edit__exportoptions"] = 'Tùy chọn xuất khẩu';
$lang["openai_image_edit__download"] = 'Tải tệp xuống';
$lang["openai_image_edit__alternative"] = 'Lưu vào hồ sơ tài nguyên dưới dạng tệp thay thế';
$lang["openai_image_edit__export"] = 'Xuất hình ảnh';
$lang["openai_image_edit__filename"] = 'Hình ảnh được chỉnh sửa bằng AI';
$lang["openai_image_edit__saving_alternative"] = 'Lưu tệp thay thế';
$lang["openai_image_edit__generating_alternative_previews"] = 'Đang tạo hình ảnh xem trước';
$lang["openai_image_edit__preparing_image_for_editing"] = 'Chuẩn bị hình ảnh để chỉnh sửa';
$lang["openai_image_edit__new"] = 'Lưu dưới dạng tài nguyên mới';
$lang["openai_image_edit__mode"] = 'Chế độ';
$lang["openai_image_edit__mode_edit"] = 'Chỉnh sửa hình ảnh (DALL-E 2)';
$lang["openai_image_edit__mode_variation"] = 'Tạo biến thể (DALL-E 2)';
$lang["openai_image_edit__mode_generate"] = 'Tạo bản thay thế (DALL-E 3)';
$lang["openai_image_edit__mode_white"] = 'Điền bằng màu trắng';
$lang["openai_image_edit__mode_black"] = 'Điền bằng màu đen';
$lang["openai_image_edit__mode_clone"] = 'Sao chép đầy đủ';
$lang["openai_image_edit__creating_new_resource"] = 'Tạo tài nguyên mới';

View File

@@ -0,0 +1,28 @@
<?php
$lang["openai_image_edit__edit_with_ai"]='使用AI编辑测试版';
$lang["openai_image_edit__prompt"]='提示';
$lang["openai_image_edit__preparing_images"]='OpenAI: 准备图像和遮罩';
$lang["openai_image_edit__completing"]='OpenAI: 完成图像';
$lang["openai_image_edit__pensize"]='画笔大小';
$lang["openai_image_edit__reset"]='重置';
$lang["openai_image_edit__generate"]='生成';
$lang["openai_image_edit__exportoptions"]='导出选项';
$lang["openai_image_edit__download"]='下载文件';
$lang["openai_image_edit__alternative"]='保存为资源记录的替代文件';
$lang["openai_image_edit__export"]='导出图像';
$lang["openai_image_edit__filename"]='AI编辑的图像';
$lang["openai_image_edit__saving_alternative"]='保存备用文件';
$lang["openai_image_edit__generating_alternative_previews"]='生成预览图像';
$lang["openai_image_edit__preparing_image_for_editing"]='准备图像以进行编辑';
$lang["openai_image_edit__sending"]='OpenAI: 转移图像数据';
$lang["openai_image_edit__new"]='另存为新资源';
$lang["openai_image_edit__mode"]='模式';
$lang["openai_image_edit__mode_edit"]='编辑图像 (DALL-E 2)';
$lang["openai_image_edit__mode_variation"]='创建变体 (DALL-E 2)';
$lang["openai_image_edit__mode_generate"]='生成替代品 (DALL-E 3)';
$lang["openai_image_edit__mode_white"]='填充为白色';
$lang["openai_image_edit__mode_black"]='填充黑色';
$lang["openai_image_edit__creating_new_resource"]='创建新资源';
$lang["openai_image_edit__mode_clone"]='克隆填充';

View File

@@ -0,0 +1,9 @@
name: openai_image_edit
title: OpenAI Image Editing
author: Montala Limited
version: 1.0
desc: Erase parts of an image and have OpenAI DALL-E regenerate them.
icon: fa fa-cog
icon-colour: seagreen
category: integrations
info_url: https://www.resourcespace.com/knowledge-base/plugins/openai_image_edit

View File

@@ -0,0 +1,324 @@
<?php
include "../../../include/boot.php";
include "../../../include/authenticate.php";
if (!in_array("openai_gpt" ,$plugins) || !in_array("openai_image_edit", $plugins))
{
exit("The OpenAI GPT and OpenAI Image Editing plugins must be enabled and configured.");
}
// Find image
$ref=getval("ref",0,true);
$access=get_resource_access($ref);
$edit_access=get_edit_access($ref);
if ($access!=0)
{
// They shouldn't arrive here as the link wouldn't be available.
exit("Access denied");
}
function curlprogress($resource,$download_size, $downloaded, $upload_size, $uploaded)
{
// Give an estimate of completion based on the % of upload. There is also the DALL-E 2 processing time but the bulk of the time seems to be the upload due to using PNG for images.
global $lang;
if ($uploaded>0)
{
$percent=floor(($uploaded/$upload_size)*100);
$percent*=7;$percent+=10; // It lags behind a lot, after experimentation, this gives a more reasonable estimate of completion time.
if ($percent>=100)
{
set_processing_message($lang["openai_image_edit__completing"]);
}
else
{
set_processing_message($lang["openai_image_edit__sending"] . " (" . $percent . "%)");
}
}
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
set_processing_message($lang["openai_image_edit__preparing_images"]);
$maskData = getval('mask',''); // Base64 encoded mask from the frontend
$mode = getval('mode','');
$prompt = getval('prompt','');
// Decode the mask data from base64
list($type, $maskData) = explode(';', $maskData);
list(, $maskData) = explode(',', $maskData);
$maskData = base64_decode($maskData);
if ($mode=="white" || $mode=="black")
{
$mask=imagecreatefromstring($maskData);
// Get the width and height of the image
$width = imagesx($mask);
$height = imagesy($mask);
// Create a new true color image with the same dimensions
$newBackground = imagecreatetruecolor($width, $height);
// Fill the new image with colour
$shade=255;
if ($mode=="black") {$shade=0;}
$fill = imagecolorallocate($newBackground, $shade, $shade, $shade);
imagefill($newBackground, 0, 0, $fill);
// Copy the original image onto the white background
// This will replace transparent areas with white
imagecopy($newBackground, $mask, 0, 0, 0, 0, $width, $height);
// Start output buffering to capture the image data in memory
ob_start();
imagepng($newBackground);
$imagedata = ob_get_clean();
// Free up memory
imagedestroy($mask);
imagedestroy($newBackground);
// Return the image data as JSON with base64 encoding
header('Content-Type: application/json');
echo json_encode(["image_base64" => base64_encode($imagedata)]);
exit();
}
if ($mode=="clone")
{
$mask=imagecreatefromstring($maskData);
// Get the width and height of the image
$width = imagesx($mask);
$height = imagesy($mask);
// Create a new true color image with the same dimensions
$image = imagecreatefromstring($maskData);
imagealphablending($image, true);
imagesavealpha($image, true);
// Clone parts of the surrounding image by moving it in an ever decreasing box
for ($offset=300;$offset>0;$offset-=30)
{
imagecopy($image, $mask, -$offset, 0, 0, 0, $width, $height);
imagecopy($image, $mask, 0, -$offset, 0, 0, $width, $height);
imagecopy($image, $mask, $offset, 0, 0, 0, $width, $height);
imagecopy($image, $mask, 0, $offset, 0, 0, $width, $height);
}
imagecopy($image, $mask, 0, 0, 0, 0, $width, $height);
// Start output buffering to capture the image data in memory
ob_start();
imagepng($image);
$imagedata = ob_get_clean();
// Free up memory
imagedestroy($mask);
imagedestroy($image);
// Return the image data as JSON with base64 encoding
header('Content-Type: application/json');
echo json_encode(["image_base64" => base64_encode($imagedata)]);
exit();
}
// Prepare the OpenAI API request using multipart/form-data
if ($mode=="edit")
{
$url = 'https://api.openai.com/v1/images/edits';
$model = "dall-e-2";
$content_type="multipart/form-data";
}
if ($mode=="variation")
{
$url = 'https://api.openai.com/v1/images/variations';
$model = "dall-e-2";
$content_type="multipart/form-data";
}
if ($mode=="generate")
{
$url = 'https://api.openai.com/v1/images/generations';
$model = "dall-e-3";
$content_type="application/json";
}
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'curlprogress');
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $openai_gpt_api_key",
"Content-Type: " . $content_type
]);
// Improve the mask by replacing non transparent areas with black. This significantly reduces the time to send the mask to OpenAI as the compression is much better.
$mask=imagecreatefromstring($maskData);
// Set blending mode off to preserve transparency
imagealphablending($mask, false);
imagesavealpha($mask, true);
// Get image dimensions
$width = imagesx($mask);
$height = imagesy($mask);
// Loop through each pixel
for ($x = 0; $x < $width; $x++) {
for ($y = 0; $y < $height; $y++) {
// Get the color and alpha of the current pixel
$rgba = imagecolorat($mask, $x, $y);
$alpha = ($rgba & 0x7F000000) >> 24;
// Set the pixel to black with the same alpha
$black = imagecolorallocatealpha($mask, 0, 0, 0, $alpha);
imagesetpixel($mask, $x, $y, $black);
}
}
// Re-render the mask
ob_start();
imagepng($mask);
$maskDataSimplified = ob_get_contents();
ob_end_clean();
// Prepare the data array using CURLFile for both image and mask
$data = [
'model' => $model, // Specify model (if applicable)
'n' => 1,
'size' => '1024x1024'
];
if ($mode=="edit" || $mode=="variation")
{
$data['image'] = new CURLStringFile($maskData, 'image/png');
}
if ($mode=="edit" || $mode=="generate")
{
$data['prompt'] = $prompt;
}
if ($mode=="edit")
{
$data['mask'] = new CURLStringFile($maskDataSimplified, 'image/png');
}
if ($mode=="generate")
{
$data=json_encode($data);
}
// Attach the form data
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// Execute the request and get the response
$response = curl_exec($ch);
// Check for errors in the cURL request
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$json=json_decode($response,true);
$url=$json["data"][0]["url"] ?? "";
if ($url!="")
{
header('Content-Type: application/json');
echo json_encode(["image_base64"=>base64_encode(file_get_contents($url))]);
}
else
{
echo $response;
}
}
curl_close($ch);
exit();
}
include "../../../include/header.php";
?>
<div class="BasicsBox">
<?php
renderBreadcrumbs([
[
"title" => $lang["backtoview"],
"href" => generateURL($baseurl_short . "pages/view.php", ["ref" => $ref])
],
[
"title" => $lang["openai_image_edit__edit_with_ai"],
"help" => "plugins/openai_image_edit"
]
]);
?>
</div>
<img id="image" src="get_png.php?ref=<?php echo (int) $ref ?>" alt="" hidden>
<div id="canvas-container" class="canvas-container" style="position: relative;visibility:hidden;">
<canvas id="canvas"></canvas>
<canvas id="overlayCanvas" style="position: absolute; top: 0; left: 0; pointer-events: none;"></canvas>
</div>
<div id="toolbox" class="toolbox openai-image-edit" style="visibility:hidden;">
<div id="tools">
<label for="editMode"><?php echo escape($lang["openai_image_edit__mode"]) ?></label><br>
<select id="editMode">
<option value="edit"><?php echo escape($lang["openai_image_edit__mode_edit"]); ?></option>
<option value="variation"><?php echo escape($lang["openai_image_edit__mode_variation"]); ?></option>
<option value="generate"><?php echo escape($lang["openai_image_edit__mode_generate"]); ?></option>
<option value="white"><?php echo escape($lang["openai_image_edit__mode_white"]); ?></option>
<option value="black"><?php echo escape($lang["openai_image_edit__mode_black"]); ?></option>
<option value="clone"><?php echo escape($lang["openai_image_edit__mode_clone"]); ?></option>
</select>
<br><br>
<label for="penSize"><?php echo escape($lang["openai_image_edit__pensize"]); ?></label><br>
<input type="range" id="penSize" min="10" max="200" value="75">
<br><br>
<label for="prompt"><?php echo escape($lang["openai_image_edit__prompt"]); ?></label><br>
<textarea id="prompt" rows="5" required placeholder="Prompt for regeneration">Complete image as appropriate</textarea>
<br>
<button id="clearBtn" onclick="window.location.reload();"><?php echo escape($lang["openai_image_edit__reset"]); ?></button>
<button id="submitBtn"><?php echo escape($lang["openai_image_edit__generate"]); ?></button>
<br><br><br>
<div id="downloadOptions" style="visibility: hidden;">
<label for="downloadType"><?php echo escape($lang["openai_image_edit__exportoptions"]); ?></label><br>
<select id="downloadType">
<option value="image/jpeg">JPEG</option>
<option value="image/png">PNG</option>
<option value="image/webp">WEBP</option>
</select>
<br>
<select id="downloadAction">
<option value="download"><?php echo escape($lang["openai_image_edit__download"]); ?></option>
<?php if ($edit_access) { ?><option value="alternative"><?php echo escape($lang["openai_image_edit__alternative"]); ?></option><?php } ?>
<?php if (checkperm("c")) { ?><option value="new"><?php echo escape($lang["openai_image_edit__new"]); ?></option><?php } ?>
</select>
<br>
<button id="downloadBtn"><?php echo escape($lang["openai_image_edit__export"]); ?></button>
</div>
</div>
</div>
<script>
CentralSpaceShowProcessing();
submit_url='<?php echo generateURL($baseurl . "/plugins/openai_image_edit/pages/edit.php",[],["ref"=>$ref]); ?>';
alternative_url='<?php echo generateURL($baseurl . "/plugins/openai_image_edit/pages/save_alternative.php",[],["ref"=>$ref]); ?>';
save_new_url='<?php echo generateURL($baseurl . "/plugins/openai_image_edit/pages/save_new.php",[] ,["ref"=>$ref]); ?>';
view_url='<?php echo generateURL($baseurl . "/pages/view.php",[],["ref"=>$ref]); ?>';
view_new_url='<?php echo $baseurl ?>/pages/view.php?ref=';
csrf_pair={<?php echo generateAjaxToken("openai_image_edit"); ?>};
defaultLoadingMessage=<?php echo json_encode($lang["openai_image_edit__preparing_images"]) ?>;
</script>
<script src="../js/edit.js"></script>
<?php
include "../../../include/footer.php";

View File

@@ -0,0 +1,61 @@
<?php
include "../../../include/boot.php";
include "../../../include/authenticate.php";
if (count(array_intersect((array('openai_gpt', 'openai_image_edit')), $plugins)) !== 2)
{
exit("The OpenAI GPT and OpenAI Image Editing plugins must be enabled and configured.");
}
// For the given resource return a PNG no larger than 1024x1024 pixels as required by OpenAI.
$ref=getval("ref",0,true);
$access=get_resource_access($ref);
if ($access!=0)
{
// They shouldn't arrive here
exit("Access denied");
}
set_processing_message($lang["openai_image_edit__preparing_image_for_editing"]);
$jpg=get_resource_path($ref,true,"",false,"jpg");
if (!file_exists($jpg))
{
// No luck, try different extension
$jpg=get_resource_path($ref,true,"",false,"jpeg");
}
if (!file_exists($jpg))
{
// No luck, try scr size (internal size so always 'jpg')
$jpg=get_resource_path($ref,true,"scr",false,"jpg");
}
if (!file_exists($jpg))
{
exit("A suitable JPEG source file could not be found.");
}
$image=imagecreatefromstring(file_get_contents($jpg));
$source_width=imagesx($image);
$source_height=imagesy($image);
// Rescale image
if ($source_width>$source_height)
{
// Landscape image, width is 1024
$target_width=1024;
$target_height=floor(($source_height/$source_width)*1024);
}
else
{
// Portrait (or square), height is 1024
$target_width=floor(($source_width/$source_height)*1024);
$target_height=1024;
}
$png = imagecreatetruecolor($target_width, $target_height);
imagecopyresampled($png, $image, 0, 0, 0, 0, $target_width, $target_height, $source_width, $source_height);
header('Content-Type: image/png');
imagepng($png);

View File

@@ -0,0 +1,45 @@
<?php
include "../../../include/boot.php";
include "../../../include/authenticate.php";
include_once "../../../include/image_processing.php";
// Save the submitted file as an alternative file to the resource record
$ref=getval("ref",0,true);
$access=get_resource_access($ref);
$edit_access=get_edit_access($ref);
if ($access!=0 || !$edit_access)
{
// They shouldn't arrive here
exit("Access denied");
}
set_processing_message($lang["openai_image_edit__saving_alternative"]);
// Extract the base64-encoded image data
$imageData = getval('imageData','');
// Remove the data URL scheme part (e.g., 'data:image/jpeg;base64,')
$imageData = str_replace('data:image/jpeg;base64,', '', $imageData);
$imageData = str_replace('data:image/png;base64,', '', $imageData);
$imageData = str_replace('data:image/webp;base64,', '', $imageData);
// Replace any spaces with '+', as they may have been incorrectly encoded
$imageData = str_replace(' ', '+', $imageData);
// Decode the base64-encoded image data
$imageData = base64_decode($imageData);
$imageType = getval('imageType','');
$extension = explode("/",$imageType)[1];
$alt=add_alternative_file($ref,$lang["openai_image_edit__filename"] . " (" . $username . ", " . strtoupper($extension). ")","",$imageType,$extension,strlen($imageData));
// Save file
$path=get_resource_path($ref,true,'',true,$extension,true,1,false,'',$alt);
file_put_contents($path,$imageData);
// Create previews
set_processing_message($lang["openai_image_edit__generating_alternative_previews"]);
create_previews($ref,false,$extension,false,false,$alt);
echo json_encode(["status"=>"OK"]);

View File

@@ -0,0 +1,43 @@
<?php
include "../../../include/boot.php";
include "../../../include/authenticate.php";
include_once "../../../include/image_processing.php";
// Save the submitted file as an alternative file to the resource record
$ref=getval("ref",0,true);
$access=get_resource_access($ref);
$edit_access=get_edit_access($ref);
if ($access!=0 || !$edit_access || !checkperm("c"))
{
// They shouldn't arrive here
exit("Access denied");
}
// Extract the base64-encoded image data
$imageData = getval('imageData','');
// Remove the data URL scheme part (e.g., 'data:image/jpeg;base64,')
$imageData = str_replace('data:image/jpeg;base64,', '', $imageData);
$imageData = str_replace('data:image/png;base64,', '', $imageData);
$imageData = str_replace('data:image/webp;base64,', '', $imageData);
// Replace any spaces with '+', as they may have been incorrectly encoded
$imageData = str_replace(' ', '+', $imageData);
// Decode the base64-encoded image data
$imageData = base64_decode($imageData);
$imageType = getval('imageType','');
$extension = explode("/",$imageType)[1];
// Create resource
$resource=create_resource(1,0,-1,"OpenAI",$extension);
// Save file
$path=get_resource_path($resource,true,'',true,$extension);
file_put_contents($path,$imageData);
// Create previews
create_previews($resource,false,$extension);
echo json_encode(["status"=>"OK", "resource"=>$resource]);